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 2024/10/30 14:47:48 UTC

(hbase-site) branch asf-site updated: Published site at a2d508a8fb21815444354ea2a95bee86a6b6f64a.

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 9fbfff612b0 Published site at a2d508a8fb21815444354ea2a95bee86a6b6f64a.
9fbfff612b0 is described below

commit 9fbfff612b02da9b8cdc4517731a6a38149bb034
Author: jenkins <bu...@apache.org>
AuthorDate: Wed Oct 30 14:47:23 2024 +0000

    Published site at a2d508a8fb21815444354ea2a95bee86a6b6f64a.
---
 acid-semantics.html                                |    2 +-
 apache_hbase_reference_guide.pdf                   |    4 +-
 apidocs/index-all.html                             |    8 +-
 apidocs/member-search-index.js                     |    2 +-
 .../hbase/io/hfile/class-use/BlockCache.html       |   28 +-
 .../hbase/regionserver/class-use/HRegion.html      |   31 +-
 .../hadoop/hbase/regionserver/package-use.html     |   10 +-
 .../apache/hadoop/hbase/io/hfile/BlockCache.html   |   17 +-
 .../hadoop/hbase/io/hfile/BlockCacheFactory.html   |  421 +-
 .../hfile/BlockCacheUtil.CachedBlocksByFile.html   |  710 +--
 .../hadoop/hbase/io/hfile/BlockCacheUtil.html      |  710 +--
 .../hadoop/hbase/io/hfile/MemcachedBlockCache.html |  684 +--
 book.html                                          |    2 +-
 bulk-loads.html                                    |    2 +-
 checkstyle-aggregate.html                          | 4689 ++++++++++----------
 coc.html                                           |    2 +-
 dependencies.html                                  |    2 +-
 dependency-convergence.html                        |    6 +-
 dependency-info.html                               |    2 +-
 dependency-management.html                         |    4 +-
 devapidocs/constant-values.html                    |    6 +
 devapidocs/index-all.html                          |   24 +-
 devapidocs/member-search-index.js                  |    2 +-
 .../apache/hadoop/hbase/io/hfile/BlockCache.html   |   11 +-
 .../BlockCacheFactory.ExternalBlockCaches.html     |   14 +-
 .../hadoop/hbase/io/hfile/BlockCacheFactory.html   |   65 +-
 .../BlockCacheUtil.CachedBlockCountsPerFile.html   |   24 +-
 .../hfile/BlockCacheUtil.CachedBlocksByFile.html   |   40 +-
 .../hadoop/hbase/io/hfile/BlockCacheUtil.html      |   85 +-
 .../hadoop/hbase/io/hfile/CombinedBlockCache.html  |    9 +-
 .../MemcachedBlockCache.HFileBlockTranscoder.html  |   12 +-
 .../MemcachedBlockCache.StatisticsThread.html      |    8 +-
 .../hadoop/hbase/io/hfile/MemcachedBlockCache.html |  170 +-
 .../hfile/bucket/BucketCache.BucketEntryGroup.html |   18 +-
 .../io/hfile/bucket/BucketCache.CacheState.html    |   14 +-
 .../io/hfile/bucket/BucketCache.RAMCache.html      |   22 +-
 .../io/hfile/bucket/BucketCache.RAMQueueEntry.html |   24 +-
 .../hfile/bucket/BucketCache.StatisticsThread.html |    8 +-
 .../io/hfile/bucket/BucketCache.WriterThread.html  |   14 +-
 .../hadoop/hbase/io/hfile/bucket/BucketCache.html  |  886 ++--
 .../io/hfile/bucket/class-use/BucketCache.html     |    3 +-
 .../hbase/io/hfile/class-use/BlockCache.html       |   32 +-
 .../hbase/regionserver/class-use/HRegion.html      |   64 +
 .../hadoop/hbase/regionserver/package-use.html     |  102 +-
 .../apache/hadoop/hbase/io/hfile/BlockCache.html   |   17 +-
 .../BlockCacheFactory.ExternalBlockCaches.html     |  421 +-
 .../hadoop/hbase/io/hfile/BlockCacheFactory.html   |  421 +-
 .../BlockCacheUtil.CachedBlockCountsPerFile.html   |  710 +--
 .../hfile/BlockCacheUtil.CachedBlocksByFile.html   |  710 +--
 .../hadoop/hbase/io/hfile/BlockCacheUtil.html      |  710 +--
 .../MemcachedBlockCache.HFileBlockTranscoder.html  |  684 +--
 .../MemcachedBlockCache.StatisticsThread.html      |  684 +--
 .../hadoop/hbase/io/hfile/MemcachedBlockCache.html |  684 +--
 .../hfile/bucket/BucketCache.BucketEntryGroup.html | 4498 +++++++++----------
 .../io/hfile/bucket/BucketCache.CacheState.html    | 4498 +++++++++----------
 .../io/hfile/bucket/BucketCache.RAMCache.html      | 4498 +++++++++----------
 .../io/hfile/bucket/BucketCache.RAMQueueEntry.html | 4498 +++++++++----------
 .../hfile/bucket/BucketCache.StatisticsThread.html | 4498 +++++++++----------
 .../io/hfile/bucket/BucketCache.WriterThread.html  | 4498 +++++++++----------
 .../hadoop/hbase/io/hfile/bucket/BucketCache.html  | 4498 +++++++++----------
 downloads.html                                     |    2 +-
 export_control.html                                |    2 +-
 index.html                                         |    2 +-
 issue-management.html                              |    2 +-
 licenses.html                                      |    2 +-
 mailing-lists.html                                 |    2 +-
 metrics.html                                       |    2 +-
 old_news.html                                      |    2 +-
 plugin-management.html                             |    2 +-
 plugins.html                                       |    2 +-
 poweredbyhbase.html                                |    2 +-
 project-info.html                                  |    2 +-
 project-reports.html                               |    2 +-
 pseudo-distributed.html                            |    2 +-
 replication.html                                   |    2 +-
 resources.html                                     |    2 +-
 scm.html                                           |    2 +-
 sponsors.html                                      |    2 +-
 summary.html                                       |    2 +-
 supportingprojects.html                            |    2 +-
 team.html                                          |    2 +-
 testapidocs/index-all.html                         |    6 +-
 testapidocs/member-search-index.js                 |    2 +-
 .../hbase/io/hfile/TestMemcachedBlockCache.html    |  233 +-
 testdevapidocs/index-all.html                      |   22 +-
 testdevapidocs/member-search-index.js              |    2 +-
 .../hbase/io/hfile/TestMemcachedBlockCache.html    |   87 +-
 .../bucket/TestBucketCache.MockedBucketCache.html  |   10 +-
 .../hbase/io/hfile/bucket/TestBucketCache.html     |  234 +-
 .../TestBucketCacheRefCnt.MyBucketCache.html       |    2 +-
 .../TestBucketCacheRefCnt.MyBucketCache2.html      |    2 +-
 .../TestBucketWriterThread.MockBucketCache.html    |    2 +-
 .../hbase/io/hfile/TestMemcachedBlockCache.html    |  233 +-
 .../bucket/TestBucketCache.MockedBucketCache.html  | 1938 ++++----
 .../hbase/io/hfile/bucket/TestBucketCache.html     | 1938 ++++----
 95 files changed, 25626 insertions(+), 24647 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index 278859204bf..583cc0b9d84 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -468,7 +468,7 @@
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.
       </div>
       <div style="float: right">
-        Last Published: 2024-10-29
+        Last Published: 2024-10-30
       </div>
         </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 4619d6c9720..520e12e4bcd 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 2.0.6, based on Prawn 2.4.0)
 /Producer (Apache HBase Team)
-/ModDate (D:20241029155715+00'00')
-/CreationDate (D:20241029161055+00'00')
+/ModDate (D:20241030143056+00'00')
+/CreationDate (D:20241030144443+00'00')
 >>
 endobj
 2 0 obj
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index 45766ed7eb0..8595955dac1 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -10693,6 +10693,8 @@ loadScripts(document, 'script');</script>
 <dd>&nbsp;</dd>
 <dt>createBlockCache(Configuration) - Static method in class org.apache.hadoop.hbase.io.hfile.BlockCacheFactory</dt>
 <dd>&nbsp;</dd>
+<dt>createBlockCache(Configuration, Map&lt;String, HRegion&gt;) - Static method in class org.apache.hadoop.hbase.io.hfile.BlockCacheFactory</dt>
+<dd>&nbsp;</dd>
 <dt>createBlockingRpcChannel(ServerName, User, int) - Method in class org.apache.hadoop.hbase.ipc.AbstractRpcClient</dt>
 <dd>&nbsp;</dd>
 <dt>createBlockingRpcChannel(ServerName, User, int) - Method in interface org.apache.hadoop.hbase.ipc.RpcClient</dt>
@@ -11401,6 +11403,8 @@ loadScripts(document, 'script');</script>
 <dd>
 <div class="block">Create a max byte array with the specified max byte count</div>
 </dd>
+<dt>createMemcachedClient(ConnectionFactory, List&lt;InetSocketAddress&gt;) - Method in class org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache</dt>
+<dd>&nbsp;</dd>
 <dt>createMemStoreCompactor(MemoryCompactionPolicy) - Method in class org.apache.hadoop.hbase.regionserver.CompactingMemStore</dt>
 <dd>&nbsp;</dd>
 <dt>createMigrationTableDescriptor(Configuration, TableDescriptor) - Method in class org.apache.hadoop.hbase.regionserver.storefiletracker.ModifyColumnFamilyStoreFileTrackerProcedure</dt>
@@ -43677,6 +43681,8 @@ loadScripts(document, 'script');</script>
 <dd>&nbsp;</dd>
 <dt>list(String, long) - Method in class org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient</dt>
 <dd>&nbsp;</dd>
+<dt>listAllFilesNames(Map&lt;String, HRegion&gt;) - Static method in class org.apache.hadoop.hbase.io.hfile.BlockCacheUtil</dt>
+<dd>&nbsp;</dd>
 <dt>listAllHFileRefs() - Method in class org.apache.hadoop.hbase.replication.ZKReplicationQueueStorageForMigration</dt>
 <dd>
 <div class="block">Pair&lt;PeerId, List&lt;HFileRefs&gt;&gt;</div>
@@ -74761,7 +74767,7 @@ service.</div>
 </dd>
 <dt>waitForCacheInitialization(long) - Method in interface org.apache.hadoop.hbase.io.hfile.BlockCache</dt>
 <dd>
-<div class="block">Wait for the bucket cache to be enabled while server restart</div>
+<div class="block">Wait for the block cache implementation to be completely enabled.</div>
 </dd>
 <dt>waitForCacheInitialization(long) - Method in class org.apache.hadoop.hbase.io.hfile.CombinedBlockCache</dt>
 <dd>&nbsp;</dd>
diff --git a/apidocs/member-search-index.js b/apidocs/member-search-index.js
index f51158c1c26..ed9a7f13c4e 100644
--- a/apidocs/member-search-index.js
+++ b/apidocs/member-search-index.js
@@ -1 +1 @@
-memberSearchIndex = [{"p":"org.apache.hadoop.hbase.filter","c":"ParseConstants","l":"A"},{"p":"org.apache.hadoop.hbase.master","c":"RegionState.State","l":"ABNORMALLY_CLOSED"},{"p":"org.apache.hadoop.hbase.coprocessor","c":"CoprocessorHost","l":"ABORT_ON_ERROR_KEY"},{"p":"org.apache.hadoop.hbase","c":"Abortable","l":"abort(String)","u":"abort(java.lang.String)"},{"p":"org.apache.hadoop.hbase","c":"Abortable","l":"abort(String, Throwable)","u":"abort(java.lang.String,java.lang.Throwable)" [...]
\ No newline at end of file
+memberSearchIndex = [{"p":"org.apache.hadoop.hbase.filter","c":"ParseConstants","l":"A"},{"p":"org.apache.hadoop.hbase.master","c":"RegionState.State","l":"ABNORMALLY_CLOSED"},{"p":"org.apache.hadoop.hbase.coprocessor","c":"CoprocessorHost","l":"ABORT_ON_ERROR_KEY"},{"p":"org.apache.hadoop.hbase","c":"Abortable","l":"abort(String)","u":"abort(java.lang.String)"},{"p":"org.apache.hadoop.hbase","c":"Abortable","l":"abort(String, Throwable)","u":"abort(java.lang.String,java.lang.Throwable)" [...]
\ No newline at end of file
diff --git a/apidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html b/apidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html
index bf8d8d05c34..a48d1b6205b 100644
--- a/apidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html
+++ b/apidocs/org/apache/hadoop/hbase/io/hfile/class-use/BlockCache.html
@@ -185,29 +185,33 @@ loadScripts(document, 'script');</script>
 <div class="col-first even-row-color"><code>static org.apache.hadoop.hbase.io.hfile.BlockCache</code></div>
 <div class="col-second even-row-color"><span class="type-name-label">BlockCacheFactory.</span><code>createBlockCache<wbr>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code></div>
 <div class="col-last even-row-color">&nbsp;</div>
-<div class="col-first odd-row-color"><code>org.apache.hadoop.hbase.io.hfile.BlockCache[]</code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">BlockCache.</span><code>getBlockCaches()</code></div>
-<div class="col-last odd-row-color">
+<div class="col-first odd-row-color"><code>static org.apache.hadoop.hbase.io.hfile.BlockCache</code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">BlockCacheFactory.</span><code>createBlockCache<wbr>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr>org.apache.hadoop.hbase.regionserver.HRegion&gt;&nbsp;onlineRegions)</code></div>
+<div class="col-last odd-row-color">&nbsp;</div>
+<div class="col-first even-row-color"><code>org.apache.hadoop.hbase.io.hfile.BlockCache[]</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">BlockCache.</span><code>getBlockCaches()</code></div>
+<div class="col-last even-row-color">
 <div class="block">Returns The list of sub blockcaches that make up this one; returns null if no sub caches.</div>
 </div>
-<div class="col-first even-row-color"><code>org.apache.hadoop.hbase.io.hfile.BlockCache[]</code></div>
-<div class="col-second even-row-color"><span class="type-name-label">CombinedBlockCache.</span><code>getBlockCaches()</code></div>
-<div class="col-last even-row-color">&nbsp;</div>
 <div class="col-first odd-row-color"><code>org.apache.hadoop.hbase.io.hfile.BlockCache[]</code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">LruAdaptiveBlockCache.</span><code>getBlockCaches()</code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">CombinedBlockCache.</span><code>getBlockCaches()</code></div>
 <div class="col-last odd-row-color">&nbsp;</div>
 <div class="col-first even-row-color"><code>org.apache.hadoop.hbase.io.hfile.BlockCache[]</code></div>
-<div class="col-second even-row-color"><span class="type-name-label">LruBlockCache.</span><code>getBlockCaches()</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">LruAdaptiveBlockCache.</span><code>getBlockCaches()</code></div>
 <div class="col-last even-row-color">&nbsp;</div>
 <div class="col-first odd-row-color"><code>org.apache.hadoop.hbase.io.hfile.BlockCache[]</code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">MemcachedBlockCache.</span><code>getBlockCaches()</code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">LruBlockCache.</span><code>getBlockCaches()</code></div>
 <div class="col-last odd-row-color">&nbsp;</div>
 <div class="col-first even-row-color"><code>org.apache.hadoop.hbase.io.hfile.BlockCache[]</code></div>
-<div class="col-second even-row-color"><span class="type-name-label">TinyLfuBlockCache.</span><code>getBlockCaches()</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">MemcachedBlockCache.</span><code>getBlockCaches()</code></div>
 <div class="col-last even-row-color">&nbsp;</div>
-<div class="col-first odd-row-color"><code>org.apache.hadoop.hbase.io.hfile.BlockCache</code></div>
-<div class="col-second odd-row-color"><span class="type-name-label">CombinedBlockCache.</span><code>getSecondLevelCache()</code></div>
+<div class="col-first odd-row-color"><code>org.apache.hadoop.hbase.io.hfile.BlockCache[]</code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">TinyLfuBlockCache.</span><code>getBlockCaches()</code></div>
 <div class="col-last odd-row-color">&nbsp;</div>
+<div class="col-first even-row-color"><code>org.apache.hadoop.hbase.io.hfile.BlockCache</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">CombinedBlockCache.</span><code>getSecondLevelCache()</code></div>
+<div class="col-last even-row-color">&nbsp;</div>
 </div>
 <div class="caption"><span>Methods in <a href="../package-summary.html">org.apache.hadoop.hbase.io.hfile</a> that return types with arguments of type org.apache.hadoop.hbase.io.hfile.BlockCache in  in </span></div>
 <div class="summary-table three-column-summary">
diff --git a/apidocs/org/apache/hadoop/hbase/regionserver/class-use/HRegion.html b/apidocs/org/apache/hadoop/hbase/regionserver/class-use/HRegion.html
index 1856962c399..8c22067c13a 100644
--- a/apidocs/org/apache/hadoop/hbase/regionserver/class-use/HRegion.html
+++ b/apidocs/org/apache/hadoop/hbase/regionserver/class-use/HRegion.html
@@ -57,12 +57,17 @@ loadScripts(document, 'script');</script>
 <div class="table-header col-last">Description</div>
 <div class="col-first even-row-color"><a href="#org.apache.hadoop.hbase">org.apache.hadoop.hbase</a></div>
 <div class="col-last even-row-color">&nbsp;</div>
-<div class="col-first odd-row-color"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></div>
-<div class="col-last odd-row-color">&nbsp;</div>
-<div class="col-first even-row-color"><a href="#org.apache.hadoop.hbase.snapshot">org.apache.hadoop.hbase.snapshot</a></div>
+<div class="col-first odd-row-color"><a href="#org.apache.hadoop.hbase.io.hfile">org.apache.hadoop.hbase.io.hfile</a></div>
+<div class="col-last odd-row-color">
+<div class="block">Provides implementations of <code>HFile</code> and HFile
+ <code>BlockCache</code>.</div>
+</div>
+<div class="col-first even-row-color"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></div>
 <div class="col-last even-row-color">&nbsp;</div>
-<div class="col-first odd-row-color"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></div>
+<div class="col-first odd-row-color"><a href="#org.apache.hadoop.hbase.snapshot">org.apache.hadoop.hbase.snapshot</a></div>
 <div class="col-last odd-row-color">&nbsp;</div>
+<div class="col-first even-row-color"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></div>
+<div class="col-last even-row-color">&nbsp;</div>
 </div>
 <section class="class-uses">
 <ul class="block-list">
@@ -268,6 +273,24 @@ loadScripts(document, 'script');</script>
 </section>
 </li>
 <li>
+<section class="detail" id="org.apache.hadoop.hbase.io.hfile">
+<h2>Uses of org.apache.hadoop.hbase.regionserver.HRegion in <a href="../../io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a></h2>
+<div class="caption"><span>Method parameters in <a href="../../io/hfile/package-summary.html">org.apache.hadoop.hbase.io.hfile</a> with type arguments of type org.apache.hadoop.hbase.regionserver.HRegion in  in </span></div>
+<div class="summary-table three-column-summary">
+<div class="table-header col-first">Modifier and Type</div>
+<div class="table-header col-second">Method</div>
+<div class="table-header col-last">Description</div>
+<div class="col-first even-row-color"><code>static org.apache.hadoop.hbase.io.hfile.BlockCache</code></div>
+<div class="col-second even-row-color"><span class="type-name-label">BlockCacheFactory.</span><code>createBlockCache<wbr>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+ <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr>org.apache.hadoop.hbase.regionserver.HRegion&gt;&nbsp;onlineRegions)</code></div>
+<div class="col-last even-row-color">&nbsp;</div>
+<div class="col-first odd-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;</code></div>
+<div class="col-second odd-row-color"><span class="type-name-label">BlockCacheUtil.</span><code>listAllFilesNames<wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html" title="class or interface in java.util" class="external-link">Map</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr>org.apache.hadoop.hbase.regionserver.HR [...]
+<div class="col-last odd-row-color">&nbsp;</div>
+</div>
+</section>
+</li>
+<li>
 <section class="detail" id="org.apache.hadoop.hbase.regionserver">
 <h2>Uses of org.apache.hadoop.hbase.regionserver.HRegion in <a href="../package-summary.html">org.apache.hadoop.hbase.regionserver</a></h2>
 <div class="caption"><span>Fields in <a href="../package-summary.html">org.apache.hadoop.hbase.regionserver</a> declared as org.apache.hadoop.hbase.regionserver.HRegion in  in </span></div>
diff --git a/apidocs/org/apache/hadoop/hbase/regionserver/package-use.html b/apidocs/org/apache/hadoop/hbase/regionserver/package-use.html
index fca06222c6f..479bfb07b31 100644
--- a/apidocs/org/apache/hadoop/hbase/regionserver/package-use.html
+++ b/apidocs/org/apache/hadoop/hbase/regionserver/package-use.html
@@ -358,12 +358,16 @@ loadScripts(document, 'script');</script>
 <div class="col-last odd-row-color">
 <div class="block">A sink of cells that allows appending cells to the Writers that implement it.</div>
 </div>
-<div class="col-first even-row-color"><a href="class-use/Shipper.html#org.apache.hadoop.hbase.io.hfile">Shipper</a></div>
+<div class="col-first even-row-color"><a href="class-use/HRegion.html#org.apache.hadoop.hbase.io.hfile">HRegion</a></div>
 <div class="col-last even-row-color">
-<div class="block">This interface denotes a scanner as one which can ship cells.</div>
+<div class="block">Regions store data for a certain region of a table.</div>
 </div>
-<div class="col-first odd-row-color"><a href="class-use/ShipperListener.html#org.apache.hadoop.hbase.io.hfile">ShipperListener</a></div>
+<div class="col-first odd-row-color"><a href="class-use/Shipper.html#org.apache.hadoop.hbase.io.hfile">Shipper</a></div>
 <div class="col-last odd-row-color">
+<div class="block">This interface denotes a scanner as one which can ship cells.</div>
+</div>
+<div class="col-first even-row-color"><a href="class-use/ShipperListener.html#org.apache.hadoop.hbase.io.hfile">ShipperListener</a></div>
+<div class="col-last even-row-color">
 <div class="block">Implementors of this interface are the ones who needs to do some action when the
  <code>Shipper.shipped()</code> is called</div>
 </div>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCache.html b/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCache.html
index f193268652e..af9f40b7b7c 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCache.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCache.html
@@ -284,14 +284,15 @@
 <span class="source-line-no">271</span><span id="line-271">  }</span>
 <span class="source-line-no">272</span><span id="line-272"></span>
 <span class="source-line-no">273</span><span id="line-273">  /**</span>
-<span class="source-line-no">274</span><span id="line-274">   * Wait for the bucket cache to be enabled while server restart</span>
-<span class="source-line-no">275</span><span id="line-275">   * @param timeout time to wait for the bucket cache to be enable</span>
-<span class="source-line-no">276</span><span id="line-276">   * @return boolean true if the bucket cache is enabled, false otherwise</span>
-<span class="source-line-no">277</span><span id="line-277">   */</span>
-<span class="source-line-no">278</span><span id="line-278">  default boolean waitForCacheInitialization(long timeout) {</span>
-<span class="source-line-no">279</span><span id="line-279">    return true;</span>
-<span class="source-line-no">280</span><span id="line-280">  }</span>
-<span class="source-line-no">281</span><span id="line-281">}</span>
+<span class="source-line-no">274</span><span id="line-274">   * Wait for the block cache implementation to be completely enabled. Some block cache</span>
+<span class="source-line-no">275</span><span id="line-275">   * implementations may take longer to initialise, and this initialisation may be asynchronous.</span>
+<span class="source-line-no">276</span><span id="line-276">   * @param timeout time to wait for the cache to become enabled.</span>
+<span class="source-line-no">277</span><span id="line-277">   * @return boolean true if the cache is enabled, false otherwise.</span>
+<span class="source-line-no">278</span><span id="line-278">   */</span>
+<span class="source-line-no">279</span><span id="line-279">  default boolean waitForCacheInitialization(long timeout) {</span>
+<span class="source-line-no">280</span><span id="line-280">    return true;</span>
+<span class="source-line-no">281</span><span id="line-281">  }</span>
+<span class="source-line-no">282</span><span id="line-282">}</span>
 
 
 
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html b/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html
index f02c535d9d4..c09b5258f18 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.html
@@ -35,217 +35,226 @@
 <span class="source-line-no">022</span><span id="line-22">import static org.apache.hadoop.hbase.HConstants.BUCKET_CACHE_SIZE_KEY;</span>
 <span class="source-line-no">023</span><span id="line-23"></span>
 <span class="source-line-no">024</span><span id="line-24">import java.io.IOException;</span>
-<span class="source-line-no">025</span><span id="line-25">import java.util.concurrent.ForkJoinPool;</span>
-<span class="source-line-no">026</span><span id="line-26">import org.apache.hadoop.conf.Configuration;</span>
-<span class="source-line-no">027</span><span id="line-27">import org.apache.hadoop.hbase.HConstants;</span>
-<span class="source-line-no">028</span><span id="line-28">import org.apache.hadoop.hbase.io.hfile.bucket.BucketCache;</span>
-<span class="source-line-no">029</span><span id="line-29">import org.apache.hadoop.hbase.io.util.MemorySizeUtil;</span>
-<span class="source-line-no">030</span><span id="line-30">import org.apache.hadoop.hbase.util.ReflectionUtils;</span>
-<span class="source-line-no">031</span><span id="line-31">import org.apache.hadoop.util.StringUtils;</span>
-<span class="source-line-no">032</span><span id="line-32">import org.apache.yetus.audience.InterfaceAudience;</span>
-<span class="source-line-no">033</span><span id="line-33">import org.slf4j.Logger;</span>
-<span class="source-line-no">034</span><span id="line-34">import org.slf4j.LoggerFactory;</span>
-<span class="source-line-no">035</span><span id="line-35"></span>
-<span class="source-line-no">036</span><span id="line-36">@InterfaceAudience.Private</span>
-<span class="source-line-no">037</span><span id="line-37">public final class BlockCacheFactory {</span>
-<span class="source-line-no">038</span><span id="line-38"></span>
-<span class="source-line-no">039</span><span id="line-39">  private static final Logger LOG = LoggerFactory.getLogger(BlockCacheFactory.class.getName());</span>
+<span class="source-line-no">025</span><span id="line-25">import java.util.Map;</span>
+<span class="source-line-no">026</span><span id="line-26">import java.util.concurrent.ForkJoinPool;</span>
+<span class="source-line-no">027</span><span id="line-27">import org.apache.hadoop.conf.Configuration;</span>
+<span class="source-line-no">028</span><span id="line-28">import org.apache.hadoop.hbase.HConstants;</span>
+<span class="source-line-no">029</span><span id="line-29">import org.apache.hadoop.hbase.io.hfile.bucket.BucketCache;</span>
+<span class="source-line-no">030</span><span id="line-30">import org.apache.hadoop.hbase.io.util.MemorySizeUtil;</span>
+<span class="source-line-no">031</span><span id="line-31">import org.apache.hadoop.hbase.regionserver.HRegion;</span>
+<span class="source-line-no">032</span><span id="line-32">import org.apache.hadoop.hbase.util.ReflectionUtils;</span>
+<span class="source-line-no">033</span><span id="line-33">import org.apache.hadoop.util.StringUtils;</span>
+<span class="source-line-no">034</span><span id="line-34">import org.apache.yetus.audience.InterfaceAudience;</span>
+<span class="source-line-no">035</span><span id="line-35">import org.slf4j.Logger;</span>
+<span class="source-line-no">036</span><span id="line-36">import org.slf4j.LoggerFactory;</span>
+<span class="source-line-no">037</span><span id="line-37"></span>
+<span class="source-line-no">038</span><span id="line-38">@InterfaceAudience.Private</span>
+<span class="source-line-no">039</span><span id="line-39">public final class BlockCacheFactory {</span>
 <span class="source-line-no">040</span><span id="line-40"></span>
-<span class="source-line-no">041</span><span id="line-41">  /**</span>
-<span class="source-line-no">042</span><span id="line-42">   * Configuration keys for Bucket cache</span>
-<span class="source-line-no">043</span><span id="line-43">   */</span>
-<span class="source-line-no">044</span><span id="line-44"></span>
-<span class="source-line-no">045</span><span id="line-45">  /**</span>
-<span class="source-line-no">046</span><span id="line-46">   * Configuration key to cache block policy (Lru, TinyLfu, AdaptiveLRU, IndexOnlyLRU).</span>
-<span class="source-line-no">047</span><span id="line-47">   */</span>
-<span class="source-line-no">048</span><span id="line-48">  public static final String BLOCKCACHE_POLICY_KEY = "hfile.block.cache.policy";</span>
-<span class="source-line-no">049</span><span id="line-49">  public static final String BLOCKCACHE_POLICY_DEFAULT = "LRU";</span>
-<span class="source-line-no">050</span><span id="line-50"></span>
-<span class="source-line-no">051</span><span id="line-51">  public static final String BUCKET_CACHE_WRITER_THREADS_KEY = "hbase.bucketcache.writer.threads";</span>
+<span class="source-line-no">041</span><span id="line-41">  private static final Logger LOG = LoggerFactory.getLogger(BlockCacheFactory.class.getName());</span>
+<span class="source-line-no">042</span><span id="line-42"></span>
+<span class="source-line-no">043</span><span id="line-43">  /**</span>
+<span class="source-line-no">044</span><span id="line-44">   * Configuration keys for Bucket cache</span>
+<span class="source-line-no">045</span><span id="line-45">   */</span>
+<span class="source-line-no">046</span><span id="line-46"></span>
+<span class="source-line-no">047</span><span id="line-47">  /**</span>
+<span class="source-line-no">048</span><span id="line-48">   * Configuration key to cache block policy (Lru, TinyLfu, AdaptiveLRU, IndexOnlyLRU).</span>
+<span class="source-line-no">049</span><span id="line-49">   */</span>
+<span class="source-line-no">050</span><span id="line-50">  public static final String BLOCKCACHE_POLICY_KEY = "hfile.block.cache.policy";</span>
+<span class="source-line-no">051</span><span id="line-51">  public static final String BLOCKCACHE_POLICY_DEFAULT = "LRU";</span>
 <span class="source-line-no">052</span><span id="line-52"></span>
-<span class="source-line-no">053</span><span id="line-53">  public static final String BUCKET_CACHE_WRITER_QUEUE_KEY = "hbase.bucketcache.writer.queuelength";</span>
+<span class="source-line-no">053</span><span id="line-53">  public static final String BUCKET_CACHE_WRITER_THREADS_KEY = "hbase.bucketcache.writer.threads";</span>
 <span class="source-line-no">054</span><span id="line-54"></span>
-<span class="source-line-no">055</span><span id="line-55">  /**</span>
-<span class="source-line-no">056</span><span id="line-56">   * A comma-delimited array of values for use as bucket sizes.</span>
-<span class="source-line-no">057</span><span id="line-57">   */</span>
-<span class="source-line-no">058</span><span id="line-58">  public static final String BUCKET_CACHE_BUCKETS_KEY = "hbase.bucketcache.bucket.sizes";</span>
-<span class="source-line-no">059</span><span id="line-59"></span>
-<span class="source-line-no">060</span><span id="line-60">  /**</span>
-<span class="source-line-no">061</span><span id="line-61">   * Defaults for Bucket cache</span>
-<span class="source-line-no">062</span><span id="line-62">   */</span>
-<span class="source-line-no">063</span><span id="line-63">  public static final int DEFAULT_BUCKET_CACHE_WRITER_THREADS = 3;</span>
-<span class="source-line-no">064</span><span id="line-64">  public static final int DEFAULT_BUCKET_CACHE_WRITER_QUEUE = 64;</span>
-<span class="source-line-no">065</span><span id="line-65"></span>
-<span class="source-line-no">066</span><span id="line-66">  /**</span>
-<span class="source-line-no">067</span><span id="line-67">   * The target block size used by blockcache instances. Defaults to</span>
-<span class="source-line-no">068</span><span id="line-68">   * {@link HConstants#DEFAULT_BLOCKSIZE}.</span>
-<span class="source-line-no">069</span><span id="line-69">   */</span>
-<span class="source-line-no">070</span><span id="line-70">  public static final String BLOCKCACHE_BLOCKSIZE_KEY = "hbase.blockcache.minblocksize";</span>
-<span class="source-line-no">071</span><span id="line-71"></span>
-<span class="source-line-no">072</span><span id="line-72">  private static final String EXTERNAL_BLOCKCACHE_KEY = "hbase.blockcache.use.external";</span>
-<span class="source-line-no">073</span><span id="line-73">  private static final boolean EXTERNAL_BLOCKCACHE_DEFAULT = false;</span>
-<span class="source-line-no">074</span><span id="line-74"></span>
-<span class="source-line-no">075</span><span id="line-75">  private static final String EXTERNAL_BLOCKCACHE_CLASS_KEY = "hbase.blockcache.external.class";</span>
+<span class="source-line-no">055</span><span id="line-55">  public static final String BUCKET_CACHE_WRITER_QUEUE_KEY = "hbase.bucketcache.writer.queuelength";</span>
+<span class="source-line-no">056</span><span id="line-56"></span>
+<span class="source-line-no">057</span><span id="line-57">  /**</span>
+<span class="source-line-no">058</span><span id="line-58">   * A comma-delimited array of values for use as bucket sizes.</span>
+<span class="source-line-no">059</span><span id="line-59">   */</span>
+<span class="source-line-no">060</span><span id="line-60">  public static final String BUCKET_CACHE_BUCKETS_KEY = "hbase.bucketcache.bucket.sizes";</span>
+<span class="source-line-no">061</span><span id="line-61"></span>
+<span class="source-line-no">062</span><span id="line-62">  /**</span>
+<span class="source-line-no">063</span><span id="line-63">   * Defaults for Bucket cache</span>
+<span class="source-line-no">064</span><span id="line-64">   */</span>
+<span class="source-line-no">065</span><span id="line-65">  public static final int DEFAULT_BUCKET_CACHE_WRITER_THREADS = 3;</span>
+<span class="source-line-no">066</span><span id="line-66">  public static final int DEFAULT_BUCKET_CACHE_WRITER_QUEUE = 64;</span>
+<span class="source-line-no">067</span><span id="line-67"></span>
+<span class="source-line-no">068</span><span id="line-68">  /**</span>
+<span class="source-line-no">069</span><span id="line-69">   * The target block size used by blockcache instances. Defaults to</span>
+<span class="source-line-no">070</span><span id="line-70">   * {@link HConstants#DEFAULT_BLOCKSIZE}.</span>
+<span class="source-line-no">071</span><span id="line-71">   */</span>
+<span class="source-line-no">072</span><span id="line-72">  public static final String BLOCKCACHE_BLOCKSIZE_KEY = "hbase.blockcache.minblocksize";</span>
+<span class="source-line-no">073</span><span id="line-73"></span>
+<span class="source-line-no">074</span><span id="line-74">  private static final String EXTERNAL_BLOCKCACHE_KEY = "hbase.blockcache.use.external";</span>
+<span class="source-line-no">075</span><span id="line-75">  private static final boolean EXTERNAL_BLOCKCACHE_DEFAULT = false;</span>
 <span class="source-line-no">076</span><span id="line-76"></span>
-<span class="source-line-no">077</span><span id="line-77">  /**</span>
-<span class="source-line-no">078</span><span id="line-78">   * @deprecated use {@link BlockCacheFactory#BLOCKCACHE_BLOCKSIZE_KEY} instead.</span>
-<span class="source-line-no">079</span><span id="line-79">   */</span>
-<span class="source-line-no">080</span><span id="line-80">  @Deprecated</span>
-<span class="source-line-no">081</span><span id="line-81">  static final String DEPRECATED_BLOCKCACHE_BLOCKSIZE_KEY = "hbase.offheapcache.minblocksize";</span>
-<span class="source-line-no">082</span><span id="line-82"></span>
-<span class="source-line-no">083</span><span id="line-83">  private BlockCacheFactory() {</span>
-<span class="source-line-no">084</span><span id="line-84">  }</span>
-<span class="source-line-no">085</span><span id="line-85"></span>
-<span class="source-line-no">086</span><span id="line-86">  public static BlockCache createBlockCache(Configuration conf) {</span>
-<span class="source-line-no">087</span><span id="line-87">    FirstLevelBlockCache l1Cache = createFirstLevelCache(conf);</span>
-<span class="source-line-no">088</span><span id="line-88">    if (l1Cache == null) {</span>
-<span class="source-line-no">089</span><span id="line-89">      return null;</span>
-<span class="source-line-no">090</span><span id="line-90">    }</span>
-<span class="source-line-no">091</span><span id="line-91">    boolean useExternal = conf.getBoolean(EXTERNAL_BLOCKCACHE_KEY, EXTERNAL_BLOCKCACHE_DEFAULT);</span>
-<span class="source-line-no">092</span><span id="line-92">    if (useExternal) {</span>
-<span class="source-line-no">093</span><span id="line-93">      BlockCache l2CacheInstance = createExternalBlockcache(conf);</span>
-<span class="source-line-no">094</span><span id="line-94">      return l2CacheInstance == null</span>
-<span class="source-line-no">095</span><span id="line-95">        ? l1Cache</span>
-<span class="source-line-no">096</span><span id="line-96">        : new InclusiveCombinedBlockCache(l1Cache, l2CacheInstance);</span>
-<span class="source-line-no">097</span><span id="line-97">    } else {</span>
-<span class="source-line-no">098</span><span id="line-98">      // otherwise use the bucket cache.</span>
-<span class="source-line-no">099</span><span id="line-99">      BucketCache bucketCache = createBucketCache(conf);</span>
-<span class="source-line-no">100</span><span id="line-100">      if (!conf.getBoolean("hbase.bucketcache.combinedcache.enabled", true)) {</span>
-<span class="source-line-no">101</span><span id="line-101">        // Non combined mode is off from 2.0</span>
-<span class="source-line-no">102</span><span id="line-102">        LOG.warn(</span>
-<span class="source-line-no">103</span><span id="line-103">          "From HBase 2.0 onwards only combined mode of LRU cache and bucket cache is available");</span>
-<span class="source-line-no">104</span><span id="line-104">      }</span>
-<span class="source-line-no">105</span><span id="line-105">      return bucketCache == null ? l1Cache : new CombinedBlockCache(l1Cache, bucketCache);</span>
-<span class="source-line-no">106</span><span id="line-106">    }</span>
-<span class="source-line-no">107</span><span id="line-107">  }</span>
-<span class="source-line-no">108</span><span id="line-108"></span>
-<span class="source-line-no">109</span><span id="line-109">  private static FirstLevelBlockCache createFirstLevelCache(final Configuration c) {</span>
-<span class="source-line-no">110</span><span id="line-110">    final long cacheSize = MemorySizeUtil.getOnHeapCacheSize(c);</span>
-<span class="source-line-no">111</span><span id="line-111">    if (cacheSize &lt; 0) {</span>
-<span class="source-line-no">112</span><span id="line-112">      return null;</span>
-<span class="source-line-no">113</span><span id="line-113">    }</span>
-<span class="source-line-no">114</span><span id="line-114">    String policy = c.get(BLOCKCACHE_POLICY_KEY, BLOCKCACHE_POLICY_DEFAULT);</span>
-<span class="source-line-no">115</span><span id="line-115">    int blockSize = c.getInt(BLOCKCACHE_BLOCKSIZE_KEY, HConstants.DEFAULT_BLOCKSIZE);</span>
-<span class="source-line-no">116</span><span id="line-116">    LOG.info("Allocating BlockCache size=" + StringUtils.byteDesc(cacheSize) + ", blockSize="</span>
-<span class="source-line-no">117</span><span id="line-117">      + StringUtils.byteDesc(blockSize));</span>
-<span class="source-line-no">118</span><span id="line-118">    if (policy.equalsIgnoreCase("LRU")) {</span>
-<span class="source-line-no">119</span><span id="line-119">      return new LruBlockCache(cacheSize, blockSize, true, c);</span>
-<span class="source-line-no">120</span><span id="line-120">    } else if (policy.equalsIgnoreCase("IndexOnlyLRU")) {</span>
-<span class="source-line-no">121</span><span id="line-121">      return new IndexOnlyLruBlockCache(cacheSize, blockSize, true, c);</span>
-<span class="source-line-no">122</span><span id="line-122">    } else if (policy.equalsIgnoreCase("TinyLFU")) {</span>
-<span class="source-line-no">123</span><span id="line-123">      return new TinyLfuBlockCache(cacheSize, blockSize, ForkJoinPool.commonPool(), c);</span>
-<span class="source-line-no">124</span><span id="line-124">    } else if (policy.equalsIgnoreCase("AdaptiveLRU")) {</span>
-<span class="source-line-no">125</span><span id="line-125">      return new LruAdaptiveBlockCache(cacheSize, blockSize, true, c);</span>
-<span class="source-line-no">126</span><span id="line-126">    } else {</span>
-<span class="source-line-no">127</span><span id="line-127">      throw new IllegalArgumentException("Unknown policy: " + policy);</span>
-<span class="source-line-no">128</span><span id="line-128">    }</span>
-<span class="source-line-no">129</span><span id="line-129">  }</span>
-<span class="source-line-no">130</span><span id="line-130"></span>
-<span class="source-line-no">131</span><span id="line-131">  /**</span>
-<span class="source-line-no">132</span><span id="line-132">   * Enum of all built in external block caches. This is used for config.</span>
-<span class="source-line-no">133</span><span id="line-133">   */</span>
-<span class="source-line-no">134</span><span id="line-134">  private static enum ExternalBlockCaches {</span>
-<span class="source-line-no">135</span><span id="line-135">    memcached("org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache");</span>
-<span class="source-line-no">136</span><span id="line-136"></span>
-<span class="source-line-no">137</span><span id="line-137">    // TODO(eclark): Consider more. Redis, etc.</span>
-<span class="source-line-no">138</span><span id="line-138">    Class&lt;? extends BlockCache&gt; clazz;</span>
-<span class="source-line-no">139</span><span id="line-139"></span>
-<span class="source-line-no">140</span><span id="line-140">    ExternalBlockCaches(String clazzName) {</span>
-<span class="source-line-no">141</span><span id="line-141">      try {</span>
-<span class="source-line-no">142</span><span id="line-142">        clazz = (Class&lt;? extends BlockCache&gt;) Class.forName(clazzName);</span>
-<span class="source-line-no">143</span><span id="line-143">      } catch (ClassNotFoundException cnef) {</span>
-<span class="source-line-no">144</span><span id="line-144">        clazz = null;</span>
-<span class="source-line-no">145</span><span id="line-145">      }</span>
-<span class="source-line-no">146</span><span id="line-146">    }</span>
-<span class="source-line-no">147</span><span id="line-147"></span>
-<span class="source-line-no">148</span><span id="line-148">    ExternalBlockCaches(Class&lt;? extends BlockCache&gt; clazz) {</span>
-<span class="source-line-no">149</span><span id="line-149">      this.clazz = clazz;</span>
-<span class="source-line-no">150</span><span id="line-150">    }</span>
-<span class="source-line-no">151</span><span id="line-151">  }</span>
-<span class="source-line-no">152</span><span id="line-152"></span>
-<span class="source-line-no">153</span><span id="line-153">  private static BlockCache createExternalBlockcache(Configuration c) {</span>
-<span class="source-line-no">154</span><span id="line-154">    if (LOG.isDebugEnabled()) {</span>
-<span class="source-line-no">155</span><span id="line-155">      LOG.debug("Trying to use External l2 cache");</span>
-<span class="source-line-no">156</span><span id="line-156">    }</span>
-<span class="source-line-no">157</span><span id="line-157">    Class klass = null;</span>
-<span class="source-line-no">158</span><span id="line-158"></span>
-<span class="source-line-no">159</span><span id="line-159">    // Get the class, from the config. s</span>
-<span class="source-line-no">160</span><span id="line-160">    try {</span>
-<span class="source-line-no">161</span><span id="line-161">      klass = ExternalBlockCaches.valueOf(c.get(EXTERNAL_BLOCKCACHE_CLASS_KEY, "memcache")).clazz;</span>
-<span class="source-line-no">162</span><span id="line-162">    } catch (IllegalArgumentException exception) {</span>
-<span class="source-line-no">163</span><span id="line-163">      try {</span>
-<span class="source-line-no">164</span><span id="line-164">        klass = c.getClass(EXTERNAL_BLOCKCACHE_CLASS_KEY,</span>
-<span class="source-line-no">165</span><span id="line-165">          Class.forName("org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache"));</span>
-<span class="source-line-no">166</span><span id="line-166">      } catch (ClassNotFoundException e) {</span>
-<span class="source-line-no">167</span><span id="line-167">        return null;</span>
-<span class="source-line-no">168</span><span id="line-168">      }</span>
-<span class="source-line-no">169</span><span id="line-169">    }</span>
-<span class="source-line-no">170</span><span id="line-170"></span>
-<span class="source-line-no">171</span><span id="line-171">    // Now try and create an instance of the block cache.</span>
-<span class="source-line-no">172</span><span id="line-172">    try {</span>
-<span class="source-line-no">173</span><span id="line-173">      LOG.info("Creating external block cache of type: " + klass);</span>
-<span class="source-line-no">174</span><span id="line-174">      return (BlockCache) ReflectionUtils.newInstance(klass, c);</span>
-<span class="source-line-no">175</span><span id="line-175">    } catch (Exception e) {</span>
-<span class="source-line-no">176</span><span id="line-176">      LOG.warn("Error creating external block cache", e);</span>
-<span class="source-line-no">177</span><span id="line-177">    }</span>
-<span class="source-line-no">178</span><span id="line-178">    return null;</span>
-<span class="source-line-no">179</span><span id="line-179"></span>
-<span class="source-line-no">180</span><span id="line-180">  }</span>
-<span class="source-line-no">181</span><span id="line-181"></span>
-<span class="source-line-no">182</span><span id="line-182">  private static BucketCache createBucketCache(Configuration c) {</span>
-<span class="source-line-no">183</span><span id="line-183">    // Check for L2. ioengine name must be non-null.</span>
-<span class="source-line-no">184</span><span id="line-184">    String bucketCacheIOEngineName = c.get(BUCKET_CACHE_IOENGINE_KEY, null);</span>
-<span class="source-line-no">185</span><span id="line-185">    if (bucketCacheIOEngineName == null || bucketCacheIOEngineName.length() &lt;= 0) {</span>
-<span class="source-line-no">186</span><span id="line-186">      return null;</span>
-<span class="source-line-no">187</span><span id="line-187">    }</span>
+<span class="source-line-no">077</span><span id="line-77">  private static final String EXTERNAL_BLOCKCACHE_CLASS_KEY = "hbase.blockcache.external.class";</span>
+<span class="source-line-no">078</span><span id="line-78"></span>
+<span class="source-line-no">079</span><span id="line-79">  /**</span>
+<span class="source-line-no">080</span><span id="line-80">   * @deprecated use {@link BlockCacheFactory#BLOCKCACHE_BLOCKSIZE_KEY} instead.</span>
+<span class="source-line-no">081</span><span id="line-81">   */</span>
+<span class="source-line-no">082</span><span id="line-82">  @Deprecated</span>
+<span class="source-line-no">083</span><span id="line-83">  static final String DEPRECATED_BLOCKCACHE_BLOCKSIZE_KEY = "hbase.offheapcache.minblocksize";</span>
+<span class="source-line-no">084</span><span id="line-84"></span>
+<span class="source-line-no">085</span><span id="line-85">  private BlockCacheFactory() {</span>
+<span class="source-line-no">086</span><span id="line-86">  }</span>
+<span class="source-line-no">087</span><span id="line-87"></span>
+<span class="source-line-no">088</span><span id="line-88">  public static BlockCache createBlockCache(Configuration conf,</span>
+<span class="source-line-no">089</span><span id="line-89">    Map&lt;String, HRegion&gt; onlineRegions) {</span>
+<span class="source-line-no">090</span><span id="line-90">    FirstLevelBlockCache l1Cache = createFirstLevelCache(conf);</span>
+<span class="source-line-no">091</span><span id="line-91">    if (l1Cache == null) {</span>
+<span class="source-line-no">092</span><span id="line-92">      return null;</span>
+<span class="source-line-no">093</span><span id="line-93">    }</span>
+<span class="source-line-no">094</span><span id="line-94">    boolean useExternal = conf.getBoolean(EXTERNAL_BLOCKCACHE_KEY, EXTERNAL_BLOCKCACHE_DEFAULT);</span>
+<span class="source-line-no">095</span><span id="line-95">    if (useExternal) {</span>
+<span class="source-line-no">096</span><span id="line-96">      BlockCache l2CacheInstance = createExternalBlockcache(conf);</span>
+<span class="source-line-no">097</span><span id="line-97">      return l2CacheInstance == null</span>
+<span class="source-line-no">098</span><span id="line-98">        ? l1Cache</span>
+<span class="source-line-no">099</span><span id="line-99">        : new InclusiveCombinedBlockCache(l1Cache, l2CacheInstance);</span>
+<span class="source-line-no">100</span><span id="line-100">    } else {</span>
+<span class="source-line-no">101</span><span id="line-101">      // otherwise use the bucket cache.</span>
+<span class="source-line-no">102</span><span id="line-102">      BucketCache bucketCache = createBucketCache(conf, onlineRegions);</span>
+<span class="source-line-no">103</span><span id="line-103">      if (!conf.getBoolean("hbase.bucketcache.combinedcache.enabled", true)) {</span>
+<span class="source-line-no">104</span><span id="line-104">        // Non combined mode is off from 2.0</span>
+<span class="source-line-no">105</span><span id="line-105">        LOG.warn(</span>
+<span class="source-line-no">106</span><span id="line-106">          "From HBase 2.0 onwards only combined mode of LRU cache and bucket cache is available");</span>
+<span class="source-line-no">107</span><span id="line-107">      }</span>
+<span class="source-line-no">108</span><span id="line-108">      return bucketCache == null ? l1Cache : new CombinedBlockCache(l1Cache, bucketCache);</span>
+<span class="source-line-no">109</span><span id="line-109">    }</span>
+<span class="source-line-no">110</span><span id="line-110">  }</span>
+<span class="source-line-no">111</span><span id="line-111"></span>
+<span class="source-line-no">112</span><span id="line-112">  public static BlockCache createBlockCache(Configuration conf) {</span>
+<span class="source-line-no">113</span><span id="line-113">    return createBlockCache(conf, null);</span>
+<span class="source-line-no">114</span><span id="line-114">  }</span>
+<span class="source-line-no">115</span><span id="line-115"></span>
+<span class="source-line-no">116</span><span id="line-116">  private static FirstLevelBlockCache createFirstLevelCache(final Configuration c) {</span>
+<span class="source-line-no">117</span><span id="line-117">    final long cacheSize = MemorySizeUtil.getOnHeapCacheSize(c);</span>
+<span class="source-line-no">118</span><span id="line-118">    if (cacheSize &lt; 0) {</span>
+<span class="source-line-no">119</span><span id="line-119">      return null;</span>
+<span class="source-line-no">120</span><span id="line-120">    }</span>
+<span class="source-line-no">121</span><span id="line-121">    String policy = c.get(BLOCKCACHE_POLICY_KEY, BLOCKCACHE_POLICY_DEFAULT);</span>
+<span class="source-line-no">122</span><span id="line-122">    int blockSize = c.getInt(BLOCKCACHE_BLOCKSIZE_KEY, HConstants.DEFAULT_BLOCKSIZE);</span>
+<span class="source-line-no">123</span><span id="line-123">    LOG.info("Allocating BlockCache size=" + StringUtils.byteDesc(cacheSize) + ", blockSize="</span>
+<span class="source-line-no">124</span><span id="line-124">      + StringUtils.byteDesc(blockSize));</span>
+<span class="source-line-no">125</span><span id="line-125">    if (policy.equalsIgnoreCase("LRU")) {</span>
+<span class="source-line-no">126</span><span id="line-126">      return new LruBlockCache(cacheSize, blockSize, true, c);</span>
+<span class="source-line-no">127</span><span id="line-127">    } else if (policy.equalsIgnoreCase("IndexOnlyLRU")) {</span>
+<span class="source-line-no">128</span><span id="line-128">      return new IndexOnlyLruBlockCache(cacheSize, blockSize, true, c);</span>
+<span class="source-line-no">129</span><span id="line-129">    } else if (policy.equalsIgnoreCase("TinyLFU")) {</span>
+<span class="source-line-no">130</span><span id="line-130">      return new TinyLfuBlockCache(cacheSize, blockSize, ForkJoinPool.commonPool(), c);</span>
+<span class="source-line-no">131</span><span id="line-131">    } else if (policy.equalsIgnoreCase("AdaptiveLRU")) {</span>
+<span class="source-line-no">132</span><span id="line-132">      return new LruAdaptiveBlockCache(cacheSize, blockSize, true, c);</span>
+<span class="source-line-no">133</span><span id="line-133">    } else {</span>
+<span class="source-line-no">134</span><span id="line-134">      throw new IllegalArgumentException("Unknown policy: " + policy);</span>
+<span class="source-line-no">135</span><span id="line-135">    }</span>
+<span class="source-line-no">136</span><span id="line-136">  }</span>
+<span class="source-line-no">137</span><span id="line-137"></span>
+<span class="source-line-no">138</span><span id="line-138">  /**</span>
+<span class="source-line-no">139</span><span id="line-139">   * Enum of all built in external block caches. This is used for config.</span>
+<span class="source-line-no">140</span><span id="line-140">   */</span>
+<span class="source-line-no">141</span><span id="line-141">  private static enum ExternalBlockCaches {</span>
+<span class="source-line-no">142</span><span id="line-142">    memcached("org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache");</span>
+<span class="source-line-no">143</span><span id="line-143"></span>
+<span class="source-line-no">144</span><span id="line-144">    // TODO(eclark): Consider more. Redis, etc.</span>
+<span class="source-line-no">145</span><span id="line-145">    Class&lt;? extends BlockCache&gt; clazz;</span>
+<span class="source-line-no">146</span><span id="line-146"></span>
+<span class="source-line-no">147</span><span id="line-147">    ExternalBlockCaches(String clazzName) {</span>
+<span class="source-line-no">148</span><span id="line-148">      try {</span>
+<span class="source-line-no">149</span><span id="line-149">        clazz = (Class&lt;? extends BlockCache&gt;) Class.forName(clazzName);</span>
+<span class="source-line-no">150</span><span id="line-150">      } catch (ClassNotFoundException cnef) {</span>
+<span class="source-line-no">151</span><span id="line-151">        clazz = null;</span>
+<span class="source-line-no">152</span><span id="line-152">      }</span>
+<span class="source-line-no">153</span><span id="line-153">    }</span>
+<span class="source-line-no">154</span><span id="line-154"></span>
+<span class="source-line-no">155</span><span id="line-155">    ExternalBlockCaches(Class&lt;? extends BlockCache&gt; clazz) {</span>
+<span class="source-line-no">156</span><span id="line-156">      this.clazz = clazz;</span>
+<span class="source-line-no">157</span><span id="line-157">    }</span>
+<span class="source-line-no">158</span><span id="line-158">  }</span>
+<span class="source-line-no">159</span><span id="line-159"></span>
+<span class="source-line-no">160</span><span id="line-160">  private static BlockCache createExternalBlockcache(Configuration c) {</span>
+<span class="source-line-no">161</span><span id="line-161">    if (LOG.isDebugEnabled()) {</span>
+<span class="source-line-no">162</span><span id="line-162">      LOG.debug("Trying to use External l2 cache");</span>
+<span class="source-line-no">163</span><span id="line-163">    }</span>
+<span class="source-line-no">164</span><span id="line-164">    Class klass = null;</span>
+<span class="source-line-no">165</span><span id="line-165"></span>
+<span class="source-line-no">166</span><span id="line-166">    // Get the class, from the config. s</span>
+<span class="source-line-no">167</span><span id="line-167">    try {</span>
+<span class="source-line-no">168</span><span id="line-168">      klass = ExternalBlockCaches.valueOf(c.get(EXTERNAL_BLOCKCACHE_CLASS_KEY, "memcache")).clazz;</span>
+<span class="source-line-no">169</span><span id="line-169">    } catch (IllegalArgumentException exception) {</span>
+<span class="source-line-no">170</span><span id="line-170">      try {</span>
+<span class="source-line-no">171</span><span id="line-171">        klass = c.getClass(EXTERNAL_BLOCKCACHE_CLASS_KEY,</span>
+<span class="source-line-no">172</span><span id="line-172">          Class.forName("org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache"));</span>
+<span class="source-line-no">173</span><span id="line-173">      } catch (ClassNotFoundException e) {</span>
+<span class="source-line-no">174</span><span id="line-174">        return null;</span>
+<span class="source-line-no">175</span><span id="line-175">      }</span>
+<span class="source-line-no">176</span><span id="line-176">    }</span>
+<span class="source-line-no">177</span><span id="line-177"></span>
+<span class="source-line-no">178</span><span id="line-178">    // Now try and create an instance of the block cache.</span>
+<span class="source-line-no">179</span><span id="line-179">    try {</span>
+<span class="source-line-no">180</span><span id="line-180">      LOG.info("Creating external block cache of type: " + klass);</span>
+<span class="source-line-no">181</span><span id="line-181">      return (BlockCache) ReflectionUtils.newInstance(klass, c);</span>
+<span class="source-line-no">182</span><span id="line-182">    } catch (Exception e) {</span>
+<span class="source-line-no">183</span><span id="line-183">      LOG.warn("Error creating external block cache", e);</span>
+<span class="source-line-no">184</span><span id="line-184">    }</span>
+<span class="source-line-no">185</span><span id="line-185">    return null;</span>
+<span class="source-line-no">186</span><span id="line-186"></span>
+<span class="source-line-no">187</span><span id="line-187">  }</span>
 <span class="source-line-no">188</span><span id="line-188"></span>
-<span class="source-line-no">189</span><span id="line-189">    int blockSize = c.getInt(BLOCKCACHE_BLOCKSIZE_KEY, HConstants.DEFAULT_BLOCKSIZE);</span>
-<span class="source-line-no">190</span><span id="line-190">    final long bucketCacheSize = MemorySizeUtil.getBucketCacheSize(c);</span>
-<span class="source-line-no">191</span><span id="line-191">    if (bucketCacheSize &lt;= 0) {</span>
-<span class="source-line-no">192</span><span id="line-192">      throw new IllegalStateException("bucketCacheSize &lt;= 0; Check " + BUCKET_CACHE_SIZE_KEY</span>
-<span class="source-line-no">193</span><span id="line-193">        + " setting and/or server java heap size");</span>
-<span class="source-line-no">194</span><span id="line-194">    }</span>
-<span class="source-line-no">195</span><span id="line-195">    if (c.get("hbase.bucketcache.percentage.in.combinedcache") != null) {</span>
-<span class="source-line-no">196</span><span id="line-196">      LOG.warn("Configuration 'hbase.bucketcache.percentage.in.combinedcache' is no longer "</span>
-<span class="source-line-no">197</span><span id="line-197">        + "respected. See comments in http://hbase.apache.org/book.html#_changes_of_note");</span>
-<span class="source-line-no">198</span><span id="line-198">    }</span>
-<span class="source-line-no">199</span><span id="line-199">    int writerThreads =</span>
-<span class="source-line-no">200</span><span id="line-200">      c.getInt(BUCKET_CACHE_WRITER_THREADS_KEY, DEFAULT_BUCKET_CACHE_WRITER_THREADS);</span>
-<span class="source-line-no">201</span><span id="line-201">    int writerQueueLen = c.getInt(BUCKET_CACHE_WRITER_QUEUE_KEY, DEFAULT_BUCKET_CACHE_WRITER_QUEUE);</span>
-<span class="source-line-no">202</span><span id="line-202">    String persistentPath = c.get(BUCKET_CACHE_PERSISTENT_PATH_KEY);</span>
-<span class="source-line-no">203</span><span id="line-203">    String[] configuredBucketSizes = c.getStrings(BUCKET_CACHE_BUCKETS_KEY);</span>
-<span class="source-line-no">204</span><span id="line-204">    int[] bucketSizes = null;</span>
-<span class="source-line-no">205</span><span id="line-205">    if (configuredBucketSizes != null) {</span>
-<span class="source-line-no">206</span><span id="line-206">      bucketSizes = new int[configuredBucketSizes.length];</span>
-<span class="source-line-no">207</span><span id="line-207">      for (int i = 0; i &lt; configuredBucketSizes.length; i++) {</span>
-<span class="source-line-no">208</span><span id="line-208">        int bucketSize = Integer.parseInt(configuredBucketSizes[i].trim());</span>
-<span class="source-line-no">209</span><span id="line-209">        if (bucketSize % 256 != 0) {</span>
-<span class="source-line-no">210</span><span id="line-210">          // We need all the bucket sizes to be multiples of 256. Having all the configured bucket</span>
-<span class="source-line-no">211</span><span id="line-211">          // sizes to be multiples of 256 will ensure that the block offsets within buckets,</span>
-<span class="source-line-no">212</span><span id="line-212">          // that are calculated, will also be multiples of 256.</span>
-<span class="source-line-no">213</span><span id="line-213">          // See BucketEntry where offset to each block is represented using 5 bytes (instead of 8</span>
-<span class="source-line-no">214</span><span id="line-214">          // bytes long). We would like to save heap overhead as less as possible.</span>
-<span class="source-line-no">215</span><span id="line-215">          throw new IllegalArgumentException("Illegal value: " + bucketSize + " configured for '"</span>
-<span class="source-line-no">216</span><span id="line-216">            + BUCKET_CACHE_BUCKETS_KEY + "'. All bucket sizes to be multiples of 256");</span>
-<span class="source-line-no">217</span><span id="line-217">        }</span>
-<span class="source-line-no">218</span><span id="line-218">        bucketSizes[i] = bucketSize;</span>
-<span class="source-line-no">219</span><span id="line-219">      }</span>
-<span class="source-line-no">220</span><span id="line-220">    }</span>
-<span class="source-line-no">221</span><span id="line-221">    BucketCache bucketCache = null;</span>
-<span class="source-line-no">222</span><span id="line-222">    try {</span>
-<span class="source-line-no">223</span><span id="line-223">      int ioErrorsTolerationDuration =</span>
-<span class="source-line-no">224</span><span id="line-224">        c.getInt("hbase.bucketcache.ioengine.errors.tolerated.duration",</span>
-<span class="source-line-no">225</span><span id="line-225">          BucketCache.DEFAULT_ERROR_TOLERATION_DURATION);</span>
-<span class="source-line-no">226</span><span id="line-226">      // Bucket cache logs its stats on creation internal to the constructor.</span>
-<span class="source-line-no">227</span><span id="line-227">      bucketCache = new BucketCache(bucketCacheIOEngineName, bucketCacheSize, blockSize,</span>
-<span class="source-line-no">228</span><span id="line-228">        bucketSizes, writerThreads, writerQueueLen, persistentPath, ioErrorsTolerationDuration, c);</span>
-<span class="source-line-no">229</span><span id="line-229">    } catch (IOException ioex) {</span>
-<span class="source-line-no">230</span><span id="line-230">      LOG.error("Can't instantiate bucket cache", ioex);</span>
-<span class="source-line-no">231</span><span id="line-231">      throw new RuntimeException(ioex);</span>
-<span class="source-line-no">232</span><span id="line-232">    }</span>
-<span class="source-line-no">233</span><span id="line-233">    return bucketCache;</span>
-<span class="source-line-no">234</span><span id="line-234">  }</span>
-<span class="source-line-no">235</span><span id="line-235">}</span>
+<span class="source-line-no">189</span><span id="line-189">  private static BucketCache createBucketCache(Configuration c,</span>
+<span class="source-line-no">190</span><span id="line-190">    Map&lt;String, HRegion&gt; onlineRegions) {</span>
+<span class="source-line-no">191</span><span id="line-191">    // Check for L2. ioengine name must be non-null.</span>
+<span class="source-line-no">192</span><span id="line-192">    String bucketCacheIOEngineName = c.get(BUCKET_CACHE_IOENGINE_KEY, null);</span>
+<span class="source-line-no">193</span><span id="line-193">    if (bucketCacheIOEngineName == null || bucketCacheIOEngineName.length() &lt;= 0) {</span>
+<span class="source-line-no">194</span><span id="line-194">      return null;</span>
+<span class="source-line-no">195</span><span id="line-195">    }</span>
+<span class="source-line-no">196</span><span id="line-196"></span>
+<span class="source-line-no">197</span><span id="line-197">    int blockSize = c.getInt(BLOCKCACHE_BLOCKSIZE_KEY, HConstants.DEFAULT_BLOCKSIZE);</span>
+<span class="source-line-no">198</span><span id="line-198">    final long bucketCacheSize = MemorySizeUtil.getBucketCacheSize(c);</span>
+<span class="source-line-no">199</span><span id="line-199">    if (bucketCacheSize &lt;= 0) {</span>
+<span class="source-line-no">200</span><span id="line-200">      throw new IllegalStateException("bucketCacheSize &lt;= 0; Check " + BUCKET_CACHE_SIZE_KEY</span>
+<span class="source-line-no">201</span><span id="line-201">        + " setting and/or server java heap size");</span>
+<span class="source-line-no">202</span><span id="line-202">    }</span>
+<span class="source-line-no">203</span><span id="line-203">    if (c.get("hbase.bucketcache.percentage.in.combinedcache") != null) {</span>
+<span class="source-line-no">204</span><span id="line-204">      LOG.warn("Configuration 'hbase.bucketcache.percentage.in.combinedcache' is no longer "</span>
+<span class="source-line-no">205</span><span id="line-205">        + "respected. See comments in http://hbase.apache.org/book.html#_changes_of_note");</span>
+<span class="source-line-no">206</span><span id="line-206">    }</span>
+<span class="source-line-no">207</span><span id="line-207">    int writerThreads =</span>
+<span class="source-line-no">208</span><span id="line-208">      c.getInt(BUCKET_CACHE_WRITER_THREADS_KEY, DEFAULT_BUCKET_CACHE_WRITER_THREADS);</span>
+<span class="source-line-no">209</span><span id="line-209">    int writerQueueLen = c.getInt(BUCKET_CACHE_WRITER_QUEUE_KEY, DEFAULT_BUCKET_CACHE_WRITER_QUEUE);</span>
+<span class="source-line-no">210</span><span id="line-210">    String persistentPath = c.get(BUCKET_CACHE_PERSISTENT_PATH_KEY);</span>
+<span class="source-line-no">211</span><span id="line-211">    String[] configuredBucketSizes = c.getStrings(BUCKET_CACHE_BUCKETS_KEY);</span>
+<span class="source-line-no">212</span><span id="line-212">    int[] bucketSizes = null;</span>
+<span class="source-line-no">213</span><span id="line-213">    if (configuredBucketSizes != null) {</span>
+<span class="source-line-no">214</span><span id="line-214">      bucketSizes = new int[configuredBucketSizes.length];</span>
+<span class="source-line-no">215</span><span id="line-215">      for (int i = 0; i &lt; configuredBucketSizes.length; i++) {</span>
+<span class="source-line-no">216</span><span id="line-216">        int bucketSize = Integer.parseInt(configuredBucketSizes[i].trim());</span>
+<span class="source-line-no">217</span><span id="line-217">        if (bucketSize % 256 != 0) {</span>
+<span class="source-line-no">218</span><span id="line-218">          // We need all the bucket sizes to be multiples of 256. Having all the configured bucket</span>
+<span class="source-line-no">219</span><span id="line-219">          // sizes to be multiples of 256 will ensure that the block offsets within buckets,</span>
+<span class="source-line-no">220</span><span id="line-220">          // that are calculated, will also be multiples of 256.</span>
+<span class="source-line-no">221</span><span id="line-221">          // See BucketEntry where offset to each block is represented using 5 bytes (instead of 8</span>
+<span class="source-line-no">222</span><span id="line-222">          // bytes long). We would like to save heap overhead as less as possible.</span>
+<span class="source-line-no">223</span><span id="line-223">          throw new IllegalArgumentException("Illegal value: " + bucketSize + " configured for '"</span>
+<span class="source-line-no">224</span><span id="line-224">            + BUCKET_CACHE_BUCKETS_KEY + "'. All bucket sizes to be multiples of 256");</span>
+<span class="source-line-no">225</span><span id="line-225">        }</span>
+<span class="source-line-no">226</span><span id="line-226">        bucketSizes[i] = bucketSize;</span>
+<span class="source-line-no">227</span><span id="line-227">      }</span>
+<span class="source-line-no">228</span><span id="line-228">    }</span>
+<span class="source-line-no">229</span><span id="line-229">    BucketCache bucketCache = null;</span>
+<span class="source-line-no">230</span><span id="line-230">    try {</span>
+<span class="source-line-no">231</span><span id="line-231">      int ioErrorsTolerationDuration =</span>
+<span class="source-line-no">232</span><span id="line-232">        c.getInt("hbase.bucketcache.ioengine.errors.tolerated.duration",</span>
+<span class="source-line-no">233</span><span id="line-233">          BucketCache.DEFAULT_ERROR_TOLERATION_DURATION);</span>
+<span class="source-line-no">234</span><span id="line-234">      // Bucket cache logs its stats on creation internal to the constructor.</span>
+<span class="source-line-no">235</span><span id="line-235">      bucketCache = new BucketCache(bucketCacheIOEngineName, bucketCacheSize, blockSize,</span>
+<span class="source-line-no">236</span><span id="line-236">        bucketSizes, writerThreads, writerQueueLen, persistentPath, ioErrorsTolerationDuration, c,</span>
+<span class="source-line-no">237</span><span id="line-237">        onlineRegions);</span>
+<span class="source-line-no">238</span><span id="line-238">    } catch (IOException ioex) {</span>
+<span class="source-line-no">239</span><span id="line-239">      LOG.error("Can't instantiate bucket cache", ioex);</span>
+<span class="source-line-no">240</span><span id="line-240">      throw new RuntimeException(ioex);</span>
+<span class="source-line-no">241</span><span id="line-241">    }</span>
+<span class="source-line-no">242</span><span id="line-242">    return bucketCache;</span>
+<span class="source-line-no">243</span><span id="line-243">  }</span>
+<span class="source-line-no">244</span><span id="line-244">}</span>
 
 
 
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html b/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html
index 9fde6dabeb1..ea3d83ab5df 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.CachedBlocksByFile.html
@@ -34,373 +34,387 @@
 <span class="source-line-no">021</span><span id="line-21"></span>
 <span class="source-line-no">022</span><span id="line-22">import java.io.IOException;</span>
 <span class="source-line-no">023</span><span id="line-23">import java.nio.ByteBuffer;</span>
-<span class="source-line-no">024</span><span id="line-24">import java.util.NavigableMap;</span>
-<span class="source-line-no">025</span><span id="line-25">import java.util.NavigableSet;</span>
-<span class="source-line-no">026</span><span id="line-26">import java.util.concurrent.ConcurrentSkipListMap;</span>
-<span class="source-line-no">027</span><span id="line-27">import java.util.concurrent.ConcurrentSkipListSet;</span>
-<span class="source-line-no">028</span><span id="line-28">import org.apache.hadoop.conf.Configuration;</span>
-<span class="source-line-no">029</span><span id="line-29">import org.apache.hadoop.hbase.metrics.impl.FastLongHistogram;</span>
-<span class="source-line-no">030</span><span id="line-30">import org.apache.hadoop.hbase.nio.ByteBuff;</span>
-<span class="source-line-no">031</span><span id="line-31">import org.apache.hadoop.hbase.util.Bytes;</span>
-<span class="source-line-no">032</span><span id="line-32">import org.apache.hadoop.hbase.util.ChecksumType;</span>
-<span class="source-line-no">033</span><span id="line-33">import org.apache.hadoop.hbase.util.GsonUtil;</span>
-<span class="source-line-no">034</span><span id="line-34">import org.apache.yetus.audience.InterfaceAudience;</span>
-<span class="source-line-no">035</span><span id="line-35">import org.slf4j.Logger;</span>
-<span class="source-line-no">036</span><span id="line-36">import org.slf4j.LoggerFactory;</span>
-<span class="source-line-no">037</span><span id="line-37"></span>
-<span class="source-line-no">038</span><span id="line-38">import org.apache.hbase.thirdparty.com.google.gson.Gson;</span>
-<span class="source-line-no">039</span><span id="line-39">import org.apache.hbase.thirdparty.com.google.gson.TypeAdapter;</span>
-<span class="source-line-no">040</span><span id="line-40">import org.apache.hbase.thirdparty.com.google.gson.stream.JsonReader;</span>
-<span class="source-line-no">041</span><span id="line-41">import org.apache.hbase.thirdparty.com.google.gson.stream.JsonWriter;</span>
-<span class="source-line-no">042</span><span id="line-42"></span>
-<span class="source-line-no">043</span><span id="line-43">/**</span>
-<span class="source-line-no">044</span><span id="line-44"> * Utilty for aggregating counts in CachedBlocks and toString/toJSON CachedBlocks and BlockCaches.</span>
-<span class="source-line-no">045</span><span id="line-45"> * No attempt has been made at making this thread safe.</span>
-<span class="source-line-no">046</span><span id="line-46"> */</span>
-<span class="source-line-no">047</span><span id="line-47">@InterfaceAudience.Private</span>
-<span class="source-line-no">048</span><span id="line-48">public class BlockCacheUtil {</span>
-<span class="source-line-no">049</span><span id="line-49"></span>
-<span class="source-line-no">050</span><span id="line-50">  private static final Logger LOG = LoggerFactory.getLogger(BlockCacheUtil.class);</span>
-<span class="source-line-no">051</span><span id="line-51"></span>
-<span class="source-line-no">052</span><span id="line-52">  public static final long NANOS_PER_SECOND = 1000000000;</span>
+<span class="source-line-no">024</span><span id="line-24">import java.util.HashSet;</span>
+<span class="source-line-no">025</span><span id="line-25">import java.util.Map;</span>
+<span class="source-line-no">026</span><span id="line-26">import java.util.NavigableMap;</span>
+<span class="source-line-no">027</span><span id="line-27">import java.util.NavigableSet;</span>
+<span class="source-line-no">028</span><span id="line-28">import java.util.Set;</span>
+<span class="source-line-no">029</span><span id="line-29">import java.util.concurrent.ConcurrentSkipListMap;</span>
+<span class="source-line-no">030</span><span id="line-30">import java.util.concurrent.ConcurrentSkipListSet;</span>
+<span class="source-line-no">031</span><span id="line-31">import org.apache.hadoop.conf.Configuration;</span>
+<span class="source-line-no">032</span><span id="line-32">import org.apache.hadoop.hbase.metrics.impl.FastLongHistogram;</span>
+<span class="source-line-no">033</span><span id="line-33">import org.apache.hadoop.hbase.nio.ByteBuff;</span>
+<span class="source-line-no">034</span><span id="line-34">import org.apache.hadoop.hbase.regionserver.HRegion;</span>
+<span class="source-line-no">035</span><span id="line-35">import org.apache.hadoop.hbase.util.Bytes;</span>
+<span class="source-line-no">036</span><span id="line-36">import org.apache.hadoop.hbase.util.ChecksumType;</span>
+<span class="source-line-no">037</span><span id="line-37">import org.apache.hadoop.hbase.util.GsonUtil;</span>
+<span class="source-line-no">038</span><span id="line-38">import org.apache.yetus.audience.InterfaceAudience;</span>
+<span class="source-line-no">039</span><span id="line-39">import org.slf4j.Logger;</span>
+<span class="source-line-no">040</span><span id="line-40">import org.slf4j.LoggerFactory;</span>
+<span class="source-line-no">041</span><span id="line-41"></span>
+<span class="source-line-no">042</span><span id="line-42">import org.apache.hbase.thirdparty.com.google.gson.Gson;</span>
+<span class="source-line-no">043</span><span id="line-43">import org.apache.hbase.thirdparty.com.google.gson.TypeAdapter;</span>
+<span class="source-line-no">044</span><span id="line-44">import org.apache.hbase.thirdparty.com.google.gson.stream.JsonReader;</span>
+<span class="source-line-no">045</span><span id="line-45">import org.apache.hbase.thirdparty.com.google.gson.stream.JsonWriter;</span>
+<span class="source-line-no">046</span><span id="line-46"></span>
+<span class="source-line-no">047</span><span id="line-47">/**</span>
+<span class="source-line-no">048</span><span id="line-48"> * Utilty for aggregating counts in CachedBlocks and toString/toJSON CachedBlocks and BlockCaches.</span>
+<span class="source-line-no">049</span><span id="line-49"> * No attempt has been made at making this thread safe.</span>
+<span class="source-line-no">050</span><span id="line-50"> */</span>
+<span class="source-line-no">051</span><span id="line-51">@InterfaceAudience.Private</span>
+<span class="source-line-no">052</span><span id="line-52">public class BlockCacheUtil {</span>
 <span class="source-line-no">053</span><span id="line-53"></span>
-<span class="source-line-no">054</span><span id="line-54">  /**</span>
-<span class="source-line-no">055</span><span id="line-55">   * Needed generating JSON.</span>
-<span class="source-line-no">056</span><span id="line-56">   */</span>
-<span class="source-line-no">057</span><span id="line-57">  private static final Gson GSON = GsonUtil.createGson()</span>
-<span class="source-line-no">058</span><span id="line-58">    .registerTypeAdapter(FastLongHistogram.class, new TypeAdapter&lt;FastLongHistogram&gt;() {</span>
-<span class="source-line-no">059</span><span id="line-59"></span>
-<span class="source-line-no">060</span><span id="line-60">      @Override</span>
-<span class="source-line-no">061</span><span id="line-61">      public void write(JsonWriter out, FastLongHistogram value) throws IOException {</span>
-<span class="source-line-no">062</span><span id="line-62">        AgeSnapshot snapshot = new AgeSnapshot(value);</span>
-<span class="source-line-no">063</span><span id="line-63">        out.beginObject();</span>
-<span class="source-line-no">064</span><span id="line-64">        out.name("mean").value(snapshot.getMean());</span>
-<span class="source-line-no">065</span><span id="line-65">        out.name("min").value(snapshot.getMin());</span>
-<span class="source-line-no">066</span><span id="line-66">        out.name("max").value(snapshot.getMax());</span>
-<span class="source-line-no">067</span><span id="line-67">        out.name("75thPercentile").value(snapshot.get75thPercentile());</span>
-<span class="source-line-no">068</span><span id="line-68">        out.name("95thPercentile").value(snapshot.get95thPercentile());</span>
-<span class="source-line-no">069</span><span id="line-69">        out.name("98thPercentile").value(snapshot.get98thPercentile());</span>
-<span class="source-line-no">070</span><span id="line-70">        out.name("99thPercentile").value(snapshot.get99thPercentile());</span>
-<span class="source-line-no">071</span><span id="line-71">        out.name("999thPercentile").value(snapshot.get999thPercentile());</span>
-<span class="source-line-no">072</span><span id="line-72">        out.endObject();</span>
-<span class="source-line-no">073</span><span id="line-73">      }</span>
-<span class="source-line-no">074</span><span id="line-74"></span>
-<span class="source-line-no">075</span><span id="line-75">      @Override</span>
-<span class="source-line-no">076</span><span id="line-76">      public FastLongHistogram read(JsonReader in) throws IOException {</span>
-<span class="source-line-no">077</span><span id="line-77">        throw new UnsupportedOperationException();</span>
-<span class="source-line-no">078</span><span id="line-78">      }</span>
-<span class="source-line-no">079</span><span id="line-79">    }).setPrettyPrinting().create();</span>
-<span class="source-line-no">080</span><span id="line-80"></span>
-<span class="source-line-no">081</span><span id="line-81">  /** Returns The block content as String. */</span>
-<span class="source-line-no">082</span><span id="line-82">  public static String toString(final CachedBlock cb, final long now) {</span>
-<span class="source-line-no">083</span><span id="line-83">    return "filename=" + cb.getFilename() + ", " + toStringMinusFileName(cb, now);</span>
-<span class="source-line-no">084</span><span id="line-84">  }</span>
-<span class="source-line-no">085</span><span id="line-85"></span>
-<span class="source-line-no">086</span><span id="line-86">  /**</span>
-<span class="source-line-no">087</span><span id="line-87">   * Little data structure to hold counts for a file. Used doing a toJSON.</span>
-<span class="source-line-no">088</span><span id="line-88">   */</span>
-<span class="source-line-no">089</span><span id="line-89">  static class CachedBlockCountsPerFile {</span>
-<span class="source-line-no">090</span><span id="line-90">    private int count = 0;</span>
-<span class="source-line-no">091</span><span id="line-91">    private long size = 0;</span>
-<span class="source-line-no">092</span><span id="line-92">    private int countData = 0;</span>
-<span class="source-line-no">093</span><span id="line-93">    private long sizeData = 0;</span>
-<span class="source-line-no">094</span><span id="line-94">    private final String filename;</span>
-<span class="source-line-no">095</span><span id="line-95"></span>
-<span class="source-line-no">096</span><span id="line-96">    CachedBlockCountsPerFile(final String filename) {</span>
-<span class="source-line-no">097</span><span id="line-97">      this.filename = filename;</span>
-<span class="source-line-no">098</span><span id="line-98">    }</span>
+<span class="source-line-no">054</span><span id="line-54">  private static final Logger LOG = LoggerFactory.getLogger(BlockCacheUtil.class);</span>
+<span class="source-line-no">055</span><span id="line-55"></span>
+<span class="source-line-no">056</span><span id="line-56">  public static final long NANOS_PER_SECOND = 1000000000;</span>
+<span class="source-line-no">057</span><span id="line-57"></span>
+<span class="source-line-no">058</span><span id="line-58">  /**</span>
+<span class="source-line-no">059</span><span id="line-59">   * Needed generating JSON.</span>
+<span class="source-line-no">060</span><span id="line-60">   */</span>
+<span class="source-line-no">061</span><span id="line-61">  private static final Gson GSON = GsonUtil.createGson()</span>
+<span class="source-line-no">062</span><span id="line-62">    .registerTypeAdapter(FastLongHistogram.class, new TypeAdapter&lt;FastLongHistogram&gt;() {</span>
+<span class="source-line-no">063</span><span id="line-63"></span>
+<span class="source-line-no">064</span><span id="line-64">      @Override</span>
+<span class="source-line-no">065</span><span id="line-65">      public void write(JsonWriter out, FastLongHistogram value) throws IOException {</span>
+<span class="source-line-no">066</span><span id="line-66">        AgeSnapshot snapshot = new AgeSnapshot(value);</span>
+<span class="source-line-no">067</span><span id="line-67">        out.beginObject();</span>
+<span class="source-line-no">068</span><span id="line-68">        out.name("mean").value(snapshot.getMean());</span>
+<span class="source-line-no">069</span><span id="line-69">        out.name("min").value(snapshot.getMin());</span>
+<span class="source-line-no">070</span><span id="line-70">        out.name("max").value(snapshot.getMax());</span>
+<span class="source-line-no">071</span><span id="line-71">        out.name("75thPercentile").value(snapshot.get75thPercentile());</span>
+<span class="source-line-no">072</span><span id="line-72">        out.name("95thPercentile").value(snapshot.get95thPercentile());</span>
+<span class="source-line-no">073</span><span id="line-73">        out.name("98thPercentile").value(snapshot.get98thPercentile());</span>
+<span class="source-line-no">074</span><span id="line-74">        out.name("99thPercentile").value(snapshot.get99thPercentile());</span>
+<span class="source-line-no">075</span><span id="line-75">        out.name("999thPercentile").value(snapshot.get999thPercentile());</span>
+<span class="source-line-no">076</span><span id="line-76">        out.endObject();</span>
+<span class="source-line-no">077</span><span id="line-77">      }</span>
+<span class="source-line-no">078</span><span id="line-78"></span>
+<span class="source-line-no">079</span><span id="line-79">      @Override</span>
+<span class="source-line-no">080</span><span id="line-80">      public FastLongHistogram read(JsonReader in) throws IOException {</span>
+<span class="source-line-no">081</span><span id="line-81">        throw new UnsupportedOperationException();</span>
+<span class="source-line-no">082</span><span id="line-82">      }</span>
+<span class="source-line-no">083</span><span id="line-83">    }).setPrettyPrinting().create();</span>
+<span class="source-line-no">084</span><span id="line-84"></span>
+<span class="source-line-no">085</span><span id="line-85">  /** Returns The block content as String. */</span>
+<span class="source-line-no">086</span><span id="line-86">  public static String toString(final CachedBlock cb, final long now) {</span>
+<span class="source-line-no">087</span><span id="line-87">    return "filename=" + cb.getFilename() + ", " + toStringMinusFileName(cb, now);</span>
+<span class="source-line-no">088</span><span id="line-88">  }</span>
+<span class="source-line-no">089</span><span id="line-89"></span>
+<span class="source-line-no">090</span><span id="line-90">  /**</span>
+<span class="source-line-no">091</span><span id="line-91">   * Little data structure to hold counts for a file. Used doing a toJSON.</span>
+<span class="source-line-no">092</span><span id="line-92">   */</span>
+<span class="source-line-no">093</span><span id="line-93">  static class CachedBlockCountsPerFile {</span>
+<span class="source-line-no">094</span><span id="line-94">    private int count = 0;</span>
+<span class="source-line-no">095</span><span id="line-95">    private long size = 0;</span>
+<span class="source-line-no">096</span><span id="line-96">    private int countData = 0;</span>
+<span class="source-line-no">097</span><span id="line-97">    private long sizeData = 0;</span>
+<span class="source-line-no">098</span><span id="line-98">    private final String filename;</span>
 <span class="source-line-no">099</span><span id="line-99"></span>
-<span class="source-line-no">100</span><span id="line-100">    public int getCount() {</span>
-<span class="source-line-no">101</span><span id="line-101">      return count;</span>
+<span class="source-line-no">100</span><span id="line-100">    CachedBlockCountsPerFile(final String filename) {</span>
+<span class="source-line-no">101</span><span id="line-101">      this.filename = filename;</span>
 <span class="source-line-no">102</span><span id="line-102">    }</span>
 <span class="source-line-no">103</span><span id="line-103"></span>
-<span class="source-line-no">104</span><span id="line-104">    public long getSize() {</span>
-<span class="source-line-no">105</span><span id="line-105">      return size;</span>
+<span class="source-line-no">104</span><span id="line-104">    public int getCount() {</span>
+<span class="source-line-no">105</span><span id="line-105">      return count;</span>
 <span class="source-line-no">106</span><span id="line-106">    }</span>
 <span class="source-line-no">107</span><span id="line-107"></span>
-<span class="source-line-no">108</span><span id="line-108">    public int getCountData() {</span>
-<span class="source-line-no">109</span><span id="line-109">      return countData;</span>
+<span class="source-line-no">108</span><span id="line-108">    public long getSize() {</span>
+<span class="source-line-no">109</span><span id="line-109">      return size;</span>
 <span class="source-line-no">110</span><span id="line-110">    }</span>
 <span class="source-line-no">111</span><span id="line-111"></span>
-<span class="source-line-no">112</span><span id="line-112">    public long getSizeData() {</span>
-<span class="source-line-no">113</span><span id="line-113">      return sizeData;</span>
+<span class="source-line-no">112</span><span id="line-112">    public int getCountData() {</span>
+<span class="source-line-no">113</span><span id="line-113">      return countData;</span>
 <span class="source-line-no">114</span><span id="line-114">    }</span>
 <span class="source-line-no">115</span><span id="line-115"></span>
-<span class="source-line-no">116</span><span id="line-116">    public String getFilename() {</span>
-<span class="source-line-no">117</span><span id="line-117">      return filename;</span>
+<span class="source-line-no">116</span><span id="line-116">    public long getSizeData() {</span>
+<span class="source-line-no">117</span><span id="line-117">      return sizeData;</span>
 <span class="source-line-no">118</span><span id="line-118">    }</span>
-<span class="source-line-no">119</span><span id="line-119">  }</span>
-<span class="source-line-no">120</span><span id="line-120"></span>
-<span class="source-line-no">121</span><span id="line-121">  /** Returns A JSON String of &lt;code&gt;filename&lt;/code&gt; and counts of &lt;code&gt;blocks&lt;/code&gt; */</span>
-<span class="source-line-no">122</span><span id="line-122">  public static String toJSON(String filename, NavigableSet&lt;CachedBlock&gt; blocks)</span>
-<span class="source-line-no">123</span><span id="line-123">    throws IOException {</span>
-<span class="source-line-no">124</span><span id="line-124">    CachedBlockCountsPerFile counts = new CachedBlockCountsPerFile(filename);</span>
-<span class="source-line-no">125</span><span id="line-125">    for (CachedBlock cb : blocks) {</span>
-<span class="source-line-no">126</span><span id="line-126">      counts.count++;</span>
-<span class="source-line-no">127</span><span id="line-127">      counts.size += cb.getSize();</span>
-<span class="source-line-no">128</span><span id="line-128">      BlockType bt = cb.getBlockType();</span>
-<span class="source-line-no">129</span><span id="line-129">      if (bt != null &amp;&amp; bt.isData()) {</span>
-<span class="source-line-no">130</span><span id="line-130">        counts.countData++;</span>
-<span class="source-line-no">131</span><span id="line-131">        counts.sizeData += cb.getSize();</span>
-<span class="source-line-no">132</span><span id="line-132">      }</span>
-<span class="source-line-no">133</span><span id="line-133">    }</span>
-<span class="source-line-no">134</span><span id="line-134">    return GSON.toJson(counts);</span>
-<span class="source-line-no">135</span><span id="line-135">  }</span>
-<span class="source-line-no">136</span><span id="line-136"></span>
-<span class="source-line-no">137</span><span id="line-137">  /** Returns JSON string of &lt;code&gt;cbsf&lt;/code&gt; aggregated */</span>
-<span class="source-line-no">138</span><span id="line-138">  public static String toJSON(CachedBlocksByFile cbsbf) throws IOException {</span>
-<span class="source-line-no">139</span><span id="line-139">    return GSON.toJson(cbsbf);</span>
-<span class="source-line-no">140</span><span id="line-140">  }</span>
-<span class="source-line-no">141</span><span id="line-141"></span>
-<span class="source-line-no">142</span><span id="line-142">  /** Returns JSON string of &lt;code&gt;bc&lt;/code&gt; content. */</span>
-<span class="source-line-no">143</span><span id="line-143">  public static String toJSON(BlockCache bc) throws IOException {</span>
-<span class="source-line-no">144</span><span id="line-144">    return GSON.toJson(bc);</span>
-<span class="source-line-no">145</span><span id="line-145">  }</span>
-<span class="source-line-no">146</span><span id="line-146"></span>
-<span class="source-line-no">147</span><span id="line-147">  /** Returns The block content of &lt;code&gt;bc&lt;/code&gt; as a String minus the filename. */</span>
-<span class="source-line-no">148</span><span id="line-148">  public static String toStringMinusFileName(final CachedBlock cb, final long now) {</span>
-<span class="source-line-no">149</span><span id="line-149">    return "offset=" + cb.getOffset() + ", size=" + cb.getSize() + ", age="</span>
-<span class="source-line-no">150</span><span id="line-150">      + (now - cb.getCachedTime()) + ", type=" + cb.getBlockType() + ", priority="</span>
-<span class="source-line-no">151</span><span id="line-151">      + cb.getBlockPriority();</span>
-<span class="source-line-no">152</span><span id="line-152">  }</span>
-<span class="source-line-no">153</span><span id="line-153"></span>
-<span class="source-line-no">154</span><span id="line-154">  /**</span>
-<span class="source-line-no">155</span><span id="line-155">   * Get a {@link CachedBlocksByFile} instance and load it up by iterating content in</span>
-<span class="source-line-no">156</span><span id="line-156">   * {@link BlockCache}.</span>
-<span class="source-line-no">157</span><span id="line-157">   * @param conf Used to read configurations</span>
-<span class="source-line-no">158</span><span id="line-158">   * @param bc   Block Cache to iterate.</span>
-<span class="source-line-no">159</span><span id="line-159">   * @return Laoded up instance of CachedBlocksByFile</span>
-<span class="source-line-no">160</span><span id="line-160">   */</span>
-<span class="source-line-no">161</span><span id="line-161">  public static CachedBlocksByFile getLoadedCachedBlocksByFile(final Configuration conf,</span>
-<span class="source-line-no">162</span><span id="line-162">    final BlockCache bc) {</span>
-<span class="source-line-no">163</span><span id="line-163">    CachedBlocksByFile cbsbf = new CachedBlocksByFile(conf);</span>
-<span class="source-line-no">164</span><span id="line-164">    for (CachedBlock cb : bc) {</span>
-<span class="source-line-no">165</span><span id="line-165">      if (cbsbf.update(cb)) break;</span>
-<span class="source-line-no">166</span><span id="line-166">    }</span>
-<span class="source-line-no">167</span><span id="line-167">    return cbsbf;</span>
-<span class="source-line-no">168</span><span id="line-168">  }</span>
-<span class="source-line-no">169</span><span id="line-169"></span>
-<span class="source-line-no">170</span><span id="line-170">  private static int compareCacheBlock(Cacheable left, Cacheable right,</span>
-<span class="source-line-no">171</span><span id="line-171">    boolean includeNextBlockMetadata) {</span>
-<span class="source-line-no">172</span><span id="line-172">    ByteBuffer l = ByteBuffer.allocate(left.getSerializedLength());</span>
-<span class="source-line-no">173</span><span id="line-173">    left.serialize(l, includeNextBlockMetadata);</span>
-<span class="source-line-no">174</span><span id="line-174">    ByteBuffer r = ByteBuffer.allocate(right.getSerializedLength());</span>
-<span class="source-line-no">175</span><span id="line-175">    right.serialize(r, includeNextBlockMetadata);</span>
-<span class="source-line-no">176</span><span id="line-176">    return Bytes.compareTo(l.array(), l.arrayOffset(), l.limit(), r.array(), r.arrayOffset(),</span>
-<span class="source-line-no">177</span><span id="line-177">      r.limit());</span>
-<span class="source-line-no">178</span><span id="line-178">  }</span>
-<span class="source-line-no">179</span><span id="line-179"></span>
-<span class="source-line-no">180</span><span id="line-180">  /**</span>
-<span class="source-line-no">181</span><span id="line-181">   * Validate that the existing and newBlock are the same without including the nextBlockMetadata,</span>
-<span class="source-line-no">182</span><span id="line-182">   * if not, throw an exception. If they are the same without the nextBlockMetadata, return the</span>
-<span class="source-line-no">183</span><span id="line-183">   * comparison.</span>
-<span class="source-line-no">184</span><span id="line-184">   * @param existing block that is existing in the cache.</span>
-<span class="source-line-no">185</span><span id="line-185">   * @param newBlock block that is trying to be cached.</span>
-<span class="source-line-no">186</span><span id="line-186">   * @param cacheKey the cache key of the blocks.</span>
-<span class="source-line-no">187</span><span id="line-187">   * @return comparison of the existing block to the newBlock.</span>
-<span class="source-line-no">188</span><span id="line-188">   */</span>
-<span class="source-line-no">189</span><span id="line-189">  public static int validateBlockAddition(Cacheable existing, Cacheable newBlock,</span>
-<span class="source-line-no">190</span><span id="line-190">    BlockCacheKey cacheKey) {</span>
-<span class="source-line-no">191</span><span id="line-191">    int comparison = compareCacheBlock(existing, newBlock, false);</span>
-<span class="source-line-no">192</span><span id="line-192">    if (comparison != 0) {</span>
-<span class="source-line-no">193</span><span id="line-193">      throw new RuntimeException(</span>
-<span class="source-line-no">194</span><span id="line-194">        "Cached block contents differ, which should not have happened." + "cacheKey:" + cacheKey);</span>
-<span class="source-line-no">195</span><span id="line-195">    }</span>
-<span class="source-line-no">196</span><span id="line-196">    if ((existing instanceof HFileBlock) &amp;&amp; (newBlock instanceof HFileBlock)) {</span>
-<span class="source-line-no">197</span><span id="line-197">      comparison = ((HFileBlock) existing).getNextBlockOnDiskSize()</span>
-<span class="source-line-no">198</span><span id="line-198">        - ((HFileBlock) newBlock).getNextBlockOnDiskSize();</span>
+<span class="source-line-no">119</span><span id="line-119"></span>
+<span class="source-line-no">120</span><span id="line-120">    public String getFilename() {</span>
+<span class="source-line-no">121</span><span id="line-121">      return filename;</span>
+<span class="source-line-no">122</span><span id="line-122">    }</span>
+<span class="source-line-no">123</span><span id="line-123">  }</span>
+<span class="source-line-no">124</span><span id="line-124"></span>
+<span class="source-line-no">125</span><span id="line-125">  /** Returns A JSON String of &lt;code&gt;filename&lt;/code&gt; and counts of &lt;code&gt;blocks&lt;/code&gt; */</span>
+<span class="source-line-no">126</span><span id="line-126">  public static String toJSON(String filename, NavigableSet&lt;CachedBlock&gt; blocks)</span>
+<span class="source-line-no">127</span><span id="line-127">    throws IOException {</span>
+<span class="source-line-no">128</span><span id="line-128">    CachedBlockCountsPerFile counts = new CachedBlockCountsPerFile(filename);</span>
+<span class="source-line-no">129</span><span id="line-129">    for (CachedBlock cb : blocks) {</span>
+<span class="source-line-no">130</span><span id="line-130">      counts.count++;</span>
+<span class="source-line-no">131</span><span id="line-131">      counts.size += cb.getSize();</span>
+<span class="source-line-no">132</span><span id="line-132">      BlockType bt = cb.getBlockType();</span>
+<span class="source-line-no">133</span><span id="line-133">      if (bt != null &amp;&amp; bt.isData()) {</span>
+<span class="source-line-no">134</span><span id="line-134">        counts.countData++;</span>
+<span class="source-line-no">135</span><span id="line-135">        counts.sizeData += cb.getSize();</span>
+<span class="source-line-no">136</span><span id="line-136">      }</span>
+<span class="source-line-no">137</span><span id="line-137">    }</span>
+<span class="source-line-no">138</span><span id="line-138">    return GSON.toJson(counts);</span>
+<span class="source-line-no">139</span><span id="line-139">  }</span>
+<span class="source-line-no">140</span><span id="line-140"></span>
+<span class="source-line-no">141</span><span id="line-141">  /** Returns JSON string of &lt;code&gt;cbsf&lt;/code&gt; aggregated */</span>
+<span class="source-line-no">142</span><span id="line-142">  public static String toJSON(CachedBlocksByFile cbsbf) throws IOException {</span>
+<span class="source-line-no">143</span><span id="line-143">    return GSON.toJson(cbsbf);</span>
+<span class="source-line-no">144</span><span id="line-144">  }</span>
+<span class="source-line-no">145</span><span id="line-145"></span>
+<span class="source-line-no">146</span><span id="line-146">  /** Returns JSON string of &lt;code&gt;bc&lt;/code&gt; content. */</span>
+<span class="source-line-no">147</span><span id="line-147">  public static String toJSON(BlockCache bc) throws IOException {</span>
+<span class="source-line-no">148</span><span id="line-148">    return GSON.toJson(bc);</span>
+<span class="source-line-no">149</span><span id="line-149">  }</span>
+<span class="source-line-no">150</span><span id="line-150"></span>
+<span class="source-line-no">151</span><span id="line-151">  /** Returns The block content of &lt;code&gt;bc&lt;/code&gt; as a String minus the filename. */</span>
+<span class="source-line-no">152</span><span id="line-152">  public static String toStringMinusFileName(final CachedBlock cb, final long now) {</span>
+<span class="source-line-no">153</span><span id="line-153">    return "offset=" + cb.getOffset() + ", size=" + cb.getSize() + ", age="</span>
+<span class="source-line-no">154</span><span id="line-154">      + (now - cb.getCachedTime()) + ", type=" + cb.getBlockType() + ", priority="</span>
+<span class="source-line-no">155</span><span id="line-155">      + cb.getBlockPriority();</span>
+<span class="source-line-no">156</span><span id="line-156">  }</span>
+<span class="source-line-no">157</span><span id="line-157"></span>
+<span class="source-line-no">158</span><span id="line-158">  /**</span>
+<span class="source-line-no">159</span><span id="line-159">   * Get a {@link CachedBlocksByFile} instance and load it up by iterating content in</span>
+<span class="source-line-no">160</span><span id="line-160">   * {@link BlockCache}.</span>
+<span class="source-line-no">161</span><span id="line-161">   * @param conf Used to read configurations</span>
+<span class="source-line-no">162</span><span id="line-162">   * @param bc   Block Cache to iterate.</span>
+<span class="source-line-no">163</span><span id="line-163">   * @return Laoded up instance of CachedBlocksByFile</span>
+<span class="source-line-no">164</span><span id="line-164">   */</span>
+<span class="source-line-no">165</span><span id="line-165">  public static CachedBlocksByFile getLoadedCachedBlocksByFile(final Configuration conf,</span>
+<span class="source-line-no">166</span><span id="line-166">    final BlockCache bc) {</span>
+<span class="source-line-no">167</span><span id="line-167">    CachedBlocksByFile cbsbf = new CachedBlocksByFile(conf);</span>
+<span class="source-line-no">168</span><span id="line-168">    for (CachedBlock cb : bc) {</span>
+<span class="source-line-no">169</span><span id="line-169">      if (cbsbf.update(cb)) break;</span>
+<span class="source-line-no">170</span><span id="line-170">    }</span>
+<span class="source-line-no">171</span><span id="line-171">    return cbsbf;</span>
+<span class="source-line-no">172</span><span id="line-172">  }</span>
+<span class="source-line-no">173</span><span id="line-173"></span>
+<span class="source-line-no">174</span><span id="line-174">  private static int compareCacheBlock(Cacheable left, Cacheable right,</span>
+<span class="source-line-no">175</span><span id="line-175">    boolean includeNextBlockMetadata) {</span>
+<span class="source-line-no">176</span><span id="line-176">    ByteBuffer l = ByteBuffer.allocate(left.getSerializedLength());</span>
+<span class="source-line-no">177</span><span id="line-177">    left.serialize(l, includeNextBlockMetadata);</span>
+<span class="source-line-no">178</span><span id="line-178">    ByteBuffer r = ByteBuffer.allocate(right.getSerializedLength());</span>
+<span class="source-line-no">179</span><span id="line-179">    right.serialize(r, includeNextBlockMetadata);</span>
+<span class="source-line-no">180</span><span id="line-180">    return Bytes.compareTo(l.array(), l.arrayOffset(), l.limit(), r.array(), r.arrayOffset(),</span>
+<span class="source-line-no">181</span><span id="line-181">      r.limit());</span>
+<span class="source-line-no">182</span><span id="line-182">  }</span>
+<span class="source-line-no">183</span><span id="line-183"></span>
+<span class="source-line-no">184</span><span id="line-184">  /**</span>
+<span class="source-line-no">185</span><span id="line-185">   * Validate that the existing and newBlock are the same without including the nextBlockMetadata,</span>
+<span class="source-line-no">186</span><span id="line-186">   * if not, throw an exception. If they are the same without the nextBlockMetadata, return the</span>
+<span class="source-line-no">187</span><span id="line-187">   * comparison.</span>
+<span class="source-line-no">188</span><span id="line-188">   * @param existing block that is existing in the cache.</span>
+<span class="source-line-no">189</span><span id="line-189">   * @param newBlock block that is trying to be cached.</span>
+<span class="source-line-no">190</span><span id="line-190">   * @param cacheKey the cache key of the blocks.</span>
+<span class="source-line-no">191</span><span id="line-191">   * @return comparison of the existing block to the newBlock.</span>
+<span class="source-line-no">192</span><span id="line-192">   */</span>
+<span class="source-line-no">193</span><span id="line-193">  public static int validateBlockAddition(Cacheable existing, Cacheable newBlock,</span>
+<span class="source-line-no">194</span><span id="line-194">    BlockCacheKey cacheKey) {</span>
+<span class="source-line-no">195</span><span id="line-195">    int comparison = compareCacheBlock(existing, newBlock, false);</span>
+<span class="source-line-no">196</span><span id="line-196">    if (comparison != 0) {</span>
+<span class="source-line-no">197</span><span id="line-197">      throw new RuntimeException(</span>
+<span class="source-line-no">198</span><span id="line-198">        "Cached block contents differ, which should not have happened." + "cacheKey:" + cacheKey);</span>
 <span class="source-line-no">199</span><span id="line-199">    }</span>
-<span class="source-line-no">200</span><span id="line-200">    return comparison;</span>
-<span class="source-line-no">201</span><span id="line-201">  }</span>
-<span class="source-line-no">202</span><span id="line-202"></span>
-<span class="source-line-no">203</span><span id="line-203">  /**</span>
-<span class="source-line-no">204</span><span id="line-204">   * Because of the region splitting, it's possible that the split key locate in the middle of a</span>
-<span class="source-line-no">205</span><span id="line-205">   * block. So it's possible that both the daughter regions load the same block from their parent</span>
-<span class="source-line-no">206</span><span id="line-206">   * HFile. When pread, we don't force the read to read all of the next block header. So when two</span>
-<span class="source-line-no">207</span><span id="line-207">   * threads try to cache the same block, it's possible that one thread read all of the next block</span>
-<span class="source-line-no">208</span><span id="line-208">   * header but the other one didn't. if the already cached block hasn't next block header but the</span>
-<span class="source-line-no">209</span><span id="line-209">   * new block to cache has, then we can replace the existing block with the new block for better</span>
-<span class="source-line-no">210</span><span id="line-210">   * performance.(HBASE-20447)</span>
-<span class="source-line-no">211</span><span id="line-211">   * @param blockCache BlockCache to check</span>
-<span class="source-line-no">212</span><span id="line-212">   * @param cacheKey   the block cache key</span>
-<span class="source-line-no">213</span><span id="line-213">   * @param newBlock   the new block which try to put into the block cache.</span>
-<span class="source-line-no">214</span><span id="line-214">   * @return true means need to replace existing block with new block for the same block cache key.</span>
-<span class="source-line-no">215</span><span id="line-215">   *         false means just keep the existing block.</span>
-<span class="source-line-no">216</span><span id="line-216">   */</span>
-<span class="source-line-no">217</span><span id="line-217">  public static boolean shouldReplaceExistingCacheBlock(BlockCache blockCache,</span>
-<span class="source-line-no">218</span><span id="line-218">    BlockCacheKey cacheKey, Cacheable newBlock) {</span>
-<span class="source-line-no">219</span><span id="line-219">    // NOTICE: The getBlock has retained the existingBlock inside.</span>
-<span class="source-line-no">220</span><span id="line-220">    Cacheable existingBlock = blockCache.getBlock(cacheKey, false, false, false);</span>
-<span class="source-line-no">221</span><span id="line-221">    if (existingBlock == null) {</span>
-<span class="source-line-no">222</span><span id="line-222">      return true;</span>
-<span class="source-line-no">223</span><span id="line-223">    }</span>
-<span class="source-line-no">224</span><span id="line-224">    try {</span>
-<span class="source-line-no">225</span><span id="line-225">      int comparison = BlockCacheUtil.validateBlockAddition(existingBlock, newBlock, cacheKey);</span>
-<span class="source-line-no">226</span><span id="line-226">      if (comparison &lt; 0) {</span>
-<span class="source-line-no">227</span><span id="line-227">        LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the new block has "</span>
-<span class="source-line-no">228</span><span id="line-228">          + "nextBlockOnDiskSize set. Caching new block.");</span>
-<span class="source-line-no">229</span><span id="line-229">        return true;</span>
-<span class="source-line-no">230</span><span id="line-230">      } else if (comparison &gt; 0) {</span>
-<span class="source-line-no">231</span><span id="line-231">        LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the existing block has "</span>
-<span class="source-line-no">232</span><span id="line-232">          + "nextBlockOnDiskSize set, Keeping cached block.");</span>
-<span class="source-line-no">233</span><span id="line-233">        return false;</span>
-<span class="source-line-no">234</span><span id="line-234">      } else {</span>
-<span class="source-line-no">235</span><span id="line-235">        LOG.debug("Caching an already cached block: {}. This is harmless and can happen in rare "</span>
-<span class="source-line-no">236</span><span id="line-236">          + "cases (see HBASE-8547)", cacheKey);</span>
+<span class="source-line-no">200</span><span id="line-200">    if ((existing instanceof HFileBlock) &amp;&amp; (newBlock instanceof HFileBlock)) {</span>
+<span class="source-line-no">201</span><span id="line-201">      comparison = ((HFileBlock) existing).getNextBlockOnDiskSize()</span>
+<span class="source-line-no">202</span><span id="line-202">        - ((HFileBlock) newBlock).getNextBlockOnDiskSize();</span>
+<span class="source-line-no">203</span><span id="line-203">    }</span>
+<span class="source-line-no">204</span><span id="line-204">    return comparison;</span>
+<span class="source-line-no">205</span><span id="line-205">  }</span>
+<span class="source-line-no">206</span><span id="line-206"></span>
+<span class="source-line-no">207</span><span id="line-207">  /**</span>
+<span class="source-line-no">208</span><span id="line-208">   * Because of the region splitting, it's possible that the split key locate in the middle of a</span>
+<span class="source-line-no">209</span><span id="line-209">   * block. So it's possible that both the daughter regions load the same block from their parent</span>
+<span class="source-line-no">210</span><span id="line-210">   * HFile. When pread, we don't force the read to read all of the next block header. So when two</span>
+<span class="source-line-no">211</span><span id="line-211">   * threads try to cache the same block, it's possible that one thread read all of the next block</span>
+<span class="source-line-no">212</span><span id="line-212">   * header but the other one didn't. if the already cached block hasn't next block header but the</span>
+<span class="source-line-no">213</span><span id="line-213">   * new block to cache has, then we can replace the existing block with the new block for better</span>
+<span class="source-line-no">214</span><span id="line-214">   * performance.(HBASE-20447)</span>
+<span class="source-line-no">215</span><span id="line-215">   * @param blockCache BlockCache to check</span>
+<span class="source-line-no">216</span><span id="line-216">   * @param cacheKey   the block cache key</span>
+<span class="source-line-no">217</span><span id="line-217">   * @param newBlock   the new block which try to put into the block cache.</span>
+<span class="source-line-no">218</span><span id="line-218">   * @return true means need to replace existing block with new block for the same block cache key.</span>
+<span class="source-line-no">219</span><span id="line-219">   *         false means just keep the existing block.</span>
+<span class="source-line-no">220</span><span id="line-220">   */</span>
+<span class="source-line-no">221</span><span id="line-221">  public static boolean shouldReplaceExistingCacheBlock(BlockCache blockCache,</span>
+<span class="source-line-no">222</span><span id="line-222">    BlockCacheKey cacheKey, Cacheable newBlock) {</span>
+<span class="source-line-no">223</span><span id="line-223">    // NOTICE: The getBlock has retained the existingBlock inside.</span>
+<span class="source-line-no">224</span><span id="line-224">    Cacheable existingBlock = blockCache.getBlock(cacheKey, false, false, false);</span>
+<span class="source-line-no">225</span><span id="line-225">    if (existingBlock == null) {</span>
+<span class="source-line-no">226</span><span id="line-226">      return true;</span>
+<span class="source-line-no">227</span><span id="line-227">    }</span>
+<span class="source-line-no">228</span><span id="line-228">    try {</span>
+<span class="source-line-no">229</span><span id="line-229">      int comparison = BlockCacheUtil.validateBlockAddition(existingBlock, newBlock, cacheKey);</span>
+<span class="source-line-no">230</span><span id="line-230">      if (comparison &lt; 0) {</span>
+<span class="source-line-no">231</span><span id="line-231">        LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the new block has "</span>
+<span class="source-line-no">232</span><span id="line-232">          + "nextBlockOnDiskSize set. Caching new block.");</span>
+<span class="source-line-no">233</span><span id="line-233">        return true;</span>
+<span class="source-line-no">234</span><span id="line-234">      } else if (comparison &gt; 0) {</span>
+<span class="source-line-no">235</span><span id="line-235">        LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the existing block has "</span>
+<span class="source-line-no">236</span><span id="line-236">          + "nextBlockOnDiskSize set, Keeping cached block.");</span>
 <span class="source-line-no">237</span><span id="line-237">        return false;</span>
-<span class="source-line-no">238</span><span id="line-238">      }</span>
-<span class="source-line-no">239</span><span id="line-239">    } finally {</span>
-<span class="source-line-no">240</span><span id="line-240">      // Release this block to decrement the reference count.</span>
-<span class="source-line-no">241</span><span id="line-241">      existingBlock.release();</span>
-<span class="source-line-no">242</span><span id="line-242">    }</span>
-<span class="source-line-no">243</span><span id="line-243">  }</span>
-<span class="source-line-no">244</span><span id="line-244"></span>
-<span class="source-line-no">245</span><span id="line-245">  private static final int DEFAULT_MAX = 1000000;</span>
-<span class="source-line-no">246</span><span id="line-246"></span>
-<span class="source-line-no">247</span><span id="line-247">  public static int getMaxCachedBlocksByFile(Configuration conf) {</span>
-<span class="source-line-no">248</span><span id="line-248">    return conf == null ? DEFAULT_MAX : conf.getInt("hbase.ui.blockcache.by.file.max", DEFAULT_MAX);</span>
-<span class="source-line-no">249</span><span id="line-249">  }</span>
-<span class="source-line-no">250</span><span id="line-250"></span>
-<span class="source-line-no">251</span><span id="line-251">  /**</span>
-<span class="source-line-no">252</span><span id="line-252">   * Similarly to HFileBlock.Writer.getBlockForCaching(), creates a HFileBlock instance without</span>
-<span class="source-line-no">253</span><span id="line-253">   * checksum for caching. This is needed for when we cache blocks via readers (either prefetch or</span>
-<span class="source-line-no">254</span><span id="line-254">   * client read), otherwise we may fail equality comparison when checking against same block that</span>
-<span class="source-line-no">255</span><span id="line-255">   * may already have been cached at write time.</span>
-<span class="source-line-no">256</span><span id="line-256">   * @param cacheConf the related CacheConfig object.</span>
-<span class="source-line-no">257</span><span id="line-257">   * @param block     the HFileBlock instance to be converted.</span>
-<span class="source-line-no">258</span><span id="line-258">   * @return the resulting HFileBlock instance without checksum.</span>
-<span class="source-line-no">259</span><span id="line-259">   */</span>
-<span class="source-line-no">260</span><span id="line-260">  public static HFileBlock getBlockForCaching(CacheConfig cacheConf, HFileBlock block) {</span>
-<span class="source-line-no">261</span><span id="line-261">    // Calculate how many bytes we need for checksum on the tail of the block.</span>
-<span class="source-line-no">262</span><span id="line-262">    int numBytes = cacheConf.shouldCacheCompressed(block.getBlockType().getCategory())</span>
-<span class="source-line-no">263</span><span id="line-263">      ? 0</span>
-<span class="source-line-no">264</span><span id="line-264">      : (int) ChecksumUtil.numBytes(block.getOnDiskDataSizeWithHeader(),</span>
-<span class="source-line-no">265</span><span id="line-265">        block.getHFileContext().getBytesPerChecksum());</span>
-<span class="source-line-no">266</span><span id="line-266">    ByteBuff buff = block.getBufferReadOnly();</span>
-<span class="source-line-no">267</span><span id="line-267">    HFileBlockBuilder builder = new HFileBlockBuilder();</span>
-<span class="source-line-no">268</span><span id="line-268">    return builder.withBlockType(block.getBlockType())</span>
-<span class="source-line-no">269</span><span id="line-269">      .withOnDiskSizeWithoutHeader(block.getOnDiskSizeWithoutHeader())</span>
-<span class="source-line-no">270</span><span id="line-270">      .withUncompressedSizeWithoutHeader(block.getUncompressedSizeWithoutHeader())</span>
-<span class="source-line-no">271</span><span id="line-271">      .withPrevBlockOffset(block.getPrevBlockOffset()).withByteBuff(buff)</span>
-<span class="source-line-no">272</span><span id="line-272">      .withFillHeader(FILL_HEADER).withOffset(block.getOffset()).withNextBlockOnDiskSize(-1)</span>
-<span class="source-line-no">273</span><span id="line-273">      .withOnDiskDataSizeWithHeader(block.getOnDiskDataSizeWithHeader() + numBytes)</span>
-<span class="source-line-no">274</span><span id="line-274">      .withHFileContext(cloneContext(block.getHFileContext()))</span>
-<span class="source-line-no">275</span><span id="line-275">      .withByteBuffAllocator(cacheConf.getByteBuffAllocator()).withShared(!buff.hasArray()).build();</span>
-<span class="source-line-no">276</span><span id="line-276">  }</span>
-<span class="source-line-no">277</span><span id="line-277"></span>
-<span class="source-line-no">278</span><span id="line-278">  public static HFileContext cloneContext(HFileContext context) {</span>
-<span class="source-line-no">279</span><span id="line-279">    HFileContext newContext = new HFileContextBuilder().withBlockSize(context.getBlocksize())</span>
-<span class="source-line-no">280</span><span id="line-280">      .withBytesPerCheckSum(0).withChecksumType(ChecksumType.NULL) // no checksums in cached data</span>
-<span class="source-line-no">281</span><span id="line-281">      .withCompression(context.getCompression())</span>
-<span class="source-line-no">282</span><span id="line-282">      .withDataBlockEncoding(context.getDataBlockEncoding())</span>
-<span class="source-line-no">283</span><span id="line-283">      .withHBaseCheckSum(context.isUseHBaseChecksum()).withCompressTags(context.isCompressTags())</span>
-<span class="source-line-no">284</span><span id="line-284">      .withIncludesMvcc(context.isIncludesMvcc()).withIncludesTags(context.isIncludesTags())</span>
-<span class="source-line-no">285</span><span id="line-285">      .withColumnFamily(context.getColumnFamily()).withTableName(context.getTableName()).build();</span>
-<span class="source-line-no">286</span><span id="line-286">    return newContext;</span>
-<span class="source-line-no">287</span><span id="line-287">  }</span>
-<span class="source-line-no">288</span><span id="line-288"></span>
-<span class="source-line-no">289</span><span id="line-289">  /**</span>
-<span class="source-line-no">290</span><span id="line-290">   * Use one of these to keep a running account of cached blocks by file. Throw it away when done.</span>
-<span class="source-line-no">291</span><span id="line-291">   * This is different than metrics in that it is stats on current state of a cache. See</span>
-<span class="source-line-no">292</span><span id="line-292">   * getLoadedCachedBlocksByFile</span>
-<span class="source-line-no">293</span><span id="line-293">   */</span>
-<span class="source-line-no">294</span><span id="line-294">  public static class CachedBlocksByFile {</span>
-<span class="source-line-no">295</span><span id="line-295">    private int count;</span>
-<span class="source-line-no">296</span><span id="line-296">    private int dataBlockCount;</span>
-<span class="source-line-no">297</span><span id="line-297">    private long size;</span>
-<span class="source-line-no">298</span><span id="line-298">    private long dataSize;</span>
-<span class="source-line-no">299</span><span id="line-299">    private final long now = System.nanoTime();</span>
-<span class="source-line-no">300</span><span id="line-300">    /**</span>
-<span class="source-line-no">301</span><span id="line-301">     * How many blocks to look at before we give up. There could be many millions of blocks. We</span>
-<span class="source-line-no">302</span><span id="line-302">     * don't want the ui to freeze while we run through 1B blocks... users will think hbase dead. UI</span>
-<span class="source-line-no">303</span><span id="line-303">     * displays warning in red when stats are incomplete.</span>
-<span class="source-line-no">304</span><span id="line-304">     */</span>
-<span class="source-line-no">305</span><span id="line-305">    private final int max;</span>
-<span class="source-line-no">306</span><span id="line-306"></span>
-<span class="source-line-no">307</span><span id="line-307">    CachedBlocksByFile() {</span>
-<span class="source-line-no">308</span><span id="line-308">      this(null);</span>
-<span class="source-line-no">309</span><span id="line-309">    }</span>
-<span class="source-line-no">310</span><span id="line-310"></span>
-<span class="source-line-no">311</span><span id="line-311">    CachedBlocksByFile(final Configuration c) {</span>
-<span class="source-line-no">312</span><span id="line-312">      this.max = getMaxCachedBlocksByFile(c);</span>
-<span class="source-line-no">313</span><span id="line-313">    }</span>
-<span class="source-line-no">314</span><span id="line-314"></span>
-<span class="source-line-no">315</span><span id="line-315">    /**</span>
-<span class="source-line-no">316</span><span id="line-316">     * Map by filename. use concurent utils because we want our Map and contained blocks sorted.</span>
-<span class="source-line-no">317</span><span id="line-317">     */</span>
-<span class="source-line-no">318</span><span id="line-318">    private transient NavigableMap&lt;String, NavigableSet&lt;CachedBlock&gt;&gt; cachedBlockByFile =</span>
-<span class="source-line-no">319</span><span id="line-319">      new ConcurrentSkipListMap&lt;&gt;();</span>
-<span class="source-line-no">320</span><span id="line-320">    FastLongHistogram hist = new FastLongHistogram();</span>
-<span class="source-line-no">321</span><span id="line-321"></span>
-<span class="source-line-no">322</span><span id="line-322">    /** Returns True if full.... if we won't be adding any more. */</span>
-<span class="source-line-no">323</span><span id="line-323">    public boolean update(final CachedBlock cb) {</span>
-<span class="source-line-no">324</span><span id="line-324">      if (isFull()) return true;</span>
-<span class="source-line-no">325</span><span id="line-325">      NavigableSet&lt;CachedBlock&gt; set = this.cachedBlockByFile.get(cb.getFilename());</span>
-<span class="source-line-no">326</span><span id="line-326">      if (set == null) {</span>
-<span class="source-line-no">327</span><span id="line-327">        set = new ConcurrentSkipListSet&lt;&gt;();</span>
-<span class="source-line-no">328</span><span id="line-328">        this.cachedBlockByFile.put(cb.getFilename(), set);</span>
-<span class="source-line-no">329</span><span id="line-329">      }</span>
-<span class="source-line-no">330</span><span id="line-330">      set.add(cb);</span>
-<span class="source-line-no">331</span><span id="line-331">      this.size += cb.getSize();</span>
-<span class="source-line-no">332</span><span id="line-332">      this.count++;</span>
-<span class="source-line-no">333</span><span id="line-333">      BlockType bt = cb.getBlockType();</span>
-<span class="source-line-no">334</span><span id="line-334">      if (bt != null &amp;&amp; bt.isData()) {</span>
-<span class="source-line-no">335</span><span id="line-335">        this.dataBlockCount++;</span>
-<span class="source-line-no">336</span><span id="line-336">        this.dataSize += cb.getSize();</span>
-<span class="source-line-no">337</span><span id="line-337">      }</span>
-<span class="source-line-no">338</span><span id="line-338">      long age = (this.now - cb.getCachedTime()) / NANOS_PER_SECOND;</span>
-<span class="source-line-no">339</span><span id="line-339">      this.hist.add(age, 1);</span>
-<span class="source-line-no">340</span><span id="line-340">      return false;</span>
-<span class="source-line-no">341</span><span id="line-341">    }</span>
-<span class="source-line-no">342</span><span id="line-342"></span>
-<span class="source-line-no">343</span><span id="line-343">    /**</span>
-<span class="source-line-no">344</span><span id="line-344">     * @return True if full; i.e. there are more items in the cache but we only loaded up the</span>
-<span class="source-line-no">345</span><span id="line-345">     *         maximum set in configuration &lt;code&gt;hbase.ui.blockcache.by.file.max&lt;/code&gt; (Default:</span>
-<span class="source-line-no">346</span><span id="line-346">     *         DEFAULT_MAX).</span>
-<span class="source-line-no">347</span><span id="line-347">     */</span>
-<span class="source-line-no">348</span><span id="line-348">    public boolean isFull() {</span>
-<span class="source-line-no">349</span><span id="line-349">      return this.count &gt;= this.max;</span>
-<span class="source-line-no">350</span><span id="line-350">    }</span>
-<span class="source-line-no">351</span><span id="line-351"></span>
-<span class="source-line-no">352</span><span id="line-352">    public NavigableMap&lt;String, NavigableSet&lt;CachedBlock&gt;&gt; getCachedBlockStatsByFile() {</span>
-<span class="source-line-no">353</span><span id="line-353">      return this.cachedBlockByFile;</span>
-<span class="source-line-no">354</span><span id="line-354">    }</span>
-<span class="source-line-no">355</span><span id="line-355"></span>
-<span class="source-line-no">356</span><span id="line-356">    /** Returns count of blocks in the cache */</span>
-<span class="source-line-no">357</span><span id="line-357">    public int getCount() {</span>
-<span class="source-line-no">358</span><span id="line-358">      return count;</span>
-<span class="source-line-no">359</span><span id="line-359">    }</span>
-<span class="source-line-no">360</span><span id="line-360"></span>
-<span class="source-line-no">361</span><span id="line-361">    public int getDataCount() {</span>
-<span class="source-line-no">362</span><span id="line-362">      return dataBlockCount;</span>
-<span class="source-line-no">363</span><span id="line-363">    }</span>
-<span class="source-line-no">364</span><span id="line-364"></span>
-<span class="source-line-no">365</span><span id="line-365">    /** Returns size of blocks in the cache */</span>
-<span class="source-line-no">366</span><span id="line-366">    public long getSize() {</span>
-<span class="source-line-no">367</span><span id="line-367">      return size;</span>
+<span class="source-line-no">238</span><span id="line-238">      } else {</span>
+<span class="source-line-no">239</span><span id="line-239">        LOG.debug("Caching an already cached block: {}. This is harmless and can happen in rare "</span>
+<span class="source-line-no">240</span><span id="line-240">          + "cases (see HBASE-8547)", cacheKey);</span>
+<span class="source-line-no">241</span><span id="line-241">        return false;</span>
+<span class="source-line-no">242</span><span id="line-242">      }</span>
+<span class="source-line-no">243</span><span id="line-243">    } finally {</span>
+<span class="source-line-no">244</span><span id="line-244">      // Release this block to decrement the reference count.</span>
+<span class="source-line-no">245</span><span id="line-245">      existingBlock.release();</span>
+<span class="source-line-no">246</span><span id="line-246">    }</span>
+<span class="source-line-no">247</span><span id="line-247">  }</span>
+<span class="source-line-no">248</span><span id="line-248"></span>
+<span class="source-line-no">249</span><span id="line-249">  public static Set&lt;String&gt; listAllFilesNames(Map&lt;String, HRegion&gt; onlineRegions) {</span>
+<span class="source-line-no">250</span><span id="line-250">    Set&lt;String&gt; files = new HashSet&lt;&gt;();</span>
+<span class="source-line-no">251</span><span id="line-251">    onlineRegions.values().forEach(r -&gt; {</span>
+<span class="source-line-no">252</span><span id="line-252">      r.getStores().forEach(s -&gt; {</span>
+<span class="source-line-no">253</span><span id="line-253">        s.getStorefiles().forEach(f -&gt; files.add(f.getPath().getName()));</span>
+<span class="source-line-no">254</span><span id="line-254">      });</span>
+<span class="source-line-no">255</span><span id="line-255">    });</span>
+<span class="source-line-no">256</span><span id="line-256">    return files;</span>
+<span class="source-line-no">257</span><span id="line-257">  }</span>
+<span class="source-line-no">258</span><span id="line-258"></span>
+<span class="source-line-no">259</span><span id="line-259">  private static final int DEFAULT_MAX = 1000000;</span>
+<span class="source-line-no">260</span><span id="line-260"></span>
+<span class="source-line-no">261</span><span id="line-261">  public static int getMaxCachedBlocksByFile(Configuration conf) {</span>
+<span class="source-line-no">262</span><span id="line-262">    return conf == null ? DEFAULT_MAX : conf.getInt("hbase.ui.blockcache.by.file.max", DEFAULT_MAX);</span>
+<span class="source-line-no">263</span><span id="line-263">  }</span>
+<span class="source-line-no">264</span><span id="line-264"></span>
+<span class="source-line-no">265</span><span id="line-265">  /**</span>
+<span class="source-line-no">266</span><span id="line-266">   * Similarly to HFileBlock.Writer.getBlockForCaching(), creates a HFileBlock instance without</span>
+<span class="source-line-no">267</span><span id="line-267">   * checksum for caching. This is needed for when we cache blocks via readers (either prefetch or</span>
+<span class="source-line-no">268</span><span id="line-268">   * client read), otherwise we may fail equality comparison when checking against same block that</span>
+<span class="source-line-no">269</span><span id="line-269">   * may already have been cached at write time.</span>
+<span class="source-line-no">270</span><span id="line-270">   * @param cacheConf the related CacheConfig object.</span>
+<span class="source-line-no">271</span><span id="line-271">   * @param block     the HFileBlock instance to be converted.</span>
+<span class="source-line-no">272</span><span id="line-272">   * @return the resulting HFileBlock instance without checksum.</span>
+<span class="source-line-no">273</span><span id="line-273">   */</span>
+<span class="source-line-no">274</span><span id="line-274">  public static HFileBlock getBlockForCaching(CacheConfig cacheConf, HFileBlock block) {</span>
+<span class="source-line-no">275</span><span id="line-275">    // Calculate how many bytes we need for checksum on the tail of the block.</span>
+<span class="source-line-no">276</span><span id="line-276">    int numBytes = cacheConf.shouldCacheCompressed(block.getBlockType().getCategory())</span>
+<span class="source-line-no">277</span><span id="line-277">      ? 0</span>
+<span class="source-line-no">278</span><span id="line-278">      : (int) ChecksumUtil.numBytes(block.getOnDiskDataSizeWithHeader(),</span>
+<span class="source-line-no">279</span><span id="line-279">        block.getHFileContext().getBytesPerChecksum());</span>
+<span class="source-line-no">280</span><span id="line-280">    ByteBuff buff = block.getBufferReadOnly();</span>
+<span class="source-line-no">281</span><span id="line-281">    HFileBlockBuilder builder = new HFileBlockBuilder();</span>
+<span class="source-line-no">282</span><span id="line-282">    return builder.withBlockType(block.getBlockType())</span>
+<span class="source-line-no">283</span><span id="line-283">      .withOnDiskSizeWithoutHeader(block.getOnDiskSizeWithoutHeader())</span>
+<span class="source-line-no">284</span><span id="line-284">      .withUncompressedSizeWithoutHeader(block.getUncompressedSizeWithoutHeader())</span>
+<span class="source-line-no">285</span><span id="line-285">      .withPrevBlockOffset(block.getPrevBlockOffset()).withByteBuff(buff)</span>
+<span class="source-line-no">286</span><span id="line-286">      .withFillHeader(FILL_HEADER).withOffset(block.getOffset()).withNextBlockOnDiskSize(-1)</span>
+<span class="source-line-no">287</span><span id="line-287">      .withOnDiskDataSizeWithHeader(block.getOnDiskDataSizeWithHeader() + numBytes)</span>
+<span class="source-line-no">288</span><span id="line-288">      .withHFileContext(cloneContext(block.getHFileContext()))</span>
+<span class="source-line-no">289</span><span id="line-289">      .withByteBuffAllocator(cacheConf.getByteBuffAllocator()).withShared(!buff.hasArray()).build();</span>
+<span class="source-line-no">290</span><span id="line-290">  }</span>
+<span class="source-line-no">291</span><span id="line-291"></span>
+<span class="source-line-no">292</span><span id="line-292">  public static HFileContext cloneContext(HFileContext context) {</span>
+<span class="source-line-no">293</span><span id="line-293">    HFileContext newContext = new HFileContextBuilder().withBlockSize(context.getBlocksize())</span>
+<span class="source-line-no">294</span><span id="line-294">      .withBytesPerCheckSum(0).withChecksumType(ChecksumType.NULL) // no checksums in cached data</span>
+<span class="source-line-no">295</span><span id="line-295">      .withCompression(context.getCompression())</span>
+<span class="source-line-no">296</span><span id="line-296">      .withDataBlockEncoding(context.getDataBlockEncoding())</span>
+<span class="source-line-no">297</span><span id="line-297">      .withHBaseCheckSum(context.isUseHBaseChecksum()).withCompressTags(context.isCompressTags())</span>
+<span class="source-line-no">298</span><span id="line-298">      .withIncludesMvcc(context.isIncludesMvcc()).withIncludesTags(context.isIncludesTags())</span>
+<span class="source-line-no">299</span><span id="line-299">      .withColumnFamily(context.getColumnFamily()).withTableName(context.getTableName()).build();</span>
+<span class="source-line-no">300</span><span id="line-300">    return newContext;</span>
+<span class="source-line-no">301</span><span id="line-301">  }</span>
+<span class="source-line-no">302</span><span id="line-302"></span>
+<span class="source-line-no">303</span><span id="line-303">  /**</span>
+<span class="source-line-no">304</span><span id="line-304">   * Use one of these to keep a running account of cached blocks by file. Throw it away when done.</span>
+<span class="source-line-no">305</span><span id="line-305">   * This is different than metrics in that it is stats on current state of a cache. See</span>
+<span class="source-line-no">306</span><span id="line-306">   * getLoadedCachedBlocksByFile</span>
+<span class="source-line-no">307</span><span id="line-307">   */</span>
+<span class="source-line-no">308</span><span id="line-308">  public static class CachedBlocksByFile {</span>
+<span class="source-line-no">309</span><span id="line-309">    private int count;</span>
+<span class="source-line-no">310</span><span id="line-310">    private int dataBlockCount;</span>
+<span class="source-line-no">311</span><span id="line-311">    private long size;</span>
+<span class="source-line-no">312</span><span id="line-312">    private long dataSize;</span>
+<span class="source-line-no">313</span><span id="line-313">    private final long now = System.nanoTime();</span>
+<span class="source-line-no">314</span><span id="line-314">    /**</span>
+<span class="source-line-no">315</span><span id="line-315">     * How many blocks to look at before we give up. There could be many millions of blocks. We</span>
+<span class="source-line-no">316</span><span id="line-316">     * don't want the ui to freeze while we run through 1B blocks... users will think hbase dead. UI</span>
+<span class="source-line-no">317</span><span id="line-317">     * displays warning in red when stats are incomplete.</span>
+<span class="source-line-no">318</span><span id="line-318">     */</span>
+<span class="source-line-no">319</span><span id="line-319">    private final int max;</span>
+<span class="source-line-no">320</span><span id="line-320"></span>
+<span class="source-line-no">321</span><span id="line-321">    CachedBlocksByFile() {</span>
+<span class="source-line-no">322</span><span id="line-322">      this(null);</span>
+<span class="source-line-no">323</span><span id="line-323">    }</span>
+<span class="source-line-no">324</span><span id="line-324"></span>
+<span class="source-line-no">325</span><span id="line-325">    CachedBlocksByFile(final Configuration c) {</span>
+<span class="source-line-no">326</span><span id="line-326">      this.max = getMaxCachedBlocksByFile(c);</span>
+<span class="source-line-no">327</span><span id="line-327">    }</span>
+<span class="source-line-no">328</span><span id="line-328"></span>
+<span class="source-line-no">329</span><span id="line-329">    /**</span>
+<span class="source-line-no">330</span><span id="line-330">     * Map by filename. use concurent utils because we want our Map and contained blocks sorted.</span>
+<span class="source-line-no">331</span><span id="line-331">     */</span>
+<span class="source-line-no">332</span><span id="line-332">    private transient NavigableMap&lt;String, NavigableSet&lt;CachedBlock&gt;&gt; cachedBlockByFile =</span>
+<span class="source-line-no">333</span><span id="line-333">      new ConcurrentSkipListMap&lt;&gt;();</span>
+<span class="source-line-no">334</span><span id="line-334">    FastLongHistogram hist = new FastLongHistogram();</span>
+<span class="source-line-no">335</span><span id="line-335"></span>
+<span class="source-line-no">336</span><span id="line-336">    /** Returns True if full.... if we won't be adding any more. */</span>
+<span class="source-line-no">337</span><span id="line-337">    public boolean update(final CachedBlock cb) {</span>
+<span class="source-line-no">338</span><span id="line-338">      if (isFull()) return true;</span>
+<span class="source-line-no">339</span><span id="line-339">      NavigableSet&lt;CachedBlock&gt; set = this.cachedBlockByFile.get(cb.getFilename());</span>
+<span class="source-line-no">340</span><span id="line-340">      if (set == null) {</span>
+<span class="source-line-no">341</span><span id="line-341">        set = new ConcurrentSkipListSet&lt;&gt;();</span>
+<span class="source-line-no">342</span><span id="line-342">        this.cachedBlockByFile.put(cb.getFilename(), set);</span>
+<span class="source-line-no">343</span><span id="line-343">      }</span>
+<span class="source-line-no">344</span><span id="line-344">      set.add(cb);</span>
+<span class="source-line-no">345</span><span id="line-345">      this.size += cb.getSize();</span>
+<span class="source-line-no">346</span><span id="line-346">      this.count++;</span>
+<span class="source-line-no">347</span><span id="line-347">      BlockType bt = cb.getBlockType();</span>
+<span class="source-line-no">348</span><span id="line-348">      if (bt != null &amp;&amp; bt.isData()) {</span>
+<span class="source-line-no">349</span><span id="line-349">        this.dataBlockCount++;</span>
+<span class="source-line-no">350</span><span id="line-350">        this.dataSize += cb.getSize();</span>
+<span class="source-line-no">351</span><span id="line-351">      }</span>
+<span class="source-line-no">352</span><span id="line-352">      long age = (this.now - cb.getCachedTime()) / NANOS_PER_SECOND;</span>
+<span class="source-line-no">353</span><span id="line-353">      this.hist.add(age, 1);</span>
+<span class="source-line-no">354</span><span id="line-354">      return false;</span>
+<span class="source-line-no">355</span><span id="line-355">    }</span>
+<span class="source-line-no">356</span><span id="line-356"></span>
+<span class="source-line-no">357</span><span id="line-357">    /**</span>
+<span class="source-line-no">358</span><span id="line-358">     * @return True if full; i.e. there are more items in the cache but we only loaded up the</span>
+<span class="source-line-no">359</span><span id="line-359">     *         maximum set in configuration &lt;code&gt;hbase.ui.blockcache.by.file.max&lt;/code&gt; (Default:</span>
+<span class="source-line-no">360</span><span id="line-360">     *         DEFAULT_MAX).</span>
+<span class="source-line-no">361</span><span id="line-361">     */</span>
+<span class="source-line-no">362</span><span id="line-362">    public boolean isFull() {</span>
+<span class="source-line-no">363</span><span id="line-363">      return this.count &gt;= this.max;</span>
+<span class="source-line-no">364</span><span id="line-364">    }</span>
+<span class="source-line-no">365</span><span id="line-365"></span>
+<span class="source-line-no">366</span><span id="line-366">    public NavigableMap&lt;String, NavigableSet&lt;CachedBlock&gt;&gt; getCachedBlockStatsByFile() {</span>
+<span class="source-line-no">367</span><span id="line-367">      return this.cachedBlockByFile;</span>
 <span class="source-line-no">368</span><span id="line-368">    }</span>
 <span class="source-line-no">369</span><span id="line-369"></span>
-<span class="source-line-no">370</span><span id="line-370">    /** Returns Size of data. */</span>
-<span class="source-line-no">371</span><span id="line-371">    public long getDataSize() {</span>
-<span class="source-line-no">372</span><span id="line-372">      return dataSize;</span>
+<span class="source-line-no">370</span><span id="line-370">    /** Returns count of blocks in the cache */</span>
+<span class="source-line-no">371</span><span id="line-371">    public int getCount() {</span>
+<span class="source-line-no">372</span><span id="line-372">      return count;</span>
 <span class="source-line-no">373</span><span id="line-373">    }</span>
 <span class="source-line-no">374</span><span id="line-374"></span>
-<span class="source-line-no">375</span><span id="line-375">    public AgeSnapshot getAgeInCacheSnapshot() {</span>
-<span class="source-line-no">376</span><span id="line-376">      return new AgeSnapshot(this.hist);</span>
+<span class="source-line-no">375</span><span id="line-375">    public int getDataCount() {</span>
+<span class="source-line-no">376</span><span id="line-376">      return dataBlockCount;</span>
 <span class="source-line-no">377</span><span id="line-377">    }</span>
 <span class="source-line-no">378</span><span id="line-378"></span>
-<span class="source-line-no">379</span><span id="line-379">    @Override</span>
-<span class="source-line-no">380</span><span id="line-380">    public String toString() {</span>
-<span class="source-line-no">381</span><span id="line-381">      AgeSnapshot snapshot = getAgeInCacheSnapshot();</span>
-<span class="source-line-no">382</span><span id="line-382">      return "count=" + count + ", dataBlockCount=" + dataBlockCount + ", size=" + size</span>
-<span class="source-line-no">383</span><span id="line-383">        + ", dataSize=" + getDataSize() + ", mean age=" + snapshot.getMean() + ", min age="</span>
-<span class="source-line-no">384</span><span id="line-384">        + snapshot.getMin() + ", max age=" + snapshot.getMax() + ", 75th percentile age="</span>
-<span class="source-line-no">385</span><span id="line-385">        + snapshot.get75thPercentile() + ", 95th percentile age=" + snapshot.get95thPercentile()</span>
-<span class="source-line-no">386</span><span id="line-386">        + ", 98th percentile age=" + snapshot.get98thPercentile() + ", 99th percentile age="</span>
-<span class="source-line-no">387</span><span id="line-387">        + snapshot.get99thPercentile() + ", 99.9th percentile age=" + snapshot.get99thPercentile();</span>
-<span class="source-line-no">388</span><span id="line-388">    }</span>
-<span class="source-line-no">389</span><span id="line-389">  }</span>
-<span class="source-line-no">390</span><span id="line-390">}</span>
+<span class="source-line-no">379</span><span id="line-379">    /** Returns size of blocks in the cache */</span>
+<span class="source-line-no">380</span><span id="line-380">    public long getSize() {</span>
+<span class="source-line-no">381</span><span id="line-381">      return size;</span>
+<span class="source-line-no">382</span><span id="line-382">    }</span>
+<span class="source-line-no">383</span><span id="line-383"></span>
+<span class="source-line-no">384</span><span id="line-384">    /** Returns Size of data. */</span>
+<span class="source-line-no">385</span><span id="line-385">    public long getDataSize() {</span>
+<span class="source-line-no">386</span><span id="line-386">      return dataSize;</span>
+<span class="source-line-no">387</span><span id="line-387">    }</span>
+<span class="source-line-no">388</span><span id="line-388"></span>
+<span class="source-line-no">389</span><span id="line-389">    public AgeSnapshot getAgeInCacheSnapshot() {</span>
+<span class="source-line-no">390</span><span id="line-390">      return new AgeSnapshot(this.hist);</span>
+<span class="source-line-no">391</span><span id="line-391">    }</span>
+<span class="source-line-no">392</span><span id="line-392"></span>
+<span class="source-line-no">393</span><span id="line-393">    @Override</span>
+<span class="source-line-no">394</span><span id="line-394">    public String toString() {</span>
+<span class="source-line-no">395</span><span id="line-395">      AgeSnapshot snapshot = getAgeInCacheSnapshot();</span>
+<span class="source-line-no">396</span><span id="line-396">      return "count=" + count + ", dataBlockCount=" + dataBlockCount + ", size=" + size</span>
+<span class="source-line-no">397</span><span id="line-397">        + ", dataSize=" + getDataSize() + ", mean age=" + snapshot.getMean() + ", min age="</span>
+<span class="source-line-no">398</span><span id="line-398">        + snapshot.getMin() + ", max age=" + snapshot.getMax() + ", 75th percentile age="</span>
+<span class="source-line-no">399</span><span id="line-399">        + snapshot.get75thPercentile() + ", 95th percentile age=" + snapshot.get95thPercentile()</span>
+<span class="source-line-no">400</span><span id="line-400">        + ", 98th percentile age=" + snapshot.get98thPercentile() + ", 99th percentile age="</span>
+<span class="source-line-no">401</span><span id="line-401">        + snapshot.get99thPercentile() + ", 99.9th percentile age=" + snapshot.get99thPercentile();</span>
+<span class="source-line-no">402</span><span id="line-402">    }</span>
+<span class="source-line-no">403</span><span id="line-403">  }</span>
+<span class="source-line-no">404</span><span id="line-404">}</span>
 
 
 
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html b/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html
index c7cacc0ce02..880e824e273 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.html
@@ -34,373 +34,387 @@
 <span class="source-line-no">021</span><span id="line-21"></span>
 <span class="source-line-no">022</span><span id="line-22">import java.io.IOException;</span>
 <span class="source-line-no">023</span><span id="line-23">import java.nio.ByteBuffer;</span>
-<span class="source-line-no">024</span><span id="line-24">import java.util.NavigableMap;</span>
-<span class="source-line-no">025</span><span id="line-25">import java.util.NavigableSet;</span>
-<span class="source-line-no">026</span><span id="line-26">import java.util.concurrent.ConcurrentSkipListMap;</span>
-<span class="source-line-no">027</span><span id="line-27">import java.util.concurrent.ConcurrentSkipListSet;</span>
-<span class="source-line-no">028</span><span id="line-28">import org.apache.hadoop.conf.Configuration;</span>
-<span class="source-line-no">029</span><span id="line-29">import org.apache.hadoop.hbase.metrics.impl.FastLongHistogram;</span>
-<span class="source-line-no">030</span><span id="line-30">import org.apache.hadoop.hbase.nio.ByteBuff;</span>
-<span class="source-line-no">031</span><span id="line-31">import org.apache.hadoop.hbase.util.Bytes;</span>
-<span class="source-line-no">032</span><span id="line-32">import org.apache.hadoop.hbase.util.ChecksumType;</span>
-<span class="source-line-no">033</span><span id="line-33">import org.apache.hadoop.hbase.util.GsonUtil;</span>
-<span class="source-line-no">034</span><span id="line-34">import org.apache.yetus.audience.InterfaceAudience;</span>
-<span class="source-line-no">035</span><span id="line-35">import org.slf4j.Logger;</span>
-<span class="source-line-no">036</span><span id="line-36">import org.slf4j.LoggerFactory;</span>
-<span class="source-line-no">037</span><span id="line-37"></span>
-<span class="source-line-no">038</span><span id="line-38">import org.apache.hbase.thirdparty.com.google.gson.Gson;</span>
-<span class="source-line-no">039</span><span id="line-39">import org.apache.hbase.thirdparty.com.google.gson.TypeAdapter;</span>
-<span class="source-line-no">040</span><span id="line-40">import org.apache.hbase.thirdparty.com.google.gson.stream.JsonReader;</span>
-<span class="source-line-no">041</span><span id="line-41">import org.apache.hbase.thirdparty.com.google.gson.stream.JsonWriter;</span>
-<span class="source-line-no">042</span><span id="line-42"></span>
-<span class="source-line-no">043</span><span id="line-43">/**</span>
-<span class="source-line-no">044</span><span id="line-44"> * Utilty for aggregating counts in CachedBlocks and toString/toJSON CachedBlocks and BlockCaches.</span>
-<span class="source-line-no">045</span><span id="line-45"> * No attempt has been made at making this thread safe.</span>
-<span class="source-line-no">046</span><span id="line-46"> */</span>
-<span class="source-line-no">047</span><span id="line-47">@InterfaceAudience.Private</span>
-<span class="source-line-no">048</span><span id="line-48">public class BlockCacheUtil {</span>
-<span class="source-line-no">049</span><span id="line-49"></span>
-<span class="source-line-no">050</span><span id="line-50">  private static final Logger LOG = LoggerFactory.getLogger(BlockCacheUtil.class);</span>
-<span class="source-line-no">051</span><span id="line-51"></span>
-<span class="source-line-no">052</span><span id="line-52">  public static final long NANOS_PER_SECOND = 1000000000;</span>
+<span class="source-line-no">024</span><span id="line-24">import java.util.HashSet;</span>
+<span class="source-line-no">025</span><span id="line-25">import java.util.Map;</span>
+<span class="source-line-no">026</span><span id="line-26">import java.util.NavigableMap;</span>
+<span class="source-line-no">027</span><span id="line-27">import java.util.NavigableSet;</span>
+<span class="source-line-no">028</span><span id="line-28">import java.util.Set;</span>
+<span class="source-line-no">029</span><span id="line-29">import java.util.concurrent.ConcurrentSkipListMap;</span>
+<span class="source-line-no">030</span><span id="line-30">import java.util.concurrent.ConcurrentSkipListSet;</span>
+<span class="source-line-no">031</span><span id="line-31">import org.apache.hadoop.conf.Configuration;</span>
+<span class="source-line-no">032</span><span id="line-32">import org.apache.hadoop.hbase.metrics.impl.FastLongHistogram;</span>
+<span class="source-line-no">033</span><span id="line-33">import org.apache.hadoop.hbase.nio.ByteBuff;</span>
+<span class="source-line-no">034</span><span id="line-34">import org.apache.hadoop.hbase.regionserver.HRegion;</span>
+<span class="source-line-no">035</span><span id="line-35">import org.apache.hadoop.hbase.util.Bytes;</span>
+<span class="source-line-no">036</span><span id="line-36">import org.apache.hadoop.hbase.util.ChecksumType;</span>
+<span class="source-line-no">037</span><span id="line-37">import org.apache.hadoop.hbase.util.GsonUtil;</span>
+<span class="source-line-no">038</span><span id="line-38">import org.apache.yetus.audience.InterfaceAudience;</span>
+<span class="source-line-no">039</span><span id="line-39">import org.slf4j.Logger;</span>
+<span class="source-line-no">040</span><span id="line-40">import org.slf4j.LoggerFactory;</span>
+<span class="source-line-no">041</span><span id="line-41"></span>
+<span class="source-line-no">042</span><span id="line-42">import org.apache.hbase.thirdparty.com.google.gson.Gson;</span>
+<span class="source-line-no">043</span><span id="line-43">import org.apache.hbase.thirdparty.com.google.gson.TypeAdapter;</span>
+<span class="source-line-no">044</span><span id="line-44">import org.apache.hbase.thirdparty.com.google.gson.stream.JsonReader;</span>
+<span class="source-line-no">045</span><span id="line-45">import org.apache.hbase.thirdparty.com.google.gson.stream.JsonWriter;</span>
+<span class="source-line-no">046</span><span id="line-46"></span>
+<span class="source-line-no">047</span><span id="line-47">/**</span>
+<span class="source-line-no">048</span><span id="line-48"> * Utilty for aggregating counts in CachedBlocks and toString/toJSON CachedBlocks and BlockCaches.</span>
+<span class="source-line-no">049</span><span id="line-49"> * No attempt has been made at making this thread safe.</span>
+<span class="source-line-no">050</span><span id="line-50"> */</span>
+<span class="source-line-no">051</span><span id="line-51">@InterfaceAudience.Private</span>
+<span class="source-line-no">052</span><span id="line-52">public class BlockCacheUtil {</span>
 <span class="source-line-no">053</span><span id="line-53"></span>
-<span class="source-line-no">054</span><span id="line-54">  /**</span>
-<span class="source-line-no">055</span><span id="line-55">   * Needed generating JSON.</span>
-<span class="source-line-no">056</span><span id="line-56">   */</span>
-<span class="source-line-no">057</span><span id="line-57">  private static final Gson GSON = GsonUtil.createGson()</span>
-<span class="source-line-no">058</span><span id="line-58">    .registerTypeAdapter(FastLongHistogram.class, new TypeAdapter&lt;FastLongHistogram&gt;() {</span>
-<span class="source-line-no">059</span><span id="line-59"></span>
-<span class="source-line-no">060</span><span id="line-60">      @Override</span>
-<span class="source-line-no">061</span><span id="line-61">      public void write(JsonWriter out, FastLongHistogram value) throws IOException {</span>
-<span class="source-line-no">062</span><span id="line-62">        AgeSnapshot snapshot = new AgeSnapshot(value);</span>
-<span class="source-line-no">063</span><span id="line-63">        out.beginObject();</span>
-<span class="source-line-no">064</span><span id="line-64">        out.name("mean").value(snapshot.getMean());</span>
-<span class="source-line-no">065</span><span id="line-65">        out.name("min").value(snapshot.getMin());</span>
-<span class="source-line-no">066</span><span id="line-66">        out.name("max").value(snapshot.getMax());</span>
-<span class="source-line-no">067</span><span id="line-67">        out.name("75thPercentile").value(snapshot.get75thPercentile());</span>
-<span class="source-line-no">068</span><span id="line-68">        out.name("95thPercentile").value(snapshot.get95thPercentile());</span>
-<span class="source-line-no">069</span><span id="line-69">        out.name("98thPercentile").value(snapshot.get98thPercentile());</span>
-<span class="source-line-no">070</span><span id="line-70">        out.name("99thPercentile").value(snapshot.get99thPercentile());</span>
-<span class="source-line-no">071</span><span id="line-71">        out.name("999thPercentile").value(snapshot.get999thPercentile());</span>
-<span class="source-line-no">072</span><span id="line-72">        out.endObject();</span>
-<span class="source-line-no">073</span><span id="line-73">      }</span>
-<span class="source-line-no">074</span><span id="line-74"></span>
-<span class="source-line-no">075</span><span id="line-75">      @Override</span>
-<span class="source-line-no">076</span><span id="line-76">      public FastLongHistogram read(JsonReader in) throws IOException {</span>
-<span class="source-line-no">077</span><span id="line-77">        throw new UnsupportedOperationException();</span>
-<span class="source-line-no">078</span><span id="line-78">      }</span>
-<span class="source-line-no">079</span><span id="line-79">    }).setPrettyPrinting().create();</span>
-<span class="source-line-no">080</span><span id="line-80"></span>
-<span class="source-line-no">081</span><span id="line-81">  /** Returns The block content as String. */</span>
-<span class="source-line-no">082</span><span id="line-82">  public static String toString(final CachedBlock cb, final long now) {</span>
-<span class="source-line-no">083</span><span id="line-83">    return "filename=" + cb.getFilename() + ", " + toStringMinusFileName(cb, now);</span>
-<span class="source-line-no">084</span><span id="line-84">  }</span>
-<span class="source-line-no">085</span><span id="line-85"></span>
-<span class="source-line-no">086</span><span id="line-86">  /**</span>
-<span class="source-line-no">087</span><span id="line-87">   * Little data structure to hold counts for a file. Used doing a toJSON.</span>
-<span class="source-line-no">088</span><span id="line-88">   */</span>
-<span class="source-line-no">089</span><span id="line-89">  static class CachedBlockCountsPerFile {</span>
-<span class="source-line-no">090</span><span id="line-90">    private int count = 0;</span>
-<span class="source-line-no">091</span><span id="line-91">    private long size = 0;</span>
-<span class="source-line-no">092</span><span id="line-92">    private int countData = 0;</span>
-<span class="source-line-no">093</span><span id="line-93">    private long sizeData = 0;</span>
-<span class="source-line-no">094</span><span id="line-94">    private final String filename;</span>
-<span class="source-line-no">095</span><span id="line-95"></span>
-<span class="source-line-no">096</span><span id="line-96">    CachedBlockCountsPerFile(final String filename) {</span>
-<span class="source-line-no">097</span><span id="line-97">      this.filename = filename;</span>
-<span class="source-line-no">098</span><span id="line-98">    }</span>
+<span class="source-line-no">054</span><span id="line-54">  private static final Logger LOG = LoggerFactory.getLogger(BlockCacheUtil.class);</span>
+<span class="source-line-no">055</span><span id="line-55"></span>
+<span class="source-line-no">056</span><span id="line-56">  public static final long NANOS_PER_SECOND = 1000000000;</span>
+<span class="source-line-no">057</span><span id="line-57"></span>
+<span class="source-line-no">058</span><span id="line-58">  /**</span>
+<span class="source-line-no">059</span><span id="line-59">   * Needed generating JSON.</span>
+<span class="source-line-no">060</span><span id="line-60">   */</span>
+<span class="source-line-no">061</span><span id="line-61">  private static final Gson GSON = GsonUtil.createGson()</span>
+<span class="source-line-no">062</span><span id="line-62">    .registerTypeAdapter(FastLongHistogram.class, new TypeAdapter&lt;FastLongHistogram&gt;() {</span>
+<span class="source-line-no">063</span><span id="line-63"></span>
+<span class="source-line-no">064</span><span id="line-64">      @Override</span>
+<span class="source-line-no">065</span><span id="line-65">      public void write(JsonWriter out, FastLongHistogram value) throws IOException {</span>
+<span class="source-line-no">066</span><span id="line-66">        AgeSnapshot snapshot = new AgeSnapshot(value);</span>
+<span class="source-line-no">067</span><span id="line-67">        out.beginObject();</span>
+<span class="source-line-no">068</span><span id="line-68">        out.name("mean").value(snapshot.getMean());</span>
+<span class="source-line-no">069</span><span id="line-69">        out.name("min").value(snapshot.getMin());</span>
+<span class="source-line-no">070</span><span id="line-70">        out.name("max").value(snapshot.getMax());</span>
+<span class="source-line-no">071</span><span id="line-71">        out.name("75thPercentile").value(snapshot.get75thPercentile());</span>
+<span class="source-line-no">072</span><span id="line-72">        out.name("95thPercentile").value(snapshot.get95thPercentile());</span>
+<span class="source-line-no">073</span><span id="line-73">        out.name("98thPercentile").value(snapshot.get98thPercentile());</span>
+<span class="source-line-no">074</span><span id="line-74">        out.name("99thPercentile").value(snapshot.get99thPercentile());</span>
+<span class="source-line-no">075</span><span id="line-75">        out.name("999thPercentile").value(snapshot.get999thPercentile());</span>
+<span class="source-line-no">076</span><span id="line-76">        out.endObject();</span>
+<span class="source-line-no">077</span><span id="line-77">      }</span>
+<span class="source-line-no">078</span><span id="line-78"></span>
+<span class="source-line-no">079</span><span id="line-79">      @Override</span>
+<span class="source-line-no">080</span><span id="line-80">      public FastLongHistogram read(JsonReader in) throws IOException {</span>
+<span class="source-line-no">081</span><span id="line-81">        throw new UnsupportedOperationException();</span>
+<span class="source-line-no">082</span><span id="line-82">      }</span>
+<span class="source-line-no">083</span><span id="line-83">    }).setPrettyPrinting().create();</span>
+<span class="source-line-no">084</span><span id="line-84"></span>
+<span class="source-line-no">085</span><span id="line-85">  /** Returns The block content as String. */</span>
+<span class="source-line-no">086</span><span id="line-86">  public static String toString(final CachedBlock cb, final long now) {</span>
+<span class="source-line-no">087</span><span id="line-87">    return "filename=" + cb.getFilename() + ", " + toStringMinusFileName(cb, now);</span>
+<span class="source-line-no">088</span><span id="line-88">  }</span>
+<span class="source-line-no">089</span><span id="line-89"></span>
+<span class="source-line-no">090</span><span id="line-90">  /**</span>
+<span class="source-line-no">091</span><span id="line-91">   * Little data structure to hold counts for a file. Used doing a toJSON.</span>
+<span class="source-line-no">092</span><span id="line-92">   */</span>
+<span class="source-line-no">093</span><span id="line-93">  static class CachedBlockCountsPerFile {</span>
+<span class="source-line-no">094</span><span id="line-94">    private int count = 0;</span>
+<span class="source-line-no">095</span><span id="line-95">    private long size = 0;</span>
+<span class="source-line-no">096</span><span id="line-96">    private int countData = 0;</span>
+<span class="source-line-no">097</span><span id="line-97">    private long sizeData = 0;</span>
+<span class="source-line-no">098</span><span id="line-98">    private final String filename;</span>
 <span class="source-line-no">099</span><span id="line-99"></span>
-<span class="source-line-no">100</span><span id="line-100">    public int getCount() {</span>
-<span class="source-line-no">101</span><span id="line-101">      return count;</span>
+<span class="source-line-no">100</span><span id="line-100">    CachedBlockCountsPerFile(final String filename) {</span>
+<span class="source-line-no">101</span><span id="line-101">      this.filename = filename;</span>
 <span class="source-line-no">102</span><span id="line-102">    }</span>
 <span class="source-line-no">103</span><span id="line-103"></span>
-<span class="source-line-no">104</span><span id="line-104">    public long getSize() {</span>
-<span class="source-line-no">105</span><span id="line-105">      return size;</span>
+<span class="source-line-no">104</span><span id="line-104">    public int getCount() {</span>
+<span class="source-line-no">105</span><span id="line-105">      return count;</span>
 <span class="source-line-no">106</span><span id="line-106">    }</span>
 <span class="source-line-no">107</span><span id="line-107"></span>
-<span class="source-line-no">108</span><span id="line-108">    public int getCountData() {</span>
-<span class="source-line-no">109</span><span id="line-109">      return countData;</span>
+<span class="source-line-no">108</span><span id="line-108">    public long getSize() {</span>
+<span class="source-line-no">109</span><span id="line-109">      return size;</span>
 <span class="source-line-no">110</span><span id="line-110">    }</span>
 <span class="source-line-no">111</span><span id="line-111"></span>
-<span class="source-line-no">112</span><span id="line-112">    public long getSizeData() {</span>
-<span class="source-line-no">113</span><span id="line-113">      return sizeData;</span>
+<span class="source-line-no">112</span><span id="line-112">    public int getCountData() {</span>
+<span class="source-line-no">113</span><span id="line-113">      return countData;</span>
 <span class="source-line-no">114</span><span id="line-114">    }</span>
 <span class="source-line-no">115</span><span id="line-115"></span>
-<span class="source-line-no">116</span><span id="line-116">    public String getFilename() {</span>
-<span class="source-line-no">117</span><span id="line-117">      return filename;</span>
+<span class="source-line-no">116</span><span id="line-116">    public long getSizeData() {</span>
+<span class="source-line-no">117</span><span id="line-117">      return sizeData;</span>
 <span class="source-line-no">118</span><span id="line-118">    }</span>
-<span class="source-line-no">119</span><span id="line-119">  }</span>
-<span class="source-line-no">120</span><span id="line-120"></span>
-<span class="source-line-no">121</span><span id="line-121">  /** Returns A JSON String of &lt;code&gt;filename&lt;/code&gt; and counts of &lt;code&gt;blocks&lt;/code&gt; */</span>
-<span class="source-line-no">122</span><span id="line-122">  public static String toJSON(String filename, NavigableSet&lt;CachedBlock&gt; blocks)</span>
-<span class="source-line-no">123</span><span id="line-123">    throws IOException {</span>
-<span class="source-line-no">124</span><span id="line-124">    CachedBlockCountsPerFile counts = new CachedBlockCountsPerFile(filename);</span>
-<span class="source-line-no">125</span><span id="line-125">    for (CachedBlock cb : blocks) {</span>
-<span class="source-line-no">126</span><span id="line-126">      counts.count++;</span>
-<span class="source-line-no">127</span><span id="line-127">      counts.size += cb.getSize();</span>
-<span class="source-line-no">128</span><span id="line-128">      BlockType bt = cb.getBlockType();</span>
-<span class="source-line-no">129</span><span id="line-129">      if (bt != null &amp;&amp; bt.isData()) {</span>
-<span class="source-line-no">130</span><span id="line-130">        counts.countData++;</span>
-<span class="source-line-no">131</span><span id="line-131">        counts.sizeData += cb.getSize();</span>
-<span class="source-line-no">132</span><span id="line-132">      }</span>
-<span class="source-line-no">133</span><span id="line-133">    }</span>
-<span class="source-line-no">134</span><span id="line-134">    return GSON.toJson(counts);</span>
-<span class="source-line-no">135</span><span id="line-135">  }</span>
-<span class="source-line-no">136</span><span id="line-136"></span>
-<span class="source-line-no">137</span><span id="line-137">  /** Returns JSON string of &lt;code&gt;cbsf&lt;/code&gt; aggregated */</span>
-<span class="source-line-no">138</span><span id="line-138">  public static String toJSON(CachedBlocksByFile cbsbf) throws IOException {</span>
-<span class="source-line-no">139</span><span id="line-139">    return GSON.toJson(cbsbf);</span>
-<span class="source-line-no">140</span><span id="line-140">  }</span>
-<span class="source-line-no">141</span><span id="line-141"></span>
-<span class="source-line-no">142</span><span id="line-142">  /** Returns JSON string of &lt;code&gt;bc&lt;/code&gt; content. */</span>
-<span class="source-line-no">143</span><span id="line-143">  public static String toJSON(BlockCache bc) throws IOException {</span>
-<span class="source-line-no">144</span><span id="line-144">    return GSON.toJson(bc);</span>
-<span class="source-line-no">145</span><span id="line-145">  }</span>
-<span class="source-line-no">146</span><span id="line-146"></span>
-<span class="source-line-no">147</span><span id="line-147">  /** Returns The block content of &lt;code&gt;bc&lt;/code&gt; as a String minus the filename. */</span>
-<span class="source-line-no">148</span><span id="line-148">  public static String toStringMinusFileName(final CachedBlock cb, final long now) {</span>
-<span class="source-line-no">149</span><span id="line-149">    return "offset=" + cb.getOffset() + ", size=" + cb.getSize() + ", age="</span>
-<span class="source-line-no">150</span><span id="line-150">      + (now - cb.getCachedTime()) + ", type=" + cb.getBlockType() + ", priority="</span>
-<span class="source-line-no">151</span><span id="line-151">      + cb.getBlockPriority();</span>
-<span class="source-line-no">152</span><span id="line-152">  }</span>
-<span class="source-line-no">153</span><span id="line-153"></span>
-<span class="source-line-no">154</span><span id="line-154">  /**</span>
-<span class="source-line-no">155</span><span id="line-155">   * Get a {@link CachedBlocksByFile} instance and load it up by iterating content in</span>
-<span class="source-line-no">156</span><span id="line-156">   * {@link BlockCache}.</span>
-<span class="source-line-no">157</span><span id="line-157">   * @param conf Used to read configurations</span>
-<span class="source-line-no">158</span><span id="line-158">   * @param bc   Block Cache to iterate.</span>
-<span class="source-line-no">159</span><span id="line-159">   * @return Laoded up instance of CachedBlocksByFile</span>
-<span class="source-line-no">160</span><span id="line-160">   */</span>
-<span class="source-line-no">161</span><span id="line-161">  public static CachedBlocksByFile getLoadedCachedBlocksByFile(final Configuration conf,</span>
-<span class="source-line-no">162</span><span id="line-162">    final BlockCache bc) {</span>
-<span class="source-line-no">163</span><span id="line-163">    CachedBlocksByFile cbsbf = new CachedBlocksByFile(conf);</span>
-<span class="source-line-no">164</span><span id="line-164">    for (CachedBlock cb : bc) {</span>
-<span class="source-line-no">165</span><span id="line-165">      if (cbsbf.update(cb)) break;</span>
-<span class="source-line-no">166</span><span id="line-166">    }</span>
-<span class="source-line-no">167</span><span id="line-167">    return cbsbf;</span>
-<span class="source-line-no">168</span><span id="line-168">  }</span>
-<span class="source-line-no">169</span><span id="line-169"></span>
-<span class="source-line-no">170</span><span id="line-170">  private static int compareCacheBlock(Cacheable left, Cacheable right,</span>
-<span class="source-line-no">171</span><span id="line-171">    boolean includeNextBlockMetadata) {</span>
-<span class="source-line-no">172</span><span id="line-172">    ByteBuffer l = ByteBuffer.allocate(left.getSerializedLength());</span>
-<span class="source-line-no">173</span><span id="line-173">    left.serialize(l, includeNextBlockMetadata);</span>
-<span class="source-line-no">174</span><span id="line-174">    ByteBuffer r = ByteBuffer.allocate(right.getSerializedLength());</span>
-<span class="source-line-no">175</span><span id="line-175">    right.serialize(r, includeNextBlockMetadata);</span>
-<span class="source-line-no">176</span><span id="line-176">    return Bytes.compareTo(l.array(), l.arrayOffset(), l.limit(), r.array(), r.arrayOffset(),</span>
-<span class="source-line-no">177</span><span id="line-177">      r.limit());</span>
-<span class="source-line-no">178</span><span id="line-178">  }</span>
-<span class="source-line-no">179</span><span id="line-179"></span>
-<span class="source-line-no">180</span><span id="line-180">  /**</span>
-<span class="source-line-no">181</span><span id="line-181">   * Validate that the existing and newBlock are the same without including the nextBlockMetadata,</span>
-<span class="source-line-no">182</span><span id="line-182">   * if not, throw an exception. If they are the same without the nextBlockMetadata, return the</span>
-<span class="source-line-no">183</span><span id="line-183">   * comparison.</span>
-<span class="source-line-no">184</span><span id="line-184">   * @param existing block that is existing in the cache.</span>
-<span class="source-line-no">185</span><span id="line-185">   * @param newBlock block that is trying to be cached.</span>
-<span class="source-line-no">186</span><span id="line-186">   * @param cacheKey the cache key of the blocks.</span>
-<span class="source-line-no">187</span><span id="line-187">   * @return comparison of the existing block to the newBlock.</span>
-<span class="source-line-no">188</span><span id="line-188">   */</span>
-<span class="source-line-no">189</span><span id="line-189">  public static int validateBlockAddition(Cacheable existing, Cacheable newBlock,</span>
-<span class="source-line-no">190</span><span id="line-190">    BlockCacheKey cacheKey) {</span>
-<span class="source-line-no">191</span><span id="line-191">    int comparison = compareCacheBlock(existing, newBlock, false);</span>
-<span class="source-line-no">192</span><span id="line-192">    if (comparison != 0) {</span>
-<span class="source-line-no">193</span><span id="line-193">      throw new RuntimeException(</span>
-<span class="source-line-no">194</span><span id="line-194">        "Cached block contents differ, which should not have happened." + "cacheKey:" + cacheKey);</span>
-<span class="source-line-no">195</span><span id="line-195">    }</span>
-<span class="source-line-no">196</span><span id="line-196">    if ((existing instanceof HFileBlock) &amp;&amp; (newBlock instanceof HFileBlock)) {</span>
-<span class="source-line-no">197</span><span id="line-197">      comparison = ((HFileBlock) existing).getNextBlockOnDiskSize()</span>
-<span class="source-line-no">198</span><span id="line-198">        - ((HFileBlock) newBlock).getNextBlockOnDiskSize();</span>
+<span class="source-line-no">119</span><span id="line-119"></span>
+<span class="source-line-no">120</span><span id="line-120">    public String getFilename() {</span>
+<span class="source-line-no">121</span><span id="line-121">      return filename;</span>
+<span class="source-line-no">122</span><span id="line-122">    }</span>
+<span class="source-line-no">123</span><span id="line-123">  }</span>
+<span class="source-line-no">124</span><span id="line-124"></span>
+<span class="source-line-no">125</span><span id="line-125">  /** Returns A JSON String of &lt;code&gt;filename&lt;/code&gt; and counts of &lt;code&gt;blocks&lt;/code&gt; */</span>
+<span class="source-line-no">126</span><span id="line-126">  public static String toJSON(String filename, NavigableSet&lt;CachedBlock&gt; blocks)</span>
+<span class="source-line-no">127</span><span id="line-127">    throws IOException {</span>
+<span class="source-line-no">128</span><span id="line-128">    CachedBlockCountsPerFile counts = new CachedBlockCountsPerFile(filename);</span>
+<span class="source-line-no">129</span><span id="line-129">    for (CachedBlock cb : blocks) {</span>
+<span class="source-line-no">130</span><span id="line-130">      counts.count++;</span>
+<span class="source-line-no">131</span><span id="line-131">      counts.size += cb.getSize();</span>
+<span class="source-line-no">132</span><span id="line-132">      BlockType bt = cb.getBlockType();</span>
+<span class="source-line-no">133</span><span id="line-133">      if (bt != null &amp;&amp; bt.isData()) {</span>
+<span class="source-line-no">134</span><span id="line-134">        counts.countData++;</span>
+<span class="source-line-no">135</span><span id="line-135">        counts.sizeData += cb.getSize();</span>
+<span class="source-line-no">136</span><span id="line-136">      }</span>
+<span class="source-line-no">137</span><span id="line-137">    }</span>
+<span class="source-line-no">138</span><span id="line-138">    return GSON.toJson(counts);</span>
+<span class="source-line-no">139</span><span id="line-139">  }</span>
+<span class="source-line-no">140</span><span id="line-140"></span>
+<span class="source-line-no">141</span><span id="line-141">  /** Returns JSON string of &lt;code&gt;cbsf&lt;/code&gt; aggregated */</span>
+<span class="source-line-no">142</span><span id="line-142">  public static String toJSON(CachedBlocksByFile cbsbf) throws IOException {</span>
+<span class="source-line-no">143</span><span id="line-143">    return GSON.toJson(cbsbf);</span>
+<span class="source-line-no">144</span><span id="line-144">  }</span>
+<span class="source-line-no">145</span><span id="line-145"></span>
+<span class="source-line-no">146</span><span id="line-146">  /** Returns JSON string of &lt;code&gt;bc&lt;/code&gt; content. */</span>
+<span class="source-line-no">147</span><span id="line-147">  public static String toJSON(BlockCache bc) throws IOException {</span>
+<span class="source-line-no">148</span><span id="line-148">    return GSON.toJson(bc);</span>
+<span class="source-line-no">149</span><span id="line-149">  }</span>
+<span class="source-line-no">150</span><span id="line-150"></span>
+<span class="source-line-no">151</span><span id="line-151">  /** Returns The block content of &lt;code&gt;bc&lt;/code&gt; as a String minus the filename. */</span>
+<span class="source-line-no">152</span><span id="line-152">  public static String toStringMinusFileName(final CachedBlock cb, final long now) {</span>
+<span class="source-line-no">153</span><span id="line-153">    return "offset=" + cb.getOffset() + ", size=" + cb.getSize() + ", age="</span>
+<span class="source-line-no">154</span><span id="line-154">      + (now - cb.getCachedTime()) + ", type=" + cb.getBlockType() + ", priority="</span>
+<span class="source-line-no">155</span><span id="line-155">      + cb.getBlockPriority();</span>
+<span class="source-line-no">156</span><span id="line-156">  }</span>
+<span class="source-line-no">157</span><span id="line-157"></span>
+<span class="source-line-no">158</span><span id="line-158">  /**</span>
+<span class="source-line-no">159</span><span id="line-159">   * Get a {@link CachedBlocksByFile} instance and load it up by iterating content in</span>
+<span class="source-line-no">160</span><span id="line-160">   * {@link BlockCache}.</span>
+<span class="source-line-no">161</span><span id="line-161">   * @param conf Used to read configurations</span>
+<span class="source-line-no">162</span><span id="line-162">   * @param bc   Block Cache to iterate.</span>
+<span class="source-line-no">163</span><span id="line-163">   * @return Laoded up instance of CachedBlocksByFile</span>
+<span class="source-line-no">164</span><span id="line-164">   */</span>
+<span class="source-line-no">165</span><span id="line-165">  public static CachedBlocksByFile getLoadedCachedBlocksByFile(final Configuration conf,</span>
+<span class="source-line-no">166</span><span id="line-166">    final BlockCache bc) {</span>
+<span class="source-line-no">167</span><span id="line-167">    CachedBlocksByFile cbsbf = new CachedBlocksByFile(conf);</span>
+<span class="source-line-no">168</span><span id="line-168">    for (CachedBlock cb : bc) {</span>
+<span class="source-line-no">169</span><span id="line-169">      if (cbsbf.update(cb)) break;</span>
+<span class="source-line-no">170</span><span id="line-170">    }</span>
+<span class="source-line-no">171</span><span id="line-171">    return cbsbf;</span>
+<span class="source-line-no">172</span><span id="line-172">  }</span>
+<span class="source-line-no">173</span><span id="line-173"></span>
+<span class="source-line-no">174</span><span id="line-174">  private static int compareCacheBlock(Cacheable left, Cacheable right,</span>
+<span class="source-line-no">175</span><span id="line-175">    boolean includeNextBlockMetadata) {</span>
+<span class="source-line-no">176</span><span id="line-176">    ByteBuffer l = ByteBuffer.allocate(left.getSerializedLength());</span>
+<span class="source-line-no">177</span><span id="line-177">    left.serialize(l, includeNextBlockMetadata);</span>
+<span class="source-line-no">178</span><span id="line-178">    ByteBuffer r = ByteBuffer.allocate(right.getSerializedLength());</span>
+<span class="source-line-no">179</span><span id="line-179">    right.serialize(r, includeNextBlockMetadata);</span>
+<span class="source-line-no">180</span><span id="line-180">    return Bytes.compareTo(l.array(), l.arrayOffset(), l.limit(), r.array(), r.arrayOffset(),</span>
+<span class="source-line-no">181</span><span id="line-181">      r.limit());</span>
+<span class="source-line-no">182</span><span id="line-182">  }</span>
+<span class="source-line-no">183</span><span id="line-183"></span>
+<span class="source-line-no">184</span><span id="line-184">  /**</span>
+<span class="source-line-no">185</span><span id="line-185">   * Validate that the existing and newBlock are the same without including the nextBlockMetadata,</span>
+<span class="source-line-no">186</span><span id="line-186">   * if not, throw an exception. If they are the same without the nextBlockMetadata, return the</span>
+<span class="source-line-no">187</span><span id="line-187">   * comparison.</span>
+<span class="source-line-no">188</span><span id="line-188">   * @param existing block that is existing in the cache.</span>
+<span class="source-line-no">189</span><span id="line-189">   * @param newBlock block that is trying to be cached.</span>
+<span class="source-line-no">190</span><span id="line-190">   * @param cacheKey the cache key of the blocks.</span>
+<span class="source-line-no">191</span><span id="line-191">   * @return comparison of the existing block to the newBlock.</span>
+<span class="source-line-no">192</span><span id="line-192">   */</span>
+<span class="source-line-no">193</span><span id="line-193">  public static int validateBlockAddition(Cacheable existing, Cacheable newBlock,</span>
+<span class="source-line-no">194</span><span id="line-194">    BlockCacheKey cacheKey) {</span>
+<span class="source-line-no">195</span><span id="line-195">    int comparison = compareCacheBlock(existing, newBlock, false);</span>
+<span class="source-line-no">196</span><span id="line-196">    if (comparison != 0) {</span>
+<span class="source-line-no">197</span><span id="line-197">      throw new RuntimeException(</span>
+<span class="source-line-no">198</span><span id="line-198">        "Cached block contents differ, which should not have happened." + "cacheKey:" + cacheKey);</span>
 <span class="source-line-no">199</span><span id="line-199">    }</span>
-<span class="source-line-no">200</span><span id="line-200">    return comparison;</span>
-<span class="source-line-no">201</span><span id="line-201">  }</span>
-<span class="source-line-no">202</span><span id="line-202"></span>
-<span class="source-line-no">203</span><span id="line-203">  /**</span>
-<span class="source-line-no">204</span><span id="line-204">   * Because of the region splitting, it's possible that the split key locate in the middle of a</span>
-<span class="source-line-no">205</span><span id="line-205">   * block. So it's possible that both the daughter regions load the same block from their parent</span>
-<span class="source-line-no">206</span><span id="line-206">   * HFile. When pread, we don't force the read to read all of the next block header. So when two</span>
-<span class="source-line-no">207</span><span id="line-207">   * threads try to cache the same block, it's possible that one thread read all of the next block</span>
-<span class="source-line-no">208</span><span id="line-208">   * header but the other one didn't. if the already cached block hasn't next block header but the</span>
-<span class="source-line-no">209</span><span id="line-209">   * new block to cache has, then we can replace the existing block with the new block for better</span>
-<span class="source-line-no">210</span><span id="line-210">   * performance.(HBASE-20447)</span>
-<span class="source-line-no">211</span><span id="line-211">   * @param blockCache BlockCache to check</span>
-<span class="source-line-no">212</span><span id="line-212">   * @param cacheKey   the block cache key</span>
-<span class="source-line-no">213</span><span id="line-213">   * @param newBlock   the new block which try to put into the block cache.</span>
-<span class="source-line-no">214</span><span id="line-214">   * @return true means need to replace existing block with new block for the same block cache key.</span>
-<span class="source-line-no">215</span><span id="line-215">   *         false means just keep the existing block.</span>
-<span class="source-line-no">216</span><span id="line-216">   */</span>
-<span class="source-line-no">217</span><span id="line-217">  public static boolean shouldReplaceExistingCacheBlock(BlockCache blockCache,</span>
-<span class="source-line-no">218</span><span id="line-218">    BlockCacheKey cacheKey, Cacheable newBlock) {</span>
-<span class="source-line-no">219</span><span id="line-219">    // NOTICE: The getBlock has retained the existingBlock inside.</span>
-<span class="source-line-no">220</span><span id="line-220">    Cacheable existingBlock = blockCache.getBlock(cacheKey, false, false, false);</span>
-<span class="source-line-no">221</span><span id="line-221">    if (existingBlock == null) {</span>
-<span class="source-line-no">222</span><span id="line-222">      return true;</span>
-<span class="source-line-no">223</span><span id="line-223">    }</span>
-<span class="source-line-no">224</span><span id="line-224">    try {</span>
-<span class="source-line-no">225</span><span id="line-225">      int comparison = BlockCacheUtil.validateBlockAddition(existingBlock, newBlock, cacheKey);</span>
-<span class="source-line-no">226</span><span id="line-226">      if (comparison &lt; 0) {</span>
-<span class="source-line-no">227</span><span id="line-227">        LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the new block has "</span>
-<span class="source-line-no">228</span><span id="line-228">          + "nextBlockOnDiskSize set. Caching new block.");</span>
-<span class="source-line-no">229</span><span id="line-229">        return true;</span>
-<span class="source-line-no">230</span><span id="line-230">      } else if (comparison &gt; 0) {</span>
-<span class="source-line-no">231</span><span id="line-231">        LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the existing block has "</span>
-<span class="source-line-no">232</span><span id="line-232">          + "nextBlockOnDiskSize set, Keeping cached block.");</span>
-<span class="source-line-no">233</span><span id="line-233">        return false;</span>
-<span class="source-line-no">234</span><span id="line-234">      } else {</span>
-<span class="source-line-no">235</span><span id="line-235">        LOG.debug("Caching an already cached block: {}. This is harmless and can happen in rare "</span>
-<span class="source-line-no">236</span><span id="line-236">          + "cases (see HBASE-8547)", cacheKey);</span>
+<span class="source-line-no">200</span><span id="line-200">    if ((existing instanceof HFileBlock) &amp;&amp; (newBlock instanceof HFileBlock)) {</span>
+<span class="source-line-no">201</span><span id="line-201">      comparison = ((HFileBlock) existing).getNextBlockOnDiskSize()</span>
+<span class="source-line-no">202</span><span id="line-202">        - ((HFileBlock) newBlock).getNextBlockOnDiskSize();</span>
+<span class="source-line-no">203</span><span id="line-203">    }</span>
+<span class="source-line-no">204</span><span id="line-204">    return comparison;</span>
+<span class="source-line-no">205</span><span id="line-205">  }</span>
+<span class="source-line-no">206</span><span id="line-206"></span>
+<span class="source-line-no">207</span><span id="line-207">  /**</span>
+<span class="source-line-no">208</span><span id="line-208">   * Because of the region splitting, it's possible that the split key locate in the middle of a</span>
+<span class="source-line-no">209</span><span id="line-209">   * block. So it's possible that both the daughter regions load the same block from their parent</span>
+<span class="source-line-no">210</span><span id="line-210">   * HFile. When pread, we don't force the read to read all of the next block header. So when two</span>
+<span class="source-line-no">211</span><span id="line-211">   * threads try to cache the same block, it's possible that one thread read all of the next block</span>
+<span class="source-line-no">212</span><span id="line-212">   * header but the other one didn't. if the already cached block hasn't next block header but the</span>
+<span class="source-line-no">213</span><span id="line-213">   * new block to cache has, then we can replace the existing block with the new block for better</span>
+<span class="source-line-no">214</span><span id="line-214">   * performance.(HBASE-20447)</span>
+<span class="source-line-no">215</span><span id="line-215">   * @param blockCache BlockCache to check</span>
+<span class="source-line-no">216</span><span id="line-216">   * @param cacheKey   the block cache key</span>
+<span class="source-line-no">217</span><span id="line-217">   * @param newBlock   the new block which try to put into the block cache.</span>
+<span class="source-line-no">218</span><span id="line-218">   * @return true means need to replace existing block with new block for the same block cache key.</span>
+<span class="source-line-no">219</span><span id="line-219">   *         false means just keep the existing block.</span>
+<span class="source-line-no">220</span><span id="line-220">   */</span>
+<span class="source-line-no">221</span><span id="line-221">  public static boolean shouldReplaceExistingCacheBlock(BlockCache blockCache,</span>
+<span class="source-line-no">222</span><span id="line-222">    BlockCacheKey cacheKey, Cacheable newBlock) {</span>
+<span class="source-line-no">223</span><span id="line-223">    // NOTICE: The getBlock has retained the existingBlock inside.</span>
+<span class="source-line-no">224</span><span id="line-224">    Cacheable existingBlock = blockCache.getBlock(cacheKey, false, false, false);</span>
+<span class="source-line-no">225</span><span id="line-225">    if (existingBlock == null) {</span>
+<span class="source-line-no">226</span><span id="line-226">      return true;</span>
+<span class="source-line-no">227</span><span id="line-227">    }</span>
+<span class="source-line-no">228</span><span id="line-228">    try {</span>
+<span class="source-line-no">229</span><span id="line-229">      int comparison = BlockCacheUtil.validateBlockAddition(existingBlock, newBlock, cacheKey);</span>
+<span class="source-line-no">230</span><span id="line-230">      if (comparison &lt; 0) {</span>
+<span class="source-line-no">231</span><span id="line-231">        LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the new block has "</span>
+<span class="source-line-no">232</span><span id="line-232">          + "nextBlockOnDiskSize set. Caching new block.");</span>
+<span class="source-line-no">233</span><span id="line-233">        return true;</span>
+<span class="source-line-no">234</span><span id="line-234">      } else if (comparison &gt; 0) {</span>
+<span class="source-line-no">235</span><span id="line-235">        LOG.warn("Cached block contents differ by nextBlockOnDiskSize, the existing block has "</span>
+<span class="source-line-no">236</span><span id="line-236">          + "nextBlockOnDiskSize set, Keeping cached block.");</span>
 <span class="source-line-no">237</span><span id="line-237">        return false;</span>
-<span class="source-line-no">238</span><span id="line-238">      }</span>
-<span class="source-line-no">239</span><span id="line-239">    } finally {</span>
-<span class="source-line-no">240</span><span id="line-240">      // Release this block to decrement the reference count.</span>
-<span class="source-line-no">241</span><span id="line-241">      existingBlock.release();</span>
-<span class="source-line-no">242</span><span id="line-242">    }</span>
-<span class="source-line-no">243</span><span id="line-243">  }</span>
-<span class="source-line-no">244</span><span id="line-244"></span>
-<span class="source-line-no">245</span><span id="line-245">  private static final int DEFAULT_MAX = 1000000;</span>
-<span class="source-line-no">246</span><span id="line-246"></span>
-<span class="source-line-no">247</span><span id="line-247">  public static int getMaxCachedBlocksByFile(Configuration conf) {</span>
-<span class="source-line-no">248</span><span id="line-248">    return conf == null ? DEFAULT_MAX : conf.getInt("hbase.ui.blockcache.by.file.max", DEFAULT_MAX);</span>
-<span class="source-line-no">249</span><span id="line-249">  }</span>
-<span class="source-line-no">250</span><span id="line-250"></span>
-<span class="source-line-no">251</span><span id="line-251">  /**</span>
-<span class="source-line-no">252</span><span id="line-252">   * Similarly to HFileBlock.Writer.getBlockForCaching(), creates a HFileBlock instance without</span>
-<span class="source-line-no">253</span><span id="line-253">   * checksum for caching. This is needed for when we cache blocks via readers (either prefetch or</span>
-<span class="source-line-no">254</span><span id="line-254">   * client read), otherwise we may fail equality comparison when checking against same block that</span>
-<span class="source-line-no">255</span><span id="line-255">   * may already have been cached at write time.</span>
-<span class="source-line-no">256</span><span id="line-256">   * @param cacheConf the related CacheConfig object.</span>
-<span class="source-line-no">257</span><span id="line-257">   * @param block     the HFileBlock instance to be converted.</span>
-<span class="source-line-no">258</span><span id="line-258">   * @return the resulting HFileBlock instance without checksum.</span>
-<span class="source-line-no">259</span><span id="line-259">   */</span>
-<span class="source-line-no">260</span><span id="line-260">  public static HFileBlock getBlockForCaching(CacheConfig cacheConf, HFileBlock block) {</span>
-<span class="source-line-no">261</span><span id="line-261">    // Calculate how many bytes we need for checksum on the tail of the block.</span>
-<span class="source-line-no">262</span><span id="line-262">    int numBytes = cacheConf.shouldCacheCompressed(block.getBlockType().getCategory())</span>
-<span class="source-line-no">263</span><span id="line-263">      ? 0</span>
-<span class="source-line-no">264</span><span id="line-264">      : (int) ChecksumUtil.numBytes(block.getOnDiskDataSizeWithHeader(),</span>
-<span class="source-line-no">265</span><span id="line-265">        block.getHFileContext().getBytesPerChecksum());</span>
-<span class="source-line-no">266</span><span id="line-266">    ByteBuff buff = block.getBufferReadOnly();</span>
-<span class="source-line-no">267</span><span id="line-267">    HFileBlockBuilder builder = new HFileBlockBuilder();</span>
-<span class="source-line-no">268</span><span id="line-268">    return builder.withBlockType(block.getBlockType())</span>
-<span class="source-line-no">269</span><span id="line-269">      .withOnDiskSizeWithoutHeader(block.getOnDiskSizeWithoutHeader())</span>
-<span class="source-line-no">270</span><span id="line-270">      .withUncompressedSizeWithoutHeader(block.getUncompressedSizeWithoutHeader())</span>
-<span class="source-line-no">271</span><span id="line-271">      .withPrevBlockOffset(block.getPrevBlockOffset()).withByteBuff(buff)</span>
-<span class="source-line-no">272</span><span id="line-272">      .withFillHeader(FILL_HEADER).withOffset(block.getOffset()).withNextBlockOnDiskSize(-1)</span>
-<span class="source-line-no">273</span><span id="line-273">      .withOnDiskDataSizeWithHeader(block.getOnDiskDataSizeWithHeader() + numBytes)</span>
-<span class="source-line-no">274</span><span id="line-274">      .withHFileContext(cloneContext(block.getHFileContext()))</span>
-<span class="source-line-no">275</span><span id="line-275">      .withByteBuffAllocator(cacheConf.getByteBuffAllocator()).withShared(!buff.hasArray()).build();</span>
-<span class="source-line-no">276</span><span id="line-276">  }</span>
-<span class="source-line-no">277</span><span id="line-277"></span>
-<span class="source-line-no">278</span><span id="line-278">  public static HFileContext cloneContext(HFileContext context) {</span>
-<span class="source-line-no">279</span><span id="line-279">    HFileContext newContext = new HFileContextBuilder().withBlockSize(context.getBlocksize())</span>
-<span class="source-line-no">280</span><span id="line-280">      .withBytesPerCheckSum(0).withChecksumType(ChecksumType.NULL) // no checksums in cached data</span>
-<span class="source-line-no">281</span><span id="line-281">      .withCompression(context.getCompression())</span>
-<span class="source-line-no">282</span><span id="line-282">      .withDataBlockEncoding(context.getDataBlockEncoding())</span>
-<span class="source-line-no">283</span><span id="line-283">      .withHBaseCheckSum(context.isUseHBaseChecksum()).withCompressTags(context.isCompressTags())</span>
-<span class="source-line-no">284</span><span id="line-284">      .withIncludesMvcc(context.isIncludesMvcc()).withIncludesTags(context.isIncludesTags())</span>
-<span class="source-line-no">285</span><span id="line-285">      .withColumnFamily(context.getColumnFamily()).withTableName(context.getTableName()).build();</span>
-<span class="source-line-no">286</span><span id="line-286">    return newContext;</span>
-<span class="source-line-no">287</span><span id="line-287">  }</span>
-<span class="source-line-no">288</span><span id="line-288"></span>
-<span class="source-line-no">289</span><span id="line-289">  /**</span>
-<span class="source-line-no">290</span><span id="line-290">   * Use one of these to keep a running account of cached blocks by file. Throw it away when done.</span>
-<span class="source-line-no">291</span><span id="line-291">   * This is different than metrics in that it is stats on current state of a cache. See</span>
-<span class="source-line-no">292</span><span id="line-292">   * getLoadedCachedBlocksByFile</span>
-<span class="source-line-no">293</span><span id="line-293">   */</span>
-<span class="source-line-no">294</span><span id="line-294">  public static class CachedBlocksByFile {</span>
-<span class="source-line-no">295</span><span id="line-295">    private int count;</span>
-<span class="source-line-no">296</span><span id="line-296">    private int dataBlockCount;</span>
-<span class="source-line-no">297</span><span id="line-297">    private long size;</span>
-<span class="source-line-no">298</span><span id="line-298">    private long dataSize;</span>
-<span class="source-line-no">299</span><span id="line-299">    private final long now = System.nanoTime();</span>
-<span class="source-line-no">300</span><span id="line-300">    /**</span>
-<span class="source-line-no">301</span><span id="line-301">     * How many blocks to look at before we give up. There could be many millions of blocks. We</span>
-<span class="source-line-no">302</span><span id="line-302">     * don't want the ui to freeze while we run through 1B blocks... users will think hbase dead. UI</span>
-<span class="source-line-no">303</span><span id="line-303">     * displays warning in red when stats are incomplete.</span>
-<span class="source-line-no">304</span><span id="line-304">     */</span>
-<span class="source-line-no">305</span><span id="line-305">    private final int max;</span>
-<span class="source-line-no">306</span><span id="line-306"></span>
-<span class="source-line-no">307</span><span id="line-307">    CachedBlocksByFile() {</span>
-<span class="source-line-no">308</span><span id="line-308">      this(null);</span>
-<span class="source-line-no">309</span><span id="line-309">    }</span>
-<span class="source-line-no">310</span><span id="line-310"></span>
-<span class="source-line-no">311</span><span id="line-311">    CachedBlocksByFile(final Configuration c) {</span>
-<span class="source-line-no">312</span><span id="line-312">      this.max = getMaxCachedBlocksByFile(c);</span>
-<span class="source-line-no">313</span><span id="line-313">    }</span>
-<span class="source-line-no">314</span><span id="line-314"></span>
-<span class="source-line-no">315</span><span id="line-315">    /**</span>
-<span class="source-line-no">316</span><span id="line-316">     * Map by filename. use concurent utils because we want our Map and contained blocks sorted.</span>
-<span class="source-line-no">317</span><span id="line-317">     */</span>
-<span class="source-line-no">318</span><span id="line-318">    private transient NavigableMap&lt;String, NavigableSet&lt;CachedBlock&gt;&gt; cachedBlockByFile =</span>
-<span class="source-line-no">319</span><span id="line-319">      new ConcurrentSkipListMap&lt;&gt;();</span>
-<span class="source-line-no">320</span><span id="line-320">    FastLongHistogram hist = new FastLongHistogram();</span>
-<span class="source-line-no">321</span><span id="line-321"></span>
-<span class="source-line-no">322</span><span id="line-322">    /** Returns True if full.... if we won't be adding any more. */</span>
-<span class="source-line-no">323</span><span id="line-323">    public boolean update(final CachedBlock cb) {</span>
-<span class="source-line-no">324</span><span id="line-324">      if (isFull()) return true;</span>
-<span class="source-line-no">325</span><span id="line-325">      NavigableSet&lt;CachedBlock&gt; set = this.cachedBlockByFile.get(cb.getFilename());</span>
-<span class="source-line-no">326</span><span id="line-326">      if (set == null) {</span>
-<span class="source-line-no">327</span><span id="line-327">        set = new ConcurrentSkipListSet&lt;&gt;();</span>
-<span class="source-line-no">328</span><span id="line-328">        this.cachedBlockByFile.put(cb.getFilename(), set);</span>
-<span class="source-line-no">329</span><span id="line-329">      }</span>
-<span class="source-line-no">330</span><span id="line-330">      set.add(cb);</span>
-<span class="source-line-no">331</span><span id="line-331">      this.size += cb.getSize();</span>
-<span class="source-line-no">332</span><span id="line-332">      this.count++;</span>
-<span class="source-line-no">333</span><span id="line-333">      BlockType bt = cb.getBlockType();</span>
-<span class="source-line-no">334</span><span id="line-334">      if (bt != null &amp;&amp; bt.isData()) {</span>
-<span class="source-line-no">335</span><span id="line-335">        this.dataBlockCount++;</span>
-<span class="source-line-no">336</span><span id="line-336">        this.dataSize += cb.getSize();</span>
-<span class="source-line-no">337</span><span id="line-337">      }</span>
-<span class="source-line-no">338</span><span id="line-338">      long age = (this.now - cb.getCachedTime()) / NANOS_PER_SECOND;</span>
-<span class="source-line-no">339</span><span id="line-339">      this.hist.add(age, 1);</span>
-<span class="source-line-no">340</span><span id="line-340">      return false;</span>
-<span class="source-line-no">341</span><span id="line-341">    }</span>
-<span class="source-line-no">342</span><span id="line-342"></span>
-<span class="source-line-no">343</span><span id="line-343">    /**</span>
-<span class="source-line-no">344</span><span id="line-344">     * @return True if full; i.e. there are more items in the cache but we only loaded up the</span>
-<span class="source-line-no">345</span><span id="line-345">     *         maximum set in configuration &lt;code&gt;hbase.ui.blockcache.by.file.max&lt;/code&gt; (Default:</span>
-<span class="source-line-no">346</span><span id="line-346">     *         DEFAULT_MAX).</span>
-<span class="source-line-no">347</span><span id="line-347">     */</span>
-<span class="source-line-no">348</span><span id="line-348">    public boolean isFull() {</span>
-<span class="source-line-no">349</span><span id="line-349">      return this.count &gt;= this.max;</span>
-<span class="source-line-no">350</span><span id="line-350">    }</span>
-<span class="source-line-no">351</span><span id="line-351"></span>
-<span class="source-line-no">352</span><span id="line-352">    public NavigableMap&lt;String, NavigableSet&lt;CachedBlock&gt;&gt; getCachedBlockStatsByFile() {</span>
-<span class="source-line-no">353</span><span id="line-353">      return this.cachedBlockByFile;</span>
-<span class="source-line-no">354</span><span id="line-354">    }</span>
-<span class="source-line-no">355</span><span id="line-355"></span>
-<span class="source-line-no">356</span><span id="line-356">    /** Returns count of blocks in the cache */</span>
-<span class="source-line-no">357</span><span id="line-357">    public int getCount() {</span>
-<span class="source-line-no">358</span><span id="line-358">      return count;</span>
-<span class="source-line-no">359</span><span id="line-359">    }</span>
-<span class="source-line-no">360</span><span id="line-360"></span>
-<span class="source-line-no">361</span><span id="line-361">    public int getDataCount() {</span>
-<span class="source-line-no">362</span><span id="line-362">      return dataBlockCount;</span>
-<span class="source-line-no">363</span><span id="line-363">    }</span>
-<span class="source-line-no">364</span><span id="line-364"></span>
-<span class="source-line-no">365</span><span id="line-365">    /** Returns size of blocks in the cache */</span>
-<span class="source-line-no">366</span><span id="line-366">    public long getSize() {</span>
-<span class="source-line-no">367</span><span id="line-367">      return size;</span>
+<span class="source-line-no">238</span><span id="line-238">      } else {</span>
+<span class="source-line-no">239</span><span id="line-239">        LOG.debug("Caching an already cached block: {}. This is harmless and can happen in rare "</span>
+<span class="source-line-no">240</span><span id="line-240">          + "cases (see HBASE-8547)", cacheKey);</span>
+<span class="source-line-no">241</span><span id="line-241">        return false;</span>
+<span class="source-line-no">242</span><span id="line-242">      }</span>
+<span class="source-line-no">243</span><span id="line-243">    } finally {</span>
+<span class="source-line-no">244</span><span id="line-244">      // Release this block to decrement the reference count.</span>
+<span class="source-line-no">245</span><span id="line-245">      existingBlock.release();</span>
+<span class="source-line-no">246</span><span id="line-246">    }</span>
+<span class="source-line-no">247</span><span id="line-247">  }</span>
+<span class="source-line-no">248</span><span id="line-248"></span>
+<span class="source-line-no">249</span><span id="line-249">  public static Set&lt;String&gt; listAllFilesNames(Map&lt;String, HRegion&gt; onlineRegions) {</span>
+<span class="source-line-no">250</span><span id="line-250">    Set&lt;String&gt; files = new HashSet&lt;&gt;();</span>
+<span class="source-line-no">251</span><span id="line-251">    onlineRegions.values().forEach(r -&gt; {</span>
+<span class="source-line-no">252</span><span id="line-252">      r.getStores().forEach(s -&gt; {</span>
+<span class="source-line-no">253</span><span id="line-253">        s.getStorefiles().forEach(f -&gt; files.add(f.getPath().getName()));</span>
+<span class="source-line-no">254</span><span id="line-254">      });</span>
+<span class="source-line-no">255</span><span id="line-255">    });</span>
+<span class="source-line-no">256</span><span id="line-256">    return files;</span>
+<span class="source-line-no">257</span><span id="line-257">  }</span>
+<span class="source-line-no">258</span><span id="line-258"></span>
+<span class="source-line-no">259</span><span id="line-259">  private static final int DEFAULT_MAX = 1000000;</span>
+<span class="source-line-no">260</span><span id="line-260"></span>
+<span class="source-line-no">261</span><span id="line-261">  public static int getMaxCachedBlocksByFile(Configuration conf) {</span>
+<span class="source-line-no">262</span><span id="line-262">    return conf == null ? DEFAULT_MAX : conf.getInt("hbase.ui.blockcache.by.file.max", DEFAULT_MAX);</span>
+<span class="source-line-no">263</span><span id="line-263">  }</span>
+<span class="source-line-no">264</span><span id="line-264"></span>
+<span class="source-line-no">265</span><span id="line-265">  /**</span>
+<span class="source-line-no">266</span><span id="line-266">   * Similarly to HFileBlock.Writer.getBlockForCaching(), creates a HFileBlock instance without</span>
+<span class="source-line-no">267</span><span id="line-267">   * checksum for caching. This is needed for when we cache blocks via readers (either prefetch or</span>
+<span class="source-line-no">268</span><span id="line-268">   * client read), otherwise we may fail equality comparison when checking against same block that</span>
+<span class="source-line-no">269</span><span id="line-269">   * may already have been cached at write time.</span>
+<span class="source-line-no">270</span><span id="line-270">   * @param cacheConf the related CacheConfig object.</span>
+<span class="source-line-no">271</span><span id="line-271">   * @param block     the HFileBlock instance to be converted.</span>
+<span class="source-line-no">272</span><span id="line-272">   * @return the resulting HFileBlock instance without checksum.</span>
+<span class="source-line-no">273</span><span id="line-273">   */</span>
+<span class="source-line-no">274</span><span id="line-274">  public static HFileBlock getBlockForCaching(CacheConfig cacheConf, HFileBlock block) {</span>
+<span class="source-line-no">275</span><span id="line-275">    // Calculate how many bytes we need for checksum on the tail of the block.</span>
+<span class="source-line-no">276</span><span id="line-276">    int numBytes = cacheConf.shouldCacheCompressed(block.getBlockType().getCategory())</span>
+<span class="source-line-no">277</span><span id="line-277">      ? 0</span>
+<span class="source-line-no">278</span><span id="line-278">      : (int) ChecksumUtil.numBytes(block.getOnDiskDataSizeWithHeader(),</span>
+<span class="source-line-no">279</span><span id="line-279">        block.getHFileContext().getBytesPerChecksum());</span>
+<span class="source-line-no">280</span><span id="line-280">    ByteBuff buff = block.getBufferReadOnly();</span>
+<span class="source-line-no">281</span><span id="line-281">    HFileBlockBuilder builder = new HFileBlockBuilder();</span>
+<span class="source-line-no">282</span><span id="line-282">    return builder.withBlockType(block.getBlockType())</span>
+<span class="source-line-no">283</span><span id="line-283">      .withOnDiskSizeWithoutHeader(block.getOnDiskSizeWithoutHeader())</span>
+<span class="source-line-no">284</span><span id="line-284">      .withUncompressedSizeWithoutHeader(block.getUncompressedSizeWithoutHeader())</span>
+<span class="source-line-no">285</span><span id="line-285">      .withPrevBlockOffset(block.getPrevBlockOffset()).withByteBuff(buff)</span>
+<span class="source-line-no">286</span><span id="line-286">      .withFillHeader(FILL_HEADER).withOffset(block.getOffset()).withNextBlockOnDiskSize(-1)</span>
+<span class="source-line-no">287</span><span id="line-287">      .withOnDiskDataSizeWithHeader(block.getOnDiskDataSizeWithHeader() + numBytes)</span>
+<span class="source-line-no">288</span><span id="line-288">      .withHFileContext(cloneContext(block.getHFileContext()))</span>
+<span class="source-line-no">289</span><span id="line-289">      .withByteBuffAllocator(cacheConf.getByteBuffAllocator()).withShared(!buff.hasArray()).build();</span>
+<span class="source-line-no">290</span><span id="line-290">  }</span>
+<span class="source-line-no">291</span><span id="line-291"></span>
+<span class="source-line-no">292</span><span id="line-292">  public static HFileContext cloneContext(HFileContext context) {</span>
+<span class="source-line-no">293</span><span id="line-293">    HFileContext newContext = new HFileContextBuilder().withBlockSize(context.getBlocksize())</span>
+<span class="source-line-no">294</span><span id="line-294">      .withBytesPerCheckSum(0).withChecksumType(ChecksumType.NULL) // no checksums in cached data</span>
+<span class="source-line-no">295</span><span id="line-295">      .withCompression(context.getCompression())</span>
+<span class="source-line-no">296</span><span id="line-296">      .withDataBlockEncoding(context.getDataBlockEncoding())</span>
+<span class="source-line-no">297</span><span id="line-297">      .withHBaseCheckSum(context.isUseHBaseChecksum()).withCompressTags(context.isCompressTags())</span>
+<span class="source-line-no">298</span><span id="line-298">      .withIncludesMvcc(context.isIncludesMvcc()).withIncludesTags(context.isIncludesTags())</span>
+<span class="source-line-no">299</span><span id="line-299">      .withColumnFamily(context.getColumnFamily()).withTableName(context.getTableName()).build();</span>
+<span class="source-line-no">300</span><span id="line-300">    return newContext;</span>
+<span class="source-line-no">301</span><span id="line-301">  }</span>
+<span class="source-line-no">302</span><span id="line-302"></span>
+<span class="source-line-no">303</span><span id="line-303">  /**</span>
+<span class="source-line-no">304</span><span id="line-304">   * Use one of these to keep a running account of cached blocks by file. Throw it away when done.</span>
+<span class="source-line-no">305</span><span id="line-305">   * This is different than metrics in that it is stats on current state of a cache. See</span>
+<span class="source-line-no">306</span><span id="line-306">   * getLoadedCachedBlocksByFile</span>
+<span class="source-line-no">307</span><span id="line-307">   */</span>
+<span class="source-line-no">308</span><span id="line-308">  public static class CachedBlocksByFile {</span>
+<span class="source-line-no">309</span><span id="line-309">    private int count;</span>
+<span class="source-line-no">310</span><span id="line-310">    private int dataBlockCount;</span>
+<span class="source-line-no">311</span><span id="line-311">    private long size;</span>
+<span class="source-line-no">312</span><span id="line-312">    private long dataSize;</span>
+<span class="source-line-no">313</span><span id="line-313">    private final long now = System.nanoTime();</span>
+<span class="source-line-no">314</span><span id="line-314">    /**</span>
+<span class="source-line-no">315</span><span id="line-315">     * How many blocks to look at before we give up. There could be many millions of blocks. We</span>
+<span class="source-line-no">316</span><span id="line-316">     * don't want the ui to freeze while we run through 1B blocks... users will think hbase dead. UI</span>
+<span class="source-line-no">317</span><span id="line-317">     * displays warning in red when stats are incomplete.</span>
+<span class="source-line-no">318</span><span id="line-318">     */</span>
+<span class="source-line-no">319</span><span id="line-319">    private final int max;</span>
+<span class="source-line-no">320</span><span id="line-320"></span>
+<span class="source-line-no">321</span><span id="line-321">    CachedBlocksByFile() {</span>
+<span class="source-line-no">322</span><span id="line-322">      this(null);</span>
+<span class="source-line-no">323</span><span id="line-323">    }</span>
+<span class="source-line-no">324</span><span id="line-324"></span>
+<span class="source-line-no">325</span><span id="line-325">    CachedBlocksByFile(final Configuration c) {</span>
+<span class="source-line-no">326</span><span id="line-326">      this.max = getMaxCachedBlocksByFile(c);</span>
+<span class="source-line-no">327</span><span id="line-327">    }</span>
+<span class="source-line-no">328</span><span id="line-328"></span>
+<span class="source-line-no">329</span><span id="line-329">    /**</span>
+<span class="source-line-no">330</span><span id="line-330">     * Map by filename. use concurent utils because we want our Map and contained blocks sorted.</span>
+<span class="source-line-no">331</span><span id="line-331">     */</span>
+<span class="source-line-no">332</span><span id="line-332">    private transient NavigableMap&lt;String, NavigableSet&lt;CachedBlock&gt;&gt; cachedBlockByFile =</span>
+<span class="source-line-no">333</span><span id="line-333">      new ConcurrentSkipListMap&lt;&gt;();</span>
+<span class="source-line-no">334</span><span id="line-334">    FastLongHistogram hist = new FastLongHistogram();</span>
+<span class="source-line-no">335</span><span id="line-335"></span>
+<span class="source-line-no">336</span><span id="line-336">    /** Returns True if full.... if we won't be adding any more. */</span>
+<span class="source-line-no">337</span><span id="line-337">    public boolean update(final CachedBlock cb) {</span>
+<span class="source-line-no">338</span><span id="line-338">      if (isFull()) return true;</span>
+<span class="source-line-no">339</span><span id="line-339">      NavigableSet&lt;CachedBlock&gt; set = this.cachedBlockByFile.get(cb.getFilename());</span>
+<span class="source-line-no">340</span><span id="line-340">      if (set == null) {</span>
+<span class="source-line-no">341</span><span id="line-341">        set = new ConcurrentSkipListSet&lt;&gt;();</span>
+<span class="source-line-no">342</span><span id="line-342">        this.cachedBlockByFile.put(cb.getFilename(), set);</span>
+<span class="source-line-no">343</span><span id="line-343">      }</span>
+<span class="source-line-no">344</span><span id="line-344">      set.add(cb);</span>
+<span class="source-line-no">345</span><span id="line-345">      this.size += cb.getSize();</span>
+<span class="source-line-no">346</span><span id="line-346">      this.count++;</span>
+<span class="source-line-no">347</span><span id="line-347">      BlockType bt = cb.getBlockType();</span>
+<span class="source-line-no">348</span><span id="line-348">      if (bt != null &amp;&amp; bt.isData()) {</span>
+<span class="source-line-no">349</span><span id="line-349">        this.dataBlockCount++;</span>
+<span class="source-line-no">350</span><span id="line-350">        this.dataSize += cb.getSize();</span>
+<span class="source-line-no">351</span><span id="line-351">      }</span>
+<span class="source-line-no">352</span><span id="line-352">      long age = (this.now - cb.getCachedTime()) / NANOS_PER_SECOND;</span>
+<span class="source-line-no">353</span><span id="line-353">      this.hist.add(age, 1);</span>
+<span class="source-line-no">354</span><span id="line-354">      return false;</span>
+<span class="source-line-no">355</span><span id="line-355">    }</span>
+<span class="source-line-no">356</span><span id="line-356"></span>
+<span class="source-line-no">357</span><span id="line-357">    /**</span>
+<span class="source-line-no">358</span><span id="line-358">     * @return True if full; i.e. there are more items in the cache but we only loaded up the</span>
+<span class="source-line-no">359</span><span id="line-359">     *         maximum set in configuration &lt;code&gt;hbase.ui.blockcache.by.file.max&lt;/code&gt; (Default:</span>
+<span class="source-line-no">360</span><span id="line-360">     *         DEFAULT_MAX).</span>
+<span class="source-line-no">361</span><span id="line-361">     */</span>
+<span class="source-line-no">362</span><span id="line-362">    public boolean isFull() {</span>
+<span class="source-line-no">363</span><span id="line-363">      return this.count &gt;= this.max;</span>
+<span class="source-line-no">364</span><span id="line-364">    }</span>
+<span class="source-line-no">365</span><span id="line-365"></span>
+<span class="source-line-no">366</span><span id="line-366">    public NavigableMap&lt;String, NavigableSet&lt;CachedBlock&gt;&gt; getCachedBlockStatsByFile() {</span>
+<span class="source-line-no">367</span><span id="line-367">      return this.cachedBlockByFile;</span>
 <span class="source-line-no">368</span><span id="line-368">    }</span>
 <span class="source-line-no">369</span><span id="line-369"></span>
-<span class="source-line-no">370</span><span id="line-370">    /** Returns Size of data. */</span>
-<span class="source-line-no">371</span><span id="line-371">    public long getDataSize() {</span>
-<span class="source-line-no">372</span><span id="line-372">      return dataSize;</span>
+<span class="source-line-no">370</span><span id="line-370">    /** Returns count of blocks in the cache */</span>
+<span class="source-line-no">371</span><span id="line-371">    public int getCount() {</span>
+<span class="source-line-no">372</span><span id="line-372">      return count;</span>
 <span class="source-line-no">373</span><span id="line-373">    }</span>
 <span class="source-line-no">374</span><span id="line-374"></span>
-<span class="source-line-no">375</span><span id="line-375">    public AgeSnapshot getAgeInCacheSnapshot() {</span>
-<span class="source-line-no">376</span><span id="line-376">      return new AgeSnapshot(this.hist);</span>
+<span class="source-line-no">375</span><span id="line-375">    public int getDataCount() {</span>
+<span class="source-line-no">376</span><span id="line-376">      return dataBlockCount;</span>
 <span class="source-line-no">377</span><span id="line-377">    }</span>
 <span class="source-line-no">378</span><span id="line-378"></span>
-<span class="source-line-no">379</span><span id="line-379">    @Override</span>
-<span class="source-line-no">380</span><span id="line-380">    public String toString() {</span>
-<span class="source-line-no">381</span><span id="line-381">      AgeSnapshot snapshot = getAgeInCacheSnapshot();</span>
-<span class="source-line-no">382</span><span id="line-382">      return "count=" + count + ", dataBlockCount=" + dataBlockCount + ", size=" + size</span>
-<span class="source-line-no">383</span><span id="line-383">        + ", dataSize=" + getDataSize() + ", mean age=" + snapshot.getMean() + ", min age="</span>
-<span class="source-line-no">384</span><span id="line-384">        + snapshot.getMin() + ", max age=" + snapshot.getMax() + ", 75th percentile age="</span>
-<span class="source-line-no">385</span><span id="line-385">        + snapshot.get75thPercentile() + ", 95th percentile age=" + snapshot.get95thPercentile()</span>
-<span class="source-line-no">386</span><span id="line-386">        + ", 98th percentile age=" + snapshot.get98thPercentile() + ", 99th percentile age="</span>
-<span class="source-line-no">387</span><span id="line-387">        + snapshot.get99thPercentile() + ", 99.9th percentile age=" + snapshot.get99thPercentile();</span>
-<span class="source-line-no">388</span><span id="line-388">    }</span>
-<span class="source-line-no">389</span><span id="line-389">  }</span>
-<span class="source-line-no">390</span><span id="line-390">}</span>
+<span class="source-line-no">379</span><span id="line-379">    /** Returns size of blocks in the cache */</span>
+<span class="source-line-no">380</span><span id="line-380">    public long getSize() {</span>
+<span class="source-line-no">381</span><span id="line-381">      return size;</span>
+<span class="source-line-no">382</span><span id="line-382">    }</span>
+<span class="source-line-no">383</span><span id="line-383"></span>
+<span class="source-line-no">384</span><span id="line-384">    /** Returns Size of data. */</span>
+<span class="source-line-no">385</span><span id="line-385">    public long getDataSize() {</span>
+<span class="source-line-no">386</span><span id="line-386">      return dataSize;</span>
+<span class="source-line-no">387</span><span id="line-387">    }</span>
+<span class="source-line-no">388</span><span id="line-388"></span>
+<span class="source-line-no">389</span><span id="line-389">    public AgeSnapshot getAgeInCacheSnapshot() {</span>
+<span class="source-line-no">390</span><span id="line-390">      return new AgeSnapshot(this.hist);</span>
+<span class="source-line-no">391</span><span id="line-391">    }</span>
+<span class="source-line-no">392</span><span id="line-392"></span>
+<span class="source-line-no">393</span><span id="line-393">    @Override</span>
+<span class="source-line-no">394</span><span id="line-394">    public String toString() {</span>
+<span class="source-line-no">395</span><span id="line-395">      AgeSnapshot snapshot = getAgeInCacheSnapshot();</span>
+<span class="source-line-no">396</span><span id="line-396">      return "count=" + count + ", dataBlockCount=" + dataBlockCount + ", size=" + size</span>
+<span class="source-line-no">397</span><span id="line-397">        + ", dataSize=" + getDataSize() + ", mean age=" + snapshot.getMean() + ", min age="</span>
+<span class="source-line-no">398</span><span id="line-398">        + snapshot.getMin() + ", max age=" + snapshot.getMax() + ", 75th percentile age="</span>
+<span class="source-line-no">399</span><span id="line-399">        + snapshot.get75thPercentile() + ", 95th percentile age=" + snapshot.get95thPercentile()</span>
+<span class="source-line-no">400</span><span id="line-400">        + ", 98th percentile age=" + snapshot.get98thPercentile() + ", 99th percentile age="</span>
+<span class="source-line-no">401</span><span id="line-401">        + snapshot.get99thPercentile() + ", 99.9th percentile age=" + snapshot.get99thPercentile();</span>
+<span class="source-line-no">402</span><span id="line-402">    }</span>
+<span class="source-line-no">403</span><span id="line-403">  }</span>
+<span class="source-line-no">404</span><span id="line-404">}</span>
 
 
 
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/MemcachedBlockCache.html b/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/MemcachedBlockCache.html
index c6db04f2daf..a9bbb02331f 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/MemcachedBlockCache.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/io/hfile/MemcachedBlockCache.html
@@ -45,347 +45,353 @@
 <span class="source-line-no">032</span><span id="line-32">import java.util.concurrent.TimeUnit;</span>
 <span class="source-line-no">033</span><span id="line-33">import java.util.concurrent.atomic.AtomicLong;</span>
 <span class="source-line-no">034</span><span id="line-34">import net.spy.memcached.CachedData;</span>
-<span class="source-line-no">035</span><span id="line-35">import net.spy.memcached.ConnectionFactoryBuilder;</span>
-<span class="source-line-no">036</span><span id="line-36">import net.spy.memcached.FailureMode;</span>
-<span class="source-line-no">037</span><span id="line-37">import net.spy.memcached.MemcachedClient;</span>
-<span class="source-line-no">038</span><span id="line-38">import net.spy.memcached.OperationTimeoutException;</span>
-<span class="source-line-no">039</span><span id="line-39">import net.spy.memcached.transcoders.Transcoder;</span>
-<span class="source-line-no">040</span><span id="line-40">import org.apache.hadoop.conf.Configuration;</span>
-<span class="source-line-no">041</span><span id="line-41">import org.apache.hadoop.hbase.io.ByteBuffAllocator;</span>
-<span class="source-line-no">042</span><span id="line-42">import org.apache.hadoop.hbase.nio.ByteBuff;</span>
-<span class="source-line-no">043</span><span id="line-43">import org.apache.hadoop.hbase.nio.SingleByteBuff;</span>
-<span class="source-line-no">044</span><span id="line-44">import org.apache.hadoop.hbase.trace.TraceUtil;</span>
-<span class="source-line-no">045</span><span id="line-45">import org.apache.hadoop.hbase.util.Addressing;</span>
-<span class="source-line-no">046</span><span id="line-46">import org.apache.hadoop.util.StringUtils;</span>
-<span class="source-line-no">047</span><span id="line-47">import org.apache.yetus.audience.InterfaceAudience;</span>
-<span class="source-line-no">048</span><span id="line-48">import org.slf4j.Logger;</span>
-<span class="source-line-no">049</span><span id="line-49">import org.slf4j.LoggerFactory;</span>
-<span class="source-line-no">050</span><span id="line-50"></span>
-<span class="source-line-no">051</span><span id="line-51">import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;</span>
-<span class="source-line-no">052</span><span id="line-52"></span>
-<span class="source-line-no">053</span><span id="line-53">/**</span>
-<span class="source-line-no">054</span><span id="line-54"> * Class to store blocks into memcached. This should only be used on a cluster of Memcached daemons</span>
-<span class="source-line-no">055</span><span id="line-55"> * that are tuned well and have a good network connection to the HBase regionservers. Any other use</span>
-<span class="source-line-no">056</span><span id="line-56"> * will likely slow down HBase greatly.</span>
-<span class="source-line-no">057</span><span id="line-57"> */</span>
-<span class="source-line-no">058</span><span id="line-58">@InterfaceAudience.Private</span>
-<span class="source-line-no">059</span><span id="line-59">@SuppressWarnings("FutureReturnValueIgnored")</span>
-<span class="source-line-no">060</span><span id="line-60">public class MemcachedBlockCache implements BlockCache {</span>
-<span class="source-line-no">061</span><span id="line-61">  private static final Logger LOG = LoggerFactory.getLogger(MemcachedBlockCache.class.getName());</span>
-<span class="source-line-no">062</span><span id="line-62"></span>
-<span class="source-line-no">063</span><span id="line-63">  // Some memcache versions won't take more than 1024 * 1024. So set the limit below</span>
-<span class="source-line-no">064</span><span id="line-64">  // that just in case this client is used with those versions.</span>
-<span class="source-line-no">065</span><span id="line-65">  public static final int MAX_SIZE = 1020 * 1024;</span>
-<span class="source-line-no">066</span><span id="line-66"></span>
-<span class="source-line-no">067</span><span id="line-67">  // Start memcached with -I &lt;MAX_SIZE&gt; to ensure it has the ability to store blocks of this size</span>
-<span class="source-line-no">068</span><span id="line-68">  public static final int MAX_TIME = 60 * 60 * 24 * 30; // 30 days, max allowed per the memcached</span>
-<span class="source-line-no">069</span><span id="line-69">                                                        // spec</span>
-<span class="source-line-no">070</span><span id="line-70"></span>
-<span class="source-line-no">071</span><span id="line-71">  // Config key for what memcached servers to use.</span>
-<span class="source-line-no">072</span><span id="line-72">  // They should be specified in a comma sperated list with ports.</span>
-<span class="source-line-no">073</span><span id="line-73">  // like:</span>
-<span class="source-line-no">074</span><span id="line-74">  //</span>
-<span class="source-line-no">075</span><span id="line-75">  // host1:11211,host3:8080,host4:11211</span>
-<span class="source-line-no">076</span><span id="line-76">  public static final String MEMCACHED_CONFIG_KEY = "hbase.cache.memcached.servers";</span>
-<span class="source-line-no">077</span><span id="line-77">  public static final String MEMCACHED_TIMEOUT_KEY = "hbase.cache.memcached.timeout";</span>
-<span class="source-line-no">078</span><span id="line-78">  public static final String MEMCACHED_OPTIMEOUT_KEY = "hbase.cache.memcached.optimeout";</span>
-<span class="source-line-no">079</span><span id="line-79">  public static final String MEMCACHED_OPTIMIZE_KEY = "hbase.cache.memcached.spy.optimze";</span>
-<span class="source-line-no">080</span><span id="line-80">  public static final long MEMCACHED_DEFAULT_TIMEOUT = 500;</span>
-<span class="source-line-no">081</span><span id="line-81">  public static final boolean MEMCACHED_OPTIMIZE_DEFAULT = false;</span>
-<span class="source-line-no">082</span><span id="line-82">  public static final int STAT_THREAD_PERIOD = 60 * 5;</span>
-<span class="source-line-no">083</span><span id="line-83"></span>
-<span class="source-line-no">084</span><span id="line-84">  private final MemcachedClient client;</span>
-<span class="source-line-no">085</span><span id="line-85">  private final HFileBlockTranscoder tc = new HFileBlockTranscoder();</span>
-<span class="source-line-no">086</span><span id="line-86">  private final CacheStats cacheStats = new CacheStats("MemcachedBlockCache");</span>
-<span class="source-line-no">087</span><span id="line-87">  private final AtomicLong cachedCount = new AtomicLong();</span>
-<span class="source-line-no">088</span><span id="line-88">  private final AtomicLong notCachedCount = new AtomicLong();</span>
-<span class="source-line-no">089</span><span id="line-89">  private final AtomicLong cacheErrorCount = new AtomicLong();</span>
-<span class="source-line-no">090</span><span id="line-90">  private final AtomicLong timeoutCount = new AtomicLong();</span>
-<span class="source-line-no">091</span><span id="line-91"></span>
-<span class="source-line-no">092</span><span id="line-92">  /** Statistics thread schedule pool (for heavy debugging, could remove) */</span>
-<span class="source-line-no">093</span><span id="line-93">  private transient final ScheduledExecutorService scheduleThreadPool =</span>
-<span class="source-line-no">094</span><span id="line-94">    Executors.newScheduledThreadPool(1, new ThreadFactoryBuilder()</span>
-<span class="source-line-no">095</span><span id="line-95">      .setNameFormat("MemcachedBlockCacheStatsExecutor").setDaemon(true).build());</span>
-<span class="source-line-no">096</span><span id="line-96"></span>
-<span class="source-line-no">097</span><span id="line-97">  public MemcachedBlockCache(Configuration c) throws IOException {</span>
-<span class="source-line-no">098</span><span id="line-98">    LOG.info("Creating MemcachedBlockCache");</span>
-<span class="source-line-no">099</span><span id="line-99"></span>
-<span class="source-line-no">100</span><span id="line-100">    long opTimeout = c.getLong(MEMCACHED_OPTIMEOUT_KEY, MEMCACHED_DEFAULT_TIMEOUT);</span>
-<span class="source-line-no">101</span><span id="line-101">    long queueTimeout = c.getLong(MEMCACHED_TIMEOUT_KEY, opTimeout + MEMCACHED_DEFAULT_TIMEOUT);</span>
-<span class="source-line-no">102</span><span id="line-102">    boolean optimize = c.getBoolean(MEMCACHED_OPTIMIZE_KEY, MEMCACHED_OPTIMIZE_DEFAULT);</span>
-<span class="source-line-no">103</span><span id="line-103"></span>
-<span class="source-line-no">104</span><span id="line-104">    ConnectionFactoryBuilder builder =</span>
-<span class="source-line-no">105</span><span id="line-105">      new ConnectionFactoryBuilder().setOpTimeout(opTimeout).setOpQueueMaxBlockTime(queueTimeout)</span>
-<span class="source-line-no">106</span><span id="line-106">        .setFailureMode(FailureMode.Redistribute).setShouldOptimize(optimize).setDaemon(true)</span>
-<span class="source-line-no">107</span><span id="line-107">        .setUseNagleAlgorithm(false).setReadBufferSize(MAX_SIZE);</span>
-<span class="source-line-no">108</span><span id="line-108"></span>
-<span class="source-line-no">109</span><span id="line-109">    // Assume only the localhost is serving memcached.</span>
-<span class="source-line-no">110</span><span id="line-110">    // A la mcrouter or co-locating memcached with split regionservers.</span>
-<span class="source-line-no">111</span><span id="line-111">    //</span>
-<span class="source-line-no">112</span><span id="line-112">    // If this config is a pool of memcached servers they will all be used according to the</span>
-<span class="source-line-no">113</span><span id="line-113">    // default hashing scheme defined by the memcached client. Spy Memecache client in this</span>
-<span class="source-line-no">114</span><span id="line-114">    // case.</span>
-<span class="source-line-no">115</span><span id="line-115">    String serverListString = c.get(MEMCACHED_CONFIG_KEY, "localhost:11211");</span>
-<span class="source-line-no">116</span><span id="line-116">    String[] servers = serverListString.split(",");</span>
-<span class="source-line-no">117</span><span id="line-117">    // MemcachedClient requires InetSocketAddresses, we have to create them now. Implies any</span>
-<span class="source-line-no">118</span><span id="line-118">    // resolved identities cannot have their address mappings changed while the MemcachedClient</span>
-<span class="source-line-no">119</span><span id="line-119">    // instance is alive. We won't get a chance to trigger re-resolution.</span>
-<span class="source-line-no">120</span><span id="line-120">    List&lt;InetSocketAddress&gt; serverAddresses = new ArrayList&lt;&gt;(servers.length);</span>
-<span class="source-line-no">121</span><span id="line-121">    for (String s : servers) {</span>
-<span class="source-line-no">122</span><span id="line-122">      serverAddresses.add(Addressing.createInetSocketAddressFromHostAndPortStr(s));</span>
-<span class="source-line-no">123</span><span id="line-123">    }</span>
-<span class="source-line-no">124</span><span id="line-124"></span>
-<span class="source-line-no">125</span><span id="line-125">    client = new MemcachedClient(builder.build(), serverAddresses);</span>
-<span class="source-line-no">126</span><span id="line-126">    this.scheduleThreadPool.scheduleAtFixedRate(new StatisticsThread(this), STAT_THREAD_PERIOD,</span>
-<span class="source-line-no">127</span><span id="line-127">      STAT_THREAD_PERIOD, TimeUnit.SECONDS);</span>
-<span class="source-line-no">128</span><span id="line-128">  }</span>
-<span class="source-line-no">129</span><span id="line-129"></span>
-<span class="source-line-no">130</span><span id="line-130">  @Override</span>
-<span class="source-line-no">131</span><span id="line-131">  public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf, boolean inMemory) {</span>
-<span class="source-line-no">132</span><span id="line-132">    cacheBlock(cacheKey, buf);</span>
-<span class="source-line-no">133</span><span id="line-133">  }</span>
-<span class="source-line-no">134</span><span id="line-134"></span>
-<span class="source-line-no">135</span><span id="line-135">  @Override</span>
-<span class="source-line-no">136</span><span id="line-136">  public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf) {</span>
-<span class="source-line-no">137</span><span id="line-137">    if (buf instanceof HFileBlock) {</span>
-<span class="source-line-no">138</span><span id="line-138">      if (buf.getSerializedLength() &gt; MAX_SIZE) {</span>
-<span class="source-line-no">139</span><span id="line-139">        LOG.debug("Block of type {} with key {} is too large, size={}, max={}, will not cache",</span>
-<span class="source-line-no">140</span><span id="line-140">          buf.getClass(), cacheKey, buf.getSerializedLength(), MAX_SIZE);</span>
-<span class="source-line-no">141</span><span id="line-141">        notCachedCount.incrementAndGet();</span>
-<span class="source-line-no">142</span><span id="line-142">        return;</span>
-<span class="source-line-no">143</span><span id="line-143">      }</span>
-<span class="source-line-no">144</span><span id="line-144">      client.set(cacheKey.toString(), MAX_TIME, (HFileBlock) buf, tc).addListener(f -&gt; {</span>
-<span class="source-line-no">145</span><span id="line-145">        try {</span>
-<span class="source-line-no">146</span><span id="line-146">          f.get();</span>
-<span class="source-line-no">147</span><span id="line-147">          cachedCount.incrementAndGet();</span>
-<span class="source-line-no">148</span><span id="line-148">        } catch (Exception e) {</span>
-<span class="source-line-no">149</span><span id="line-149">          LOG.warn("Failed to cache block with key " + cacheKey, e);</span>
-<span class="source-line-no">150</span><span id="line-150">          cacheErrorCount.incrementAndGet();</span>
-<span class="source-line-no">151</span><span id="line-151">        }</span>
-<span class="source-line-no">152</span><span id="line-152">      });</span>
-<span class="source-line-no">153</span><span id="line-153">    } else {</span>
-<span class="source-line-no">154</span><span id="line-154">      LOG.debug("Can not cache Cacheables of type {} with key {}", buf.getClass(), cacheKey);</span>
-<span class="source-line-no">155</span><span id="line-155">      notCachedCount.incrementAndGet();</span>
-<span class="source-line-no">156</span><span id="line-156">    }</span>
-<span class="source-line-no">157</span><span id="line-157">  }</span>
-<span class="source-line-no">158</span><span id="line-158"></span>
-<span class="source-line-no">159</span><span id="line-159">  @Override</span>
-<span class="source-line-no">160</span><span id="line-160">  public Cacheable getBlock(BlockCacheKey cacheKey, boolean caching, boolean repeat,</span>
-<span class="source-line-no">161</span><span id="line-161">    boolean updateCacheMetrics) {</span>
-<span class="source-line-no">162</span><span id="line-162">    // Assume that nothing is the block cache</span>
-<span class="source-line-no">163</span><span id="line-163">    HFileBlock result = null;</span>
-<span class="source-line-no">164</span><span id="line-164">    Span span = TraceUtil.getGlobalTracer().spanBuilder("MemcachedBlockCache.getBlock").startSpan();</span>
-<span class="source-line-no">165</span><span id="line-165">    try (Scope traceScope = span.makeCurrent()) {</span>
-<span class="source-line-no">166</span><span id="line-166">      result = client.get(cacheKey.toString(), tc);</span>
-<span class="source-line-no">167</span><span id="line-167">    } catch (Exception e) {</span>
-<span class="source-line-no">168</span><span id="line-168">      // Catch a pretty broad set of exceptions to limit any changes in the memcache client</span>
-<span class="source-line-no">169</span><span id="line-169">      // and how it handles failures from leaking into the read path.</span>
-<span class="source-line-no">170</span><span id="line-170">      if (</span>
-<span class="source-line-no">171</span><span id="line-171">        (e instanceof OperationTimeoutException) || ((e instanceof RuntimeException)</span>
-<span class="source-line-no">172</span><span id="line-172">          &amp;&amp; (e.getCause() instanceof OperationTimeoutException))</span>
-<span class="source-line-no">173</span><span id="line-173">      ) {</span>
-<span class="source-line-no">174</span><span id="line-174">        timeoutCount.incrementAndGet();</span>
-<span class="source-line-no">175</span><span id="line-175">        if (LOG.isDebugEnabled()) {</span>
-<span class="source-line-no">176</span><span id="line-176">          LOG.debug("Timeout getting key " + cacheKey.toString(), e);</span>
-<span class="source-line-no">177</span><span id="line-177">        }</span>
-<span class="source-line-no">178</span><span id="line-178">      } else {</span>
-<span class="source-line-no">179</span><span id="line-179">        cacheErrorCount.incrementAndGet();</span>
-<span class="source-line-no">180</span><span id="line-180">        if (LOG.isDebugEnabled()) {</span>
-<span class="source-line-no">181</span><span id="line-181">          LOG.debug("Exception getting key " + cacheKey.toString(), e);</span>
-<span class="source-line-no">182</span><span id="line-182">        }</span>
-<span class="source-line-no">183</span><span id="line-183">      }</span>
-<span class="source-line-no">184</span><span id="line-184">      result = null;</span>
-<span class="source-line-no">185</span><span id="line-185">    } finally {</span>
-<span class="source-line-no">186</span><span id="line-186">      span.end();</span>
-<span class="source-line-no">187</span><span id="line-187">      if (updateCacheMetrics) {</span>
-<span class="source-line-no">188</span><span id="line-188">        if (result == null) {</span>
-<span class="source-line-no">189</span><span id="line-189">          cacheStats.miss(caching, cacheKey.isPrimary(), cacheKey.getBlockType());</span>
-<span class="source-line-no">190</span><span id="line-190">        } else {</span>
-<span class="source-line-no">191</span><span id="line-191">          cacheStats.hit(caching, cacheKey.isPrimary(), cacheKey.getBlockType());</span>
-<span class="source-line-no">192</span><span id="line-192">        }</span>
-<span class="source-line-no">193</span><span id="line-193">      }</span>
-<span class="source-line-no">194</span><span id="line-194">    }</span>
-<span class="source-line-no">195</span><span id="line-195">    return result;</span>
-<span class="source-line-no">196</span><span id="line-196">  }</span>
-<span class="source-line-no">197</span><span id="line-197"></span>
-<span class="source-line-no">198</span><span id="line-198">  @Override</span>
-<span class="source-line-no">199</span><span id="line-199">  public boolean evictBlock(BlockCacheKey cacheKey) {</span>
-<span class="source-line-no">200</span><span id="line-200">    try {</span>
-<span class="source-line-no">201</span><span id="line-201">      cacheStats.evict();</span>
-<span class="source-line-no">202</span><span id="line-202">      return client.delete(cacheKey.toString()).get();</span>
-<span class="source-line-no">203</span><span id="line-203">    } catch (InterruptedException e) {</span>
-<span class="source-line-no">204</span><span id="line-204">      LOG.warn("Error deleting " + cacheKey.toString(), e);</span>
-<span class="source-line-no">205</span><span id="line-205">      Thread.currentThread().interrupt();</span>
-<span class="source-line-no">206</span><span id="line-206">    } catch (ExecutionException e) {</span>
-<span class="source-line-no">207</span><span id="line-207">      if (LOG.isDebugEnabled()) {</span>
-<span class="source-line-no">208</span><span id="line-208">        LOG.debug("Error deleting " + cacheKey.toString(), e);</span>
-<span class="source-line-no">209</span><span id="line-209">      }</span>
-<span class="source-line-no">210</span><span id="line-210">    }</span>
-<span class="source-line-no">211</span><span id="line-211">    return false;</span>
-<span class="source-line-no">212</span><span id="line-212">  }</span>
-<span class="source-line-no">213</span><span id="line-213"></span>
-<span class="source-line-no">214</span><span id="line-214">  /**</span>
-<span class="source-line-no">215</span><span id="line-215">   * This method does nothing so that memcached can handle all evictions.</span>
-<span class="source-line-no">216</span><span id="line-216">   */</span>
-<span class="source-line-no">217</span><span id="line-217">  @Override</span>
-<span class="source-line-no">218</span><span id="line-218">  public int evictBlocksByHfileName(String hfileName) {</span>
-<span class="source-line-no">219</span><span id="line-219">    return 0;</span>
-<span class="source-line-no">220</span><span id="line-220">  }</span>
-<span class="source-line-no">221</span><span id="line-221"></span>
-<span class="source-line-no">222</span><span id="line-222">  @Override</span>
-<span class="source-line-no">223</span><span id="line-223">  public CacheStats getStats() {</span>
-<span class="source-line-no">224</span><span id="line-224">    return cacheStats;</span>
-<span class="source-line-no">225</span><span id="line-225">  }</span>
-<span class="source-line-no">226</span><span id="line-226"></span>
-<span class="source-line-no">227</span><span id="line-227">  @Override</span>
-<span class="source-line-no">228</span><span id="line-228">  public void shutdown() {</span>
-<span class="source-line-no">229</span><span id="line-229">    client.shutdown();</span>
-<span class="source-line-no">230</span><span id="line-230">    this.scheduleThreadPool.shutdown();</span>
-<span class="source-line-no">231</span><span id="line-231">    for (int i = 0; i &lt; 10; i++) {</span>
-<span class="source-line-no">232</span><span id="line-232">      if (!this.scheduleThreadPool.isShutdown()) {</span>
-<span class="source-line-no">233</span><span id="line-233">        try {</span>
-<span class="source-line-no">234</span><span id="line-234">          Thread.sleep(10);</span>
-<span class="source-line-no">235</span><span id="line-235">        } catch (InterruptedException e) {</span>
-<span class="source-line-no">236</span><span id="line-236">          LOG.warn("Interrupted while sleeping");</span>
-<span class="source-line-no">237</span><span id="line-237">          Thread.currentThread().interrupt();</span>
-<span class="source-line-no">238</span><span id="line-238">          break;</span>
-<span class="source-line-no">239</span><span id="line-239">        }</span>
-<span class="source-line-no">240</span><span id="line-240">      }</span>
-<span class="source-line-no">241</span><span id="line-241">    }</span>
-<span class="source-line-no">242</span><span id="line-242">    if (!this.scheduleThreadPool.isShutdown()) {</span>
-<span class="source-line-no">243</span><span id="line-243">      List&lt;Runnable&gt; runnables = this.scheduleThreadPool.shutdownNow();</span>
-<span class="source-line-no">244</span><span id="line-244">      LOG.debug("Still running " + runnables);</span>
-<span class="source-line-no">245</span><span id="line-245">    }</span>
-<span class="source-line-no">246</span><span id="line-246">  }</span>
-<span class="source-line-no">247</span><span id="line-247"></span>
-<span class="source-line-no">248</span><span id="line-248">  @Override</span>
-<span class="source-line-no">249</span><span id="line-249">  public long size() {</span>
-<span class="source-line-no">250</span><span id="line-250">    return 0;</span>
-<span class="source-line-no">251</span><span id="line-251">  }</span>
-<span class="source-line-no">252</span><span id="line-252"></span>
-<span class="source-line-no">253</span><span id="line-253">  @Override</span>
-<span class="source-line-no">254</span><span id="line-254">  public long getMaxSize() {</span>
-<span class="source-line-no">255</span><span id="line-255">    return 0;</span>
-<span class="source-line-no">256</span><span id="line-256">  }</span>
-<span class="source-line-no">257</span><span id="line-257"></span>
-<span class="source-line-no">258</span><span id="line-258">  @Override</span>
-<span class="source-line-no">259</span><span id="line-259">  public long getFreeSize() {</span>
-<span class="source-line-no">260</span><span id="line-260">    return 0;</span>
-<span class="source-line-no">261</span><span id="line-261">  }</span>
-<span class="source-line-no">262</span><span id="line-262"></span>
-<span class="source-line-no">263</span><span id="line-263">  @Override</span>
-<span class="source-line-no">264</span><span id="line-264">  public long getCurrentSize() {</span>
-<span class="source-line-no">265</span><span id="line-265">    return 0;</span>
-<span class="source-line-no">266</span><span id="line-266">  }</span>
-<span class="source-line-no">267</span><span id="line-267"></span>
-<span class="source-line-no">268</span><span id="line-268">  @Override</span>
-<span class="source-line-no">269</span><span id="line-269">  public long getCurrentDataSize() {</span>
-<span class="source-line-no">270</span><span id="line-270">    return 0;</span>
-<span class="source-line-no">271</span><span id="line-271">  }</span>
-<span class="source-line-no">272</span><span id="line-272"></span>
-<span class="source-line-no">273</span><span id="line-273">  @Override</span>
-<span class="source-line-no">274</span><span id="line-274">  public long getBlockCount() {</span>
-<span class="source-line-no">275</span><span id="line-275">    return 0;</span>
-<span class="source-line-no">276</span><span id="line-276">  }</span>
-<span class="source-line-no">277</span><span id="line-277"></span>
-<span class="source-line-no">278</span><span id="line-278">  @Override</span>
-<span class="source-line-no">279</span><span id="line-279">  public long getDataBlockCount() {</span>
-<span class="source-line-no">280</span><span id="line-280">    return 0;</span>
-<span class="source-line-no">281</span><span id="line-281">  }</span>
-<span class="source-line-no">282</span><span id="line-282"></span>
-<span class="source-line-no">283</span><span id="line-283">  @Override</span>
-<span class="source-line-no">284</span><span id="line-284">  public Iterator&lt;CachedBlock&gt; iterator() {</span>
-<span class="source-line-no">285</span><span id="line-285">    return new Iterator&lt;CachedBlock&gt;() {</span>
-<span class="source-line-no">286</span><span id="line-286">      @Override</span>
-<span class="source-line-no">287</span><span id="line-287">      public boolean hasNext() {</span>
-<span class="source-line-no">288</span><span id="line-288">        return false;</span>
-<span class="source-line-no">289</span><span id="line-289">      }</span>
-<span class="source-line-no">290</span><span id="line-290"></span>
-<span class="source-line-no">291</span><span id="line-291">      @Override</span>
-<span class="source-line-no">292</span><span id="line-292">      public CachedBlock next() {</span>
-<span class="source-line-no">293</span><span id="line-293">        throw new NoSuchElementException("MemcachedBlockCache can't iterate over blocks.");</span>
-<span class="source-line-no">294</span><span id="line-294">      }</span>
-<span class="source-line-no">295</span><span id="line-295"></span>
-<span class="source-line-no">296</span><span id="line-296">      @Override</span>
-<span class="source-line-no">297</span><span id="line-297">      public void remove() {</span>
-<span class="source-line-no">298</span><span id="line-298"></span>
-<span class="source-line-no">299</span><span id="line-299">      }</span>
-<span class="source-line-no">300</span><span id="line-300">    };</span>
-<span class="source-line-no">301</span><span id="line-301">  }</span>
-<span class="source-line-no">302</span><span id="line-302"></span>
-<span class="source-line-no">303</span><span id="line-303">  @Override</span>
-<span class="source-line-no">304</span><span id="line-304">  public BlockCache[] getBlockCaches() {</span>
-<span class="source-line-no">305</span><span id="line-305">    return null;</span>
-<span class="source-line-no">306</span><span id="line-306">  }</span>
-<span class="source-line-no">307</span><span id="line-307"></span>
-<span class="source-line-no">308</span><span id="line-308">  /**</span>
-<span class="source-line-no">309</span><span id="line-309">   * Class to encode and decode an HFileBlock to and from memecached's resulting byte arrays.</span>
-<span class="source-line-no">310</span><span id="line-310">   */</span>
-<span class="source-line-no">311</span><span id="line-311">  private static class HFileBlockTranscoder implements Transcoder&lt;HFileBlock&gt; {</span>
-<span class="source-line-no">312</span><span id="line-312"></span>
-<span class="source-line-no">313</span><span id="line-313">    @Override</span>
-<span class="source-line-no">314</span><span id="line-314">    public boolean asyncDecode(CachedData d) {</span>
-<span class="source-line-no">315</span><span id="line-315">      return false;</span>
-<span class="source-line-no">316</span><span id="line-316">    }</span>
-<span class="source-line-no">317</span><span id="line-317"></span>
-<span class="source-line-no">318</span><span id="line-318">    @Override</span>
-<span class="source-line-no">319</span><span id="line-319">    public CachedData encode(HFileBlock block) {</span>
-<span class="source-line-no">320</span><span id="line-320">      ByteBuffer bb = ByteBuffer.allocate(block.getSerializedLength());</span>
-<span class="source-line-no">321</span><span id="line-321">      block.serialize(bb, true);</span>
-<span class="source-line-no">322</span><span id="line-322">      return new CachedData(0, bb.array(), CachedData.MAX_SIZE);</span>
-<span class="source-line-no">323</span><span id="line-323">    }</span>
-<span class="source-line-no">324</span><span id="line-324"></span>
-<span class="source-line-no">325</span><span id="line-325">    @Override</span>
-<span class="source-line-no">326</span><span id="line-326">    public HFileBlock decode(CachedData d) {</span>
-<span class="source-line-no">327</span><span id="line-327">      try {</span>
-<span class="source-line-no">328</span><span id="line-328">        ByteBuff buf = new SingleByteBuff(ByteBuffer.wrap(d.getData()));</span>
-<span class="source-line-no">329</span><span id="line-329">        return (HFileBlock) HFileBlock.BLOCK_DESERIALIZER.deserialize(buf, ByteBuffAllocator.HEAP);</span>
-<span class="source-line-no">330</span><span id="line-330">      } catch (IOException e) {</span>
-<span class="source-line-no">331</span><span id="line-331">        LOG.warn("Failed to deserialize data from memcached", e);</span>
-<span class="source-line-no">332</span><span id="line-332">      }</span>
-<span class="source-line-no">333</span><span id="line-333">      return null;</span>
-<span class="source-line-no">334</span><span id="line-334">    }</span>
-<span class="source-line-no">335</span><span id="line-335"></span>
-<span class="source-line-no">336</span><span id="line-336">    @Override</span>
-<span class="source-line-no">337</span><span id="line-337">    public int getMaxSize() {</span>
-<span class="source-line-no">338</span><span id="line-338">      return MAX_SIZE;</span>
-<span class="source-line-no">339</span><span id="line-339">    }</span>
-<span class="source-line-no">340</span><span id="line-340">  }</span>
+<span class="source-line-no">035</span><span id="line-35">import net.spy.memcached.ConnectionFactory;</span>
+<span class="source-line-no">036</span><span id="line-36">import net.spy.memcached.ConnectionFactoryBuilder;</span>
+<span class="source-line-no">037</span><span id="line-37">import net.spy.memcached.FailureMode;</span>
+<span class="source-line-no">038</span><span id="line-38">import net.spy.memcached.MemcachedClient;</span>
+<span class="source-line-no">039</span><span id="line-39">import net.spy.memcached.OperationTimeoutException;</span>
+<span class="source-line-no">040</span><span id="line-40">import net.spy.memcached.transcoders.Transcoder;</span>
+<span class="source-line-no">041</span><span id="line-41">import org.apache.hadoop.conf.Configuration;</span>
+<span class="source-line-no">042</span><span id="line-42">import org.apache.hadoop.hbase.io.ByteBuffAllocator;</span>
+<span class="source-line-no">043</span><span id="line-43">import org.apache.hadoop.hbase.nio.ByteBuff;</span>
+<span class="source-line-no">044</span><span id="line-44">import org.apache.hadoop.hbase.nio.SingleByteBuff;</span>
+<span class="source-line-no">045</span><span id="line-45">import org.apache.hadoop.hbase.trace.TraceUtil;</span>
+<span class="source-line-no">046</span><span id="line-46">import org.apache.hadoop.hbase.util.Addressing;</span>
+<span class="source-line-no">047</span><span id="line-47">import org.apache.hadoop.util.StringUtils;</span>
+<span class="source-line-no">048</span><span id="line-48">import org.apache.yetus.audience.InterfaceAudience;</span>
+<span class="source-line-no">049</span><span id="line-49">import org.slf4j.Logger;</span>
+<span class="source-line-no">050</span><span id="line-50">import org.slf4j.LoggerFactory;</span>
+<span class="source-line-no">051</span><span id="line-51"></span>
+<span class="source-line-no">052</span><span id="line-52">import org.apache.hbase.thirdparty.com.google.common.util.concurrent.ThreadFactoryBuilder;</span>
+<span class="source-line-no">053</span><span id="line-53"></span>
+<span class="source-line-no">054</span><span id="line-54">/**</span>
+<span class="source-line-no">055</span><span id="line-55"> * Class to store blocks into memcached. This should only be used on a cluster of Memcached daemons</span>
+<span class="source-line-no">056</span><span id="line-56"> * that are tuned well and have a good network connection to the HBase regionservers. Any other use</span>
+<span class="source-line-no">057</span><span id="line-57"> * will likely slow down HBase greatly.</span>
+<span class="source-line-no">058</span><span id="line-58"> */</span>
+<span class="source-line-no">059</span><span id="line-59">@InterfaceAudience.Private</span>
+<span class="source-line-no">060</span><span id="line-60">@SuppressWarnings("FutureReturnValueIgnored")</span>
+<span class="source-line-no">061</span><span id="line-61">public class MemcachedBlockCache implements BlockCache {</span>
+<span class="source-line-no">062</span><span id="line-62">  private static final Logger LOG = LoggerFactory.getLogger(MemcachedBlockCache.class.getName());</span>
+<span class="source-line-no">063</span><span id="line-63"></span>
+<span class="source-line-no">064</span><span id="line-64">  // Some memcache versions won't take more than 1024 * 1024. So set the limit below</span>
+<span class="source-line-no">065</span><span id="line-65">  // that just in case this client is used with those versions.</span>
+<span class="source-line-no">066</span><span id="line-66">  public static final int MAX_SIZE = 1020 * 1024;</span>
+<span class="source-line-no">067</span><span id="line-67"></span>
+<span class="source-line-no">068</span><span id="line-68">  // Start memcached with -I &lt;MAX_SIZE&gt; to ensure it has the ability to store blocks of this size</span>
+<span class="source-line-no">069</span><span id="line-69">  public static final int MAX_TIME = 60 * 60 * 24 * 30; // 30 days, max allowed per the memcached</span>
+<span class="source-line-no">070</span><span id="line-70">                                                        // spec</span>
+<span class="source-line-no">071</span><span id="line-71"></span>
+<span class="source-line-no">072</span><span id="line-72">  // Config key for what memcached servers to use.</span>
+<span class="source-line-no">073</span><span id="line-73">  // They should be specified in a comma sperated list with ports.</span>
+<span class="source-line-no">074</span><span id="line-74">  // like:</span>
+<span class="source-line-no">075</span><span id="line-75">  //</span>
+<span class="source-line-no">076</span><span id="line-76">  // host1:11211,host3:8080,host4:11211</span>
+<span class="source-line-no">077</span><span id="line-77">  public static final String MEMCACHED_CONFIG_KEY = "hbase.cache.memcached.servers";</span>
+<span class="source-line-no">078</span><span id="line-78">  public static final String MEMCACHED_TIMEOUT_KEY = "hbase.cache.memcached.timeout";</span>
+<span class="source-line-no">079</span><span id="line-79">  public static final String MEMCACHED_OPTIMEOUT_KEY = "hbase.cache.memcached.optimeout";</span>
+<span class="source-line-no">080</span><span id="line-80">  public static final String MEMCACHED_OPTIMIZE_KEY = "hbase.cache.memcached.spy.optimze";</span>
+<span class="source-line-no">081</span><span id="line-81">  public static final long MEMCACHED_DEFAULT_TIMEOUT = 500;</span>
+<span class="source-line-no">082</span><span id="line-82">  public static final boolean MEMCACHED_OPTIMIZE_DEFAULT = false;</span>
+<span class="source-line-no">083</span><span id="line-83">  public static final int STAT_THREAD_PERIOD = 60 * 5;</span>
+<span class="source-line-no">084</span><span id="line-84"></span>
+<span class="source-line-no">085</span><span id="line-85">  private final MemcachedClient client;</span>
+<span class="source-line-no">086</span><span id="line-86">  private final HFileBlockTranscoder tc = new HFileBlockTranscoder();</span>
+<span class="source-line-no">087</span><span id="line-87">  private final CacheStats cacheStats = new CacheStats("MemcachedBlockCache");</span>
+<span class="source-line-no">088</span><span id="line-88">  private final AtomicLong cachedCount = new AtomicLong();</span>
+<span class="source-line-no">089</span><span id="line-89">  private final AtomicLong notCachedCount = new AtomicLong();</span>
+<span class="source-line-no">090</span><span id="line-90">  private final AtomicLong cacheErrorCount = new AtomicLong();</span>
+<span class="source-line-no">091</span><span id="line-91">  private final AtomicLong timeoutCount = new AtomicLong();</span>
+<span class="source-line-no">092</span><span id="line-92"></span>
+<span class="source-line-no">093</span><span id="line-93">  /** Statistics thread schedule pool (for heavy debugging, could remove) */</span>
+<span class="source-line-no">094</span><span id="line-94">  private transient final ScheduledExecutorService scheduleThreadPool =</span>
+<span class="source-line-no">095</span><span id="line-95">    Executors.newScheduledThreadPool(1, new ThreadFactoryBuilder()</span>
+<span class="source-line-no">096</span><span id="line-96">      .setNameFormat("MemcachedBlockCacheStatsExecutor").setDaemon(true).build());</span>
+<span class="source-line-no">097</span><span id="line-97"></span>
+<span class="source-line-no">098</span><span id="line-98">  public MemcachedBlockCache(Configuration c) throws IOException {</span>
+<span class="source-line-no">099</span><span id="line-99">    LOG.info("Creating MemcachedBlockCache");</span>
+<span class="source-line-no">100</span><span id="line-100"></span>
+<span class="source-line-no">101</span><span id="line-101">    long opTimeout = c.getLong(MEMCACHED_OPTIMEOUT_KEY, MEMCACHED_DEFAULT_TIMEOUT);</span>
+<span class="source-line-no">102</span><span id="line-102">    long queueTimeout = c.getLong(MEMCACHED_TIMEOUT_KEY, opTimeout + MEMCACHED_DEFAULT_TIMEOUT);</span>
+<span class="source-line-no">103</span><span id="line-103">    boolean optimize = c.getBoolean(MEMCACHED_OPTIMIZE_KEY, MEMCACHED_OPTIMIZE_DEFAULT);</span>
+<span class="source-line-no">104</span><span id="line-104"></span>
+<span class="source-line-no">105</span><span id="line-105">    ConnectionFactoryBuilder builder =</span>
+<span class="source-line-no">106</span><span id="line-106">      new ConnectionFactoryBuilder().setOpTimeout(opTimeout).setOpQueueMaxBlockTime(queueTimeout)</span>
+<span class="source-line-no">107</span><span id="line-107">        .setFailureMode(FailureMode.Redistribute).setShouldOptimize(optimize).setDaemon(true)</span>
+<span class="source-line-no">108</span><span id="line-108">        .setUseNagleAlgorithm(false).setReadBufferSize(MAX_SIZE);</span>
+<span class="source-line-no">109</span><span id="line-109"></span>
+<span class="source-line-no">110</span><span id="line-110">    // Assume only the localhost is serving memcached.</span>
+<span class="source-line-no">111</span><span id="line-111">    // A la mcrouter or co-locating memcached with split regionservers.</span>
+<span class="source-line-no">112</span><span id="line-112">    //</span>
+<span class="source-line-no">113</span><span id="line-113">    // If this config is a pool of memcached servers they will all be used according to the</span>
+<span class="source-line-no">114</span><span id="line-114">    // default hashing scheme defined by the memcached client. Spy Memecache client in this</span>
+<span class="source-line-no">115</span><span id="line-115">    // case.</span>
+<span class="source-line-no">116</span><span id="line-116">    String serverListString = c.get(MEMCACHED_CONFIG_KEY, "localhost:11211");</span>
+<span class="source-line-no">117</span><span id="line-117">    String[] servers = serverListString.split(",");</span>
+<span class="source-line-no">118</span><span id="line-118">    // MemcachedClient requires InetSocketAddresses, we have to create them now. Implies any</span>
+<span class="source-line-no">119</span><span id="line-119">    // resolved identities cannot have their address mappings changed while the MemcachedClient</span>
+<span class="source-line-no">120</span><span id="line-120">    // instance is alive. We won't get a chance to trigger re-resolution.</span>
+<span class="source-line-no">121</span><span id="line-121">    List&lt;InetSocketAddress&gt; serverAddresses = new ArrayList&lt;&gt;(servers.length);</span>
+<span class="source-line-no">122</span><span id="line-122">    for (String s : servers) {</span>
+<span class="source-line-no">123</span><span id="line-123">      serverAddresses.add(Addressing.createInetSocketAddressFromHostAndPortStr(s));</span>
+<span class="source-line-no">124</span><span id="line-124">    }</span>
+<span class="source-line-no">125</span><span id="line-125"></span>
+<span class="source-line-no">126</span><span id="line-126">    client = createMemcachedClient(builder.build(), serverAddresses);</span>
+<span class="source-line-no">127</span><span id="line-127">    this.scheduleThreadPool.scheduleAtFixedRate(new StatisticsThread(this), STAT_THREAD_PERIOD,</span>
+<span class="source-line-no">128</span><span id="line-128">      STAT_THREAD_PERIOD, TimeUnit.SECONDS);</span>
+<span class="source-line-no">129</span><span id="line-129">  }</span>
+<span class="source-line-no">130</span><span id="line-130"></span>
+<span class="source-line-no">131</span><span id="line-131">  protected MemcachedClient createMemcachedClient(ConnectionFactory factory,</span>
+<span class="source-line-no">132</span><span id="line-132">    List&lt;InetSocketAddress&gt; serverAddresses) throws IOException {</span>
+<span class="source-line-no">133</span><span id="line-133">    return new MemcachedClient(factory, serverAddresses);</span>
+<span class="source-line-no">134</span><span id="line-134">  }</span>
+<span class="source-line-no">135</span><span id="line-135"></span>
+<span class="source-line-no">136</span><span id="line-136">  @Override</span>
+<span class="source-line-no">137</span><span id="line-137">  public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf, boolean inMemory) {</span>
+<span class="source-line-no">138</span><span id="line-138">    cacheBlock(cacheKey, buf);</span>
+<span class="source-line-no">139</span><span id="line-139">  }</span>
+<span class="source-line-no">140</span><span id="line-140"></span>
+<span class="source-line-no">141</span><span id="line-141">  @Override</span>
+<span class="source-line-no">142</span><span id="line-142">  public void cacheBlock(BlockCacheKey cacheKey, Cacheable buf) {</span>
+<span class="source-line-no">143</span><span id="line-143">    if (buf instanceof HFileBlock) {</span>
+<span class="source-line-no">144</span><span id="line-144">      if (buf.getSerializedLength() &gt; MAX_SIZE) {</span>
+<span class="source-line-no">145</span><span id="line-145">        LOG.debug("Block of type {} with key {} is too large, size={}, max={}, will not cache",</span>
+<span class="source-line-no">146</span><span id="line-146">          buf.getClass(), cacheKey, buf.getSerializedLength(), MAX_SIZE);</span>
+<span class="source-line-no">147</span><span id="line-147">        notCachedCount.incrementAndGet();</span>
+<span class="source-line-no">148</span><span id="line-148">        return;</span>
+<span class="source-line-no">149</span><span id="line-149">      }</span>
+<span class="source-line-no">150</span><span id="line-150">      client.set(cacheKey.toString(), MAX_TIME, (HFileBlock) buf, tc).addListener(f -&gt; {</span>
+<span class="source-line-no">151</span><span id="line-151">        try {</span>
+<span class="source-line-no">152</span><span id="line-152">          f.get();</span>
+<span class="source-line-no">153</span><span id="line-153">          cachedCount.incrementAndGet();</span>
+<span class="source-line-no">154</span><span id="line-154">        } catch (Exception e) {</span>
+<span class="source-line-no">155</span><span id="line-155">          LOG.warn("Failed to cache block with key " + cacheKey, e);</span>
+<span class="source-line-no">156</span><span id="line-156">          cacheErrorCount.incrementAndGet();</span>
+<span class="source-line-no">157</span><span id="line-157">        }</span>
+<span class="source-line-no">158</span><span id="line-158">      });</span>
+<span class="source-line-no">159</span><span id="line-159">    } else {</span>
+<span class="source-line-no">160</span><span id="line-160">      LOG.debug("Can not cache Cacheables of type {} with key {}", buf.getClass(), cacheKey);</span>
+<span class="source-line-no">161</span><span id="line-161">      notCachedCount.incrementAndGet();</span>
+<span class="source-line-no">162</span><span id="line-162">    }</span>
+<span class="source-line-no">163</span><span id="line-163">  }</span>
+<span class="source-line-no">164</span><span id="line-164"></span>
+<span class="source-line-no">165</span><span id="line-165">  @Override</span>
+<span class="source-line-no">166</span><span id="line-166">  public Cacheable getBlock(BlockCacheKey cacheKey, boolean caching, boolean repeat,</span>
+<span class="source-line-no">167</span><span id="line-167">    boolean updateCacheMetrics) {</span>
+<span class="source-line-no">168</span><span id="line-168">    // Assume that nothing is the block cache</span>
+<span class="source-line-no">169</span><span id="line-169">    HFileBlock result = null;</span>
+<span class="source-line-no">170</span><span id="line-170">    Span span = TraceUtil.getGlobalTracer().spanBuilder("MemcachedBlockCache.getBlock").startSpan();</span>
+<span class="source-line-no">171</span><span id="line-171">    try (Scope traceScope = span.makeCurrent()) {</span>
+<span class="source-line-no">172</span><span id="line-172">      result = client.get(cacheKey.toString(), tc);</span>
+<span class="source-line-no">173</span><span id="line-173">    } catch (Exception e) {</span>
+<span class="source-line-no">174</span><span id="line-174">      // Catch a pretty broad set of exceptions to limit any changes in the memcache client</span>
+<span class="source-line-no">175</span><span id="line-175">      // and how it handles failures from leaking into the read path.</span>
+<span class="source-line-no">176</span><span id="line-176">      if (</span>
+<span class="source-line-no">177</span><span id="line-177">        (e instanceof OperationTimeoutException) || ((e instanceof RuntimeException)</span>
+<span class="source-line-no">178</span><span id="line-178">          &amp;&amp; (e.getCause() instanceof OperationTimeoutException))</span>
+<span class="source-line-no">179</span><span id="line-179">      ) {</span>
+<span class="source-line-no">180</span><span id="line-180">        timeoutCount.incrementAndGet();</span>
+<span class="source-line-no">181</span><span id="line-181">        if (LOG.isDebugEnabled()) {</span>
+<span class="source-line-no">182</span><span id="line-182">          LOG.debug("Timeout getting key " + cacheKey.toString(), e);</span>
+<span class="source-line-no">183</span><span id="line-183">        }</span>
+<span class="source-line-no">184</span><span id="line-184">      } else {</span>
+<span class="source-line-no">185</span><span id="line-185">        cacheErrorCount.incrementAndGet();</span>
+<span class="source-line-no">186</span><span id="line-186">        if (LOG.isDebugEnabled()) {</span>
+<span class="source-line-no">187</span><span id="line-187">          LOG.debug("Exception getting key " + cacheKey.toString(), e);</span>
+<span class="source-line-no">188</span><span id="line-188">        }</span>
+<span class="source-line-no">189</span><span id="line-189">      }</span>
+<span class="source-line-no">190</span><span id="line-190">      result = null;</span>
+<span class="source-line-no">191</span><span id="line-191">    } finally {</span>
+<span class="source-line-no">192</span><span id="line-192">      span.end();</span>
+<span class="source-line-no">193</span><span id="line-193">      if (updateCacheMetrics) {</span>
+<span class="source-line-no">194</span><span id="line-194">        if (result == null) {</span>
+<span class="source-line-no">195</span><span id="line-195">          cacheStats.miss(caching, cacheKey.isPrimary(), cacheKey.getBlockType());</span>
+<span class="source-line-no">196</span><span id="line-196">        } else {</span>
+<span class="source-line-no">197</span><span id="line-197">          cacheStats.hit(caching, cacheKey.isPrimary(), cacheKey.getBlockType());</span>
+<span class="source-line-no">198</span><span id="line-198">        }</span>
+<span class="source-line-no">199</span><span id="line-199">      }</span>
+<span class="source-line-no">200</span><span id="line-200">    }</span>
+<span class="source-line-no">201</span><span id="line-201">    return result;</span>
+<span class="source-line-no">202</span><span id="line-202">  }</span>
+<span class="source-line-no">203</span><span id="line-203"></span>
+<span class="source-line-no">204</span><span id="line-204">  @Override</span>
+<span class="source-line-no">205</span><span id="line-205">  public boolean evictBlock(BlockCacheKey cacheKey) {</span>
+<span class="source-line-no">206</span><span id="line-206">    try {</span>
+<span class="source-line-no">207</span><span id="line-207">      cacheStats.evict();</span>
+<span class="source-line-no">208</span><span id="line-208">      return client.delete(cacheKey.toString()).get();</span>
+<span class="source-line-no">209</span><span id="line-209">    } catch (InterruptedException e) {</span>
+<span class="source-line-no">210</span><span id="line-210">      LOG.warn("Error deleting " + cacheKey.toString(), e);</span>
+<span class="source-line-no">211</span><span id="line-211">      Thread.currentThread().interrupt();</span>
+<span class="source-line-no">212</span><span id="line-212">    } catch (ExecutionException e) {</span>
+<span class="source-line-no">213</span><span id="line-213">      if (LOG.isDebugEnabled()) {</span>
+<span class="source-line-no">214</span><span id="line-214">        LOG.debug("Error deleting " + cacheKey.toString(), e);</span>
+<span class="source-line-no">215</span><span id="line-215">      }</span>
+<span class="source-line-no">216</span><span id="line-216">    }</span>
+<span class="source-line-no">217</span><span id="line-217">    return false;</span>
+<span class="source-line-no">218</span><span id="line-218">  }</span>
+<span class="source-line-no">219</span><span id="line-219"></span>
+<span class="source-line-no">220</span><span id="line-220">  /**</span>
+<span class="source-line-no">221</span><span id="line-221">   * This method does nothing so that memcached can handle all evictions.</span>
+<span class="source-line-no">222</span><span id="line-222">   */</span>
+<span class="source-line-no">223</span><span id="line-223">  @Override</span>
+<span class="source-line-no">224</span><span id="line-224">  public int evictBlocksByHfileName(String hfileName) {</span>
+<span class="source-line-no">225</span><span id="line-225">    return 0;</span>
+<span class="source-line-no">226</span><span id="line-226">  }</span>
+<span class="source-line-no">227</span><span id="line-227"></span>
+<span class="source-line-no">228</span><span id="line-228">  @Override</span>
+<span class="source-line-no">229</span><span id="line-229">  public CacheStats getStats() {</span>
+<span class="source-line-no">230</span><span id="line-230">    return cacheStats;</span>
+<span class="source-line-no">231</span><span id="line-231">  }</span>
+<span class="source-line-no">232</span><span id="line-232"></span>
+<span class="source-line-no">233</span><span id="line-233">  @Override</span>
+<span class="source-line-no">234</span><span id="line-234">  public void shutdown() {</span>
+<span class="source-line-no">235</span><span id="line-235">    client.shutdown();</span>
+<span class="source-line-no">236</span><span id="line-236">    this.scheduleThreadPool.shutdown();</span>
+<span class="source-line-no">237</span><span id="line-237">    for (int i = 0; i &lt; 10; i++) {</span>
+<span class="source-line-no">238</span><span id="line-238">      if (!this.scheduleThreadPool.isShutdown()) {</span>
+<span class="source-line-no">239</span><span id="line-239">        try {</span>
+<span class="source-line-no">240</span><span id="line-240">          Thread.sleep(10);</span>
+<span class="source-line-no">241</span><span id="line-241">        } catch (InterruptedException e) {</span>
+<span class="source-line-no">242</span><span id="line-242">          LOG.warn("Interrupted while sleeping");</span>
+<span class="source-line-no">243</span><span id="line-243">          Thread.currentThread().interrupt();</span>
+<span class="source-line-no">244</span><span id="line-244">          break;</span>
+<span class="source-line-no">245</span><span id="line-245">        }</span>
+<span class="source-line-no">246</span><span id="line-246">      }</span>
+<span class="source-line-no">247</span><span id="line-247">    }</span>
+<span class="source-line-no">248</span><span id="line-248">    if (!this.scheduleThreadPool.isShutdown()) {</span>
+<span class="source-line-no">249</span><span id="line-249">      List&lt;Runnable&gt; runnables = this.scheduleThreadPool.shutdownNow();</span>
+<span class="source-line-no">250</span><span id="line-250">      LOG.debug("Still running " + runnables);</span>
+<span class="source-line-no">251</span><span id="line-251">    }</span>
+<span class="source-line-no">252</span><span id="line-252">  }</span>
+<span class="source-line-no">253</span><span id="line-253"></span>
+<span class="source-line-no">254</span><span id="line-254">  @Override</span>
+<span class="source-line-no">255</span><span id="line-255">  public long size() {</span>
+<span class="source-line-no">256</span><span id="line-256">    return 0;</span>
+<span class="source-line-no">257</span><span id="line-257">  }</span>
+<span class="source-line-no">258</span><span id="line-258"></span>
+<span class="source-line-no">259</span><span id="line-259">  @Override</span>
+<span class="source-line-no">260</span><span id="line-260">  public long getMaxSize() {</span>
+<span class="source-line-no">261</span><span id="line-261">    return 0;</span>
+<span class="source-line-no">262</span><span id="line-262">  }</span>
+<span class="source-line-no">263</span><span id="line-263"></span>
+<span class="source-line-no">264</span><span id="line-264">  @Override</span>
+<span class="source-line-no">265</span><span id="line-265">  public long getFreeSize() {</span>
+<span class="source-line-no">266</span><span id="line-266">    return 0;</span>
+<span class="source-line-no">267</span><span id="line-267">  }</span>
+<span class="source-line-no">268</span><span id="line-268"></span>
+<span class="source-line-no">269</span><span id="line-269">  @Override</span>
+<span class="source-line-no">270</span><span id="line-270">  public long getCurrentSize() {</span>
+<span class="source-line-no">271</span><span id="line-271">    return 0;</span>
+<span class="source-line-no">272</span><span id="line-272">  }</span>
+<span class="source-line-no">273</span><span id="line-273"></span>
+<span class="source-line-no">274</span><span id="line-274">  @Override</span>
+<span class="source-line-no">275</span><span id="line-275">  public long getCurrentDataSize() {</span>
+<span class="source-line-no">276</span><span id="line-276">    return 0;</span>
+<span class="source-line-no">277</span><span id="line-277">  }</span>
+<span class="source-line-no">278</span><span id="line-278"></span>
+<span class="source-line-no">279</span><span id="line-279">  @Override</span>
+<span class="source-line-no">280</span><span id="line-280">  public long getBlockCount() {</span>
+<span class="source-line-no">281</span><span id="line-281">    return 0;</span>
+<span class="source-line-no">282</span><span id="line-282">  }</span>
+<span class="source-line-no">283</span><span id="line-283"></span>
+<span class="source-line-no">284</span><span id="line-284">  @Override</span>
+<span class="source-line-no">285</span><span id="line-285">  public long getDataBlockCount() {</span>
+<span class="source-line-no">286</span><span id="line-286">    return 0;</span>
+<span class="source-line-no">287</span><span id="line-287">  }</span>
+<span class="source-line-no">288</span><span id="line-288"></span>
+<span class="source-line-no">289</span><span id="line-289">  @Override</span>
+<span class="source-line-no">290</span><span id="line-290">  public Iterator&lt;CachedBlock&gt; iterator() {</span>
+<span class="source-line-no">291</span><span id="line-291">    return new Iterator&lt;CachedBlock&gt;() {</span>
+<span class="source-line-no">292</span><span id="line-292">      @Override</span>
+<span class="source-line-no">293</span><span id="line-293">      public boolean hasNext() {</span>
+<span class="source-line-no">294</span><span id="line-294">        return false;</span>
+<span class="source-line-no">295</span><span id="line-295">      }</span>
+<span class="source-line-no">296</span><span id="line-296"></span>
+<span class="source-line-no">297</span><span id="line-297">      @Override</span>
+<span class="source-line-no">298</span><span id="line-298">      public CachedBlock next() {</span>
+<span class="source-line-no">299</span><span id="line-299">        throw new NoSuchElementException("MemcachedBlockCache can't iterate over blocks.");</span>
+<span class="source-line-no">300</span><span id="line-300">      }</span>
+<span class="source-line-no">301</span><span id="line-301"></span>
+<span class="source-line-no">302</span><span id="line-302">      @Override</span>
+<span class="source-line-no">303</span><span id="line-303">      public void remove() {</span>
+<span class="source-line-no">304</span><span id="line-304"></span>
+<span class="source-line-no">305</span><span id="line-305">      }</span>
+<span class="source-line-no">306</span><span id="line-306">    };</span>
+<span class="source-line-no">307</span><span id="line-307">  }</span>
+<span class="source-line-no">308</span><span id="line-308"></span>
+<span class="source-line-no">309</span><span id="line-309">  @Override</span>
+<span class="source-line-no">310</span><span id="line-310">  public BlockCache[] getBlockCaches() {</span>
+<span class="source-line-no">311</span><span id="line-311">    return null;</span>
+<span class="source-line-no">312</span><span id="line-312">  }</span>
+<span class="source-line-no">313</span><span id="line-313"></span>
+<span class="source-line-no">314</span><span id="line-314">  /**</span>
+<span class="source-line-no">315</span><span id="line-315">   * Class to encode and decode an HFileBlock to and from memecached's resulting byte arrays.</span>
+<span class="source-line-no">316</span><span id="line-316">   */</span>
+<span class="source-line-no">317</span><span id="line-317">  private static class HFileBlockTranscoder implements Transcoder&lt;HFileBlock&gt; {</span>
+<span class="source-line-no">318</span><span id="line-318"></span>
+<span class="source-line-no">319</span><span id="line-319">    @Override</span>
+<span class="source-line-no">320</span><span id="line-320">    public boolean asyncDecode(CachedData d) {</span>
+<span class="source-line-no">321</span><span id="line-321">      return false;</span>
+<span class="source-line-no">322</span><span id="line-322">    }</span>
+<span class="source-line-no">323</span><span id="line-323"></span>
+<span class="source-line-no">324</span><span id="line-324">    @Override</span>
+<span class="source-line-no">325</span><span id="line-325">    public CachedData encode(HFileBlock block) {</span>
+<span class="source-line-no">326</span><span id="line-326">      ByteBuffer bb = ByteBuffer.allocate(block.getSerializedLength());</span>
+<span class="source-line-no">327</span><span id="line-327">      block.serialize(bb, true);</span>
+<span class="source-line-no">328</span><span id="line-328">      return new CachedData(0, bb.array(), CachedData.MAX_SIZE);</span>
+<span class="source-line-no">329</span><span id="line-329">    }</span>
+<span class="source-line-no">330</span><span id="line-330"></span>
+<span class="source-line-no">331</span><span id="line-331">    @Override</span>
+<span class="source-line-no">332</span><span id="line-332">    public HFileBlock decode(CachedData d) {</span>
+<span class="source-line-no">333</span><span id="line-333">      try {</span>
+<span class="source-line-no">334</span><span id="line-334">        ByteBuff buf = new SingleByteBuff(ByteBuffer.wrap(d.getData()));</span>
+<span class="source-line-no">335</span><span id="line-335">        return (HFileBlock) HFileBlock.BLOCK_DESERIALIZER.deserialize(buf, ByteBuffAllocator.HEAP);</span>
+<span class="source-line-no">336</span><span id="line-336">      } catch (IOException e) {</span>
+<span class="source-line-no">337</span><span id="line-337">        LOG.warn("Failed to deserialize data from memcached", e);</span>
+<span class="source-line-no">338</span><span id="line-338">      }</span>
+<span class="source-line-no">339</span><span id="line-339">      return null;</span>
+<span class="source-line-no">340</span><span id="line-340">    }</span>
 <span class="source-line-no">341</span><span id="line-341"></span>
-<span class="source-line-no">342</span><span id="line-342">  private static class StatisticsThread extends Thread {</span>
-<span class="source-line-no">343</span><span id="line-343"></span>
-<span class="source-line-no">344</span><span id="line-344">    private final MemcachedBlockCache c;</span>
-<span class="source-line-no">345</span><span id="line-345"></span>
-<span class="source-line-no">346</span><span id="line-346">    public StatisticsThread(MemcachedBlockCache c) {</span>
-<span class="source-line-no">347</span><span id="line-347">      super("MemcachedBlockCacheStats");</span>
-<span class="source-line-no">348</span><span id="line-348">      setDaemon(true);</span>
-<span class="source-line-no">349</span><span id="line-349">      this.c = c;</span>
-<span class="source-line-no">350</span><span id="line-350">    }</span>
+<span class="source-line-no">342</span><span id="line-342">    @Override</span>
+<span class="source-line-no">343</span><span id="line-343">    public int getMaxSize() {</span>
+<span class="source-line-no">344</span><span id="line-344">      return MAX_SIZE;</span>
+<span class="source-line-no">345</span><span id="line-345">    }</span>
+<span class="source-line-no">346</span><span id="line-346">  }</span>
+<span class="source-line-no">347</span><span id="line-347"></span>
+<span class="source-line-no">348</span><span id="line-348">  private static class StatisticsThread extends Thread {</span>
+<span class="source-line-no">349</span><span id="line-349"></span>
+<span class="source-line-no">350</span><span id="line-350">    private final MemcachedBlockCache c;</span>
 <span class="source-line-no">351</span><span id="line-351"></span>
-<span class="source-line-no">352</span><span id="line-352">    @Override</span>
-<span class="source-line-no">353</span><span id="line-353">    public void run() {</span>
-<span class="source-line-no">354</span><span id="line-354">      c.logStats();</span>
-<span class="source-line-no">355</span><span id="line-355">    }</span>
-<span class="source-line-no">356</span><span id="line-356"></span>
-<span class="source-line-no">357</span><span id="line-357">  }</span>
-<span class="source-line-no">358</span><span id="line-358"></span>
-<span class="source-line-no">359</span><span id="line-359">  public void logStats() {</span>
-<span class="source-line-no">360</span><span id="line-360">    LOG.info("cached=" + cachedCount.get() + ", notCached=" + notCachedCount.get()</span>
-<span class="source-line-no">361</span><span id="line-361">      + ", cacheErrors=" + cacheErrorCount.get() + ", timeouts=" + timeoutCount.get() + ", reads="</span>
-<span class="source-line-no">362</span><span id="line-362">      + cacheStats.getRequestCount() + ", " + "hits=" + cacheStats.getHitCount() + ", hitRatio="</span>
-<span class="source-line-no">363</span><span id="line-363">      + (cacheStats.getHitCount() == 0</span>
-<span class="source-line-no">364</span><span id="line-364">        ? "0"</span>
-<span class="source-line-no">365</span><span id="line-365">        : (StringUtils.formatPercent(cacheStats.getHitRatio(), 2) + ", "))</span>
-<span class="source-line-no">366</span><span id="line-366">      + "cachingAccesses=" + cacheStats.getRequestCachingCount() + ", " + "cachingHits="</span>
-<span class="source-line-no">367</span><span id="line-367">      + cacheStats.getHitCachingCount() + ", " + "cachingHitsRatio="</span>
-<span class="source-line-no">368</span><span id="line-368">      + (cacheStats.getHitCachingCount() == 0</span>
-<span class="source-line-no">369</span><span id="line-369">        ? "0,"</span>
-<span class="source-line-no">370</span><span id="line-370">        : (StringUtils.formatPercent(cacheStats.getHitCachingRatio(), 2) + ", "))</span>
-<span class="source-line-no">371</span><span id="line-371">      + "evictions=" + cacheStats.getEvictionCount() + ", " + "evicted="</span>
-<span class="source-line-no">372</span><span id="line-372">      + cacheStats.getEvictedCount() + ", " + "evictedPerRun=" + cacheStats.evictedPerEviction());</span>
-<span class="source-line-no">373</span><span id="line-373">  }</span>
-<span class="source-line-no">374</span><span id="line-374"></span>
-<span class="source-line-no">375</span><span id="line-375">}</span>
+<span class="source-line-no">352</span><span id="line-352">    public StatisticsThread(MemcachedBlockCache c) {</span>
+<span class="source-line-no">353</span><span id="line-353">      super("MemcachedBlockCacheStats");</span>
+<span class="source-line-no">354</span><span id="line-354">      setDaemon(true);</span>
+<span class="source-line-no">355</span><span id="line-355">      this.c = c;</span>
+<span class="source-line-no">356</span><span id="line-356">    }</span>
+<span class="source-line-no">357</span><span id="line-357"></span>
+<span class="source-line-no">358</span><span id="line-358">    @Override</span>
+<span class="source-line-no">359</span><span id="line-359">    public void run() {</span>
+<span class="source-line-no">360</span><span id="line-360">      c.logStats();</span>
+<span class="source-line-no">361</span><span id="line-361">    }</span>
+<span class="source-line-no">362</span><span id="line-362"></span>
+<span class="source-line-no">363</span><span id="line-363">  }</span>
+<span class="source-line-no">364</span><span id="line-364"></span>
+<span class="source-line-no">365</span><span id="line-365">  public void logStats() {</span>
+<span class="source-line-no">366</span><span id="line-366">    LOG.info("cached=" + cachedCount.get() + ", notCached=" + notCachedCount.get()</span>
+<span class="source-line-no">367</span><span id="line-367">      + ", cacheErrors=" + cacheErrorCount.get() + ", timeouts=" + timeoutCount.get() + ", reads="</span>
+<span class="source-line-no">368</span><span id="line-368">      + cacheStats.getRequestCount() + ", " + "hits=" + cacheStats.getHitCount() + ", hitRatio="</span>
+<span class="source-line-no">369</span><span id="line-369">      + (cacheStats.getHitCount() == 0</span>
+<span class="source-line-no">370</span><span id="line-370">        ? "0"</span>
+<span class="source-line-no">371</span><span id="line-371">        : (StringUtils.formatPercent(cacheStats.getHitRatio(), 2) + ", "))</span>
+<span class="source-line-no">372</span><span id="line-372">      + "cachingAccesses=" + cacheStats.getRequestCachingCount() + ", " + "cachingHits="</span>
+<span class="source-line-no">373</span><span id="line-373">      + cacheStats.getHitCachingCount() + ", " + "cachingHitsRatio="</span>
+<span class="source-line-no">374</span><span id="line-374">      + (cacheStats.getHitCachingCount() == 0</span>
+<span class="source-line-no">375</span><span id="line-375">        ? "0,"</span>
+<span class="source-line-no">376</span><span id="line-376">        : (StringUtils.formatPercent(cacheStats.getHitCachingRatio(), 2) + ", "))</span>
+<span class="source-line-no">377</span><span id="line-377">      + "evictions=" + cacheStats.getEvictionCount() + ", " + "evicted="</span>
+<span class="source-line-no">378</span><span id="line-378">      + cacheStats.getEvictedCount() + ", " + "evictedPerRun=" + cacheStats.evictedPerEviction());</span>
+<span class="source-line-no">379</span><span id="line-379">  }</span>
+<span class="source-line-no">380</span><span id="line-380"></span>
+<span class="source-line-no">381</span><span id="line-381">}</span>
 
 
 
diff --git a/book.html b/book.html
index d47c5875599..971543c8068 100644
--- a/book.html
+++ b/book.html
@@ -49389,7 +49389,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 4.0.0-alpha-1-SNAPSHOT<br>
-Last updated 2024-10-29 15:57:15 UTC
+Last updated 2024-10-30 14:30:56 UTC
 </div>
 </div>
 <script type="text/x-mathjax-config">
diff --git a/bulk-loads.html b/bulk-loads.html
index 50f96d059a3..5fd1eb572b7 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -184,7 +184,7 @@
         All other marks mentioned may be trademarks or registered trademarks of their respective owners.
       </div>
       <div style="float: right">
-        Last Published: 2024-10-29
+        Last Published: 2024-10-30
       </div>
         </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 55df3dc3ea4..9ab490a9355 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -3308,27 +3308,20 @@
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td></tr>
 <tr class="b">
 <td>javadoc</td>
-<td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocTagContinuationIndentation">JavadocTagContinuationIndentation</a>
-<ul>
-<li>offset: <code>&quot;2&quot;</code></li></ul></td>
-<td>3</td>
-<td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td></tr>
-<tr class="a">
-<td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>46</td>
+<td>49</td>
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td></tr>
-<tr class="b">
+<tr class="a">
 <td>misc</td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_misc.html#ArrayTypeStyle">ArrayTypeStyle</a></td>
 <td>110</td>
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td></tr>
-<tr class="a">
+<tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_misc.html#UpperEll">UpperEll</a></td>
 <td>23</td>
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td></tr>
-<tr class="b">
+<tr class="a">
 <td>sizes</td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_sizes.html#LineLength">LineLength</a>
 <ul>
@@ -3336,12 +3329,12 @@
 <li>ignorePattern: <code>&quot;^package.*|^import.*|a href|href|http://|https://|ftp://|org.apache.thrift.|com.google.protobuf.|hbase.protobuf.generated&quot;</code></li></ul></td>
 <td>140</td>
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td></tr>
-<tr class="a">
+<tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_sizes.html#MethodLength">MethodLength</a></td>
 <td>59</td>
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td></tr>
-<tr class="b">
+<tr class="a">
 <td>whitespace</td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_whitespace.html#FileTabCharacter">FileTabCharacter</a></td>
 <td>1</td>
@@ -3349,19 +3342,19 @@
 <h2><a name="Details"></a>Details</h2><section>
 <h3 id="log4j2.properties">log4j2.properties</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
 <td>65</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -3369,49 +3362,49 @@
 <td>65</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.AcidGuaranteesTestTool.java">org/apache/hadoop/hbase/AcidGuaranteesTestTool.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>141</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>165</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>217</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>218</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>284</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>285</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -3419,13 +3412,13 @@
 <td>339</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.CatalogFamilyFormat.java">org/apache/hadoop/hbase/CatalogFamilyFormat.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -3433,49 +3426,49 @@
 <td>81</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.CellUtil.java">org/apache/hadoop/hbase/CellUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>328</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>337</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>401</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>512</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>622</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>706</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -3483,19 +3476,19 @@
 <td>839</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.CompoundConfiguration.java">org/apache/hadoop/hbase/CompoundConfiguration.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>172</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -3503,19 +3496,19 @@
 <td>174</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.DistributedHBaseCluster.java">org/apache/hadoop/hbase/DistributedHBaseCluster.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>488</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -3523,13 +3516,13 @@
 <td>490</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.HBaseConfiguration.java">org/apache/hadoop/hbase/HBaseConfiguration.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -3537,85 +3530,85 @@
 <td>42</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.HBaseTestingUtil.java">org/apache/hadoop/hbase/HBaseTestingUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>342</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>344</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>479</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>483</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
 <td>Must have at least one statement.</td>
 <td>992</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1207</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2004</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>3060</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>3360</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>3362</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>3393</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>3433</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -3623,121 +3616,121 @@
 <td>3435</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.HBaseTestingUtility.java">org/apache/hadoop/hbase/HBaseTestingUtility.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>336</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>338</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>473</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>477</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>488</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>573</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>588</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>604</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>604</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
 <td>Must have at least one statement.</td>
 <td>1231</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1446</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2253</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>3378</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
 <td>Must have at least one statement.</td>
 <td>3503</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>3810</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>3812</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>3845</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>3886</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -3745,13 +3738,13 @@
 <td>3888</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.HTestConst.java">org/apache/hadoop/hbase/HTestConst.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -3759,13 +3752,13 @@
 <td>36</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.IntegrationTestDDLMasterFailover.java">org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -3773,19 +3766,19 @@
 <td>902</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.IntegrationTestManyRegions.java">org/apache/hadoop/hbase/IntegrationTestManyRegions.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>88</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -3793,19 +3786,19 @@
 <td>99</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.IntegrationTestMetaReplicas.java">org/apache/hadoop/hbase/IntegrationTestMetaReplicas.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>87</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -3813,43 +3806,43 @@
 <td>89</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.IntegrationTestRegionReplicaPerf.java">org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td>68</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>121</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>145</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>147</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td>282</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
@@ -3857,13 +3850,13 @@
 <td>297</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.KeyValueTestUtil.java">org/apache/hadoop/hbase/KeyValueTestUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -3871,25 +3864,25 @@
 <td>31</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.KeyValueUtil.java">org/apache/hadoop/hbase/KeyValueUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>43</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>419</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -3897,19 +3890,19 @@
 <td>710</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.LocalHBaseCluster.java">org/apache/hadoop/hbase/LocalHBaseCluster.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>263</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -3917,13 +3910,13 @@
 <td>264</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.MetaMockingUtil.java">org/apache/hadoop/hbase/MetaMockingUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -3931,19 +3924,19 @@
 <td>31</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.MiniHBaseCluster.java">org/apache/hadoop/hbase/MiniHBaseCluster.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'hbaseCluster' must be private and have accessor methods.</td>
 <td>59</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -3951,19 +3944,19 @@
 <td>624</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.MultithreadedTestUtil.java">org/apache/hadoop/hbase/MultithreadedTestUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>68</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -3971,19 +3964,19 @@
 <td>83</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.NamespaceDescriptor.java">org/apache/hadoop/hbase/NamespaceDescriptor.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
 <td>Class NamespaceDescriptor should be declared as final.</td>
 <td>35</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -3991,193 +3984,193 @@
 <td>156</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.PerformanceEvaluation.java">org/apache/hadoop/hbase/PerformanceEvaluation.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'duration' must be private and have accessor methods.</td>
 <td>238</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'hist' must be private and have accessor methods.</td>
 <td>239</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'numbOfReplyOverThreshold' must be private and have accessor methods.</td>
 <td>240</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'numOfReplyFromReplica' must be private and have accessor methods.</td>
 <td>241</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>465</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>517</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>607</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td>608</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td>755</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td>755</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td>755</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1230</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>1231</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1240</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1247</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1256</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1261</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1418</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1420</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1581</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>1843</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>1891</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2000</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
 <td>Should use uppercase 'L'.</td>
 <td>2237</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>2401</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>2513</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2670</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2671</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>2781</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 314 lines (max allowed is 150).</td>
 <td>2822</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4185,13 +4178,13 @@
 <td>2986</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.PerformanceEvaluationCommons.java">org/apache/hadoop/hbase/PerformanceEvaluationCommons.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -4199,25 +4192,25 @@
 <td>31</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.PrivateCellUtil.java">org/apache/hadoop/hbase/PrivateCellUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2586</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>2744</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4225,25 +4218,25 @@
 <td>2757</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.RegionLocations.java">org/apache/hadoop/hbase/RegionLocations.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>144</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>145</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4251,13 +4244,13 @@
 <td>147</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.ScanPerformanceEvaluation.java">org/apache/hadoop/hbase/ScanPerformanceEvaluation.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -4265,13 +4258,13 @@
 <td>80</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.SplitLogCounters.java">org/apache/hadoop/hbase/SplitLogCounters.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -4279,13 +4272,13 @@
 <td>46</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.SplitLogTask.java">org/apache/hadoop/hbase/SplitLogTask.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4293,19 +4286,19 @@
 <td>135</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.StripeCompactionsPerformanceEvaluation.java">org/apache/hadoop/hbase/StripeCompactionsPerformanceEvaluation.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>121</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4313,19 +4306,19 @@
 <td>144</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.TableName.java">org/apache/hadoop/hbase/TableName.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>515</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4333,13 +4326,13 @@
 <td>516</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.TagBuilderFactory.java">org/apache/hadoop/hbase/TagBuilderFactory.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -4347,13 +4340,13 @@
 <td>25</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.TagType.java">org/apache/hadoop/hbase/TagType.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -4361,13 +4354,13 @@
 <td>23</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.TestClientClusterStatus.java">org/apache/hadoop/hbase/TestClientClusterStatus.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4375,13 +4368,13 @@
 <td>176</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.TestGlobalMemStoreSize.java">org/apache/hadoop/hbase/TestGlobalMemStoreSize.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4389,19 +4382,19 @@
 <td>175</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.TestIOFencing.java">org/apache/hadoop/hbase/TestIOFencing.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
 <td>Must have at least one statement.</td>
 <td>91</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -4409,13 +4402,13 @@
 <td>319</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.TestLocalHBaseCluster.java">org/apache/hadoop/hbase/TestLocalHBaseCluster.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -4423,19 +4416,19 @@
 <td>20</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.TestMetaTableAccessor.java">org/apache/hadoop/hbase/TestMetaTableAccessor.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>229</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4443,13 +4436,13 @@
 <td>230</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.TestNodeHealthCheckChore.java">org/apache/hadoop/hbase/TestNodeHealthCheckChore.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4457,43 +4450,43 @@
 <td>61</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.TestPartialResultsFromClientSide.java">org/apache/hadoop/hbase/TestPartialResultsFromClientSide.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>332</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>384</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>641</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>662</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>668</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4501,19 +4494,19 @@
 <td>669</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.TestRegionRebalancing.java">org/apache/hadoop/hbase/TestRegionRebalancing.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>206</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4521,19 +4514,19 @@
 <td>232</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.TimestampTestBase.java">org/apache/hadoop/hbase/TimestampTestBase.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>37</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
@@ -4541,13 +4534,13 @@
 <td>190</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.ZNodeClearer.java">org/apache/hadoop/hbase/ZNodeClearer.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4555,13 +4548,13 @@
 <td>110</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.backup.BackupTestUtil.java">org/apache/hadoop/hbase/backup/BackupTestUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -4569,25 +4562,25 @@
 <td>30</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.backup.HFileArchiver.java">org/apache/hadoop/hbase/backup/HFileArchiver.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
 <td>Class HFileArchiver should be declared as final.</td>
 <td>62</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>351</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4595,13 +4588,13 @@
 <td>760</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.chaos.ChaosConstants.java">org/apache/hadoop/hbase/chaos/ChaosConstants.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -4609,19 +4602,19 @@
 <td>25</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.chaos.ChaosService.java">org/apache/hadoop/hbase/chaos/ChaosService.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>41</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4629,13 +4622,13 @@
 <td>122</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.chaos.ChaosUtils.java">org/apache/hadoop/hbase/chaos/ChaosUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -4643,13 +4636,13 @@
 <td>29</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.chaos.factories.MonkeyConstants.java">org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>InterfaceIsType</td>
@@ -4657,13 +4650,13 @@
 <td>25</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.chaos.policies.PeriodicPolicy.java">org/apache/hadoop/hbase/chaos/policies/PeriodicPolicy.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4671,27 +4664,27 @@
 <td>43</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.chaos.util.ChaosMonkeyRunner.java">org/apache/hadoop/hbase/chaos/util/ChaosMonkeyRunner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 20 has parse error. Missed HTML close tag 'path-to-conf'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>172</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.Action.java">org/apache/hadoop/hbase/client/Action.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4699,25 +4692,25 @@
 <td>94</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.Admin.java">org/apache/hadoop/hbase/client/Admin.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 112).</td>
 <td>739</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 112).</td>
 <td>750</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -4725,25 +4718,25 @@
 <td>776</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.AsyncBatchRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncBatchRpcRetryingCaller.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'loc' must be private and have accessor methods.</td>
 <td>123</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'actions' must be private and have accessor methods.</td>
 <td>125</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
@@ -4751,31 +4744,31 @@
 <td>134</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.AsyncClientScanner.java">org/apache/hadoop/hbase/client/AsyncClientScanner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'loc' must be private and have accessor methods.</td>
 <td>143</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'stub' must be private and have accessor methods.</td>
 <td>147</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'controller' must be private and have accessor methods.</td>
 <td>149</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
@@ -4783,13 +4776,13 @@
 <td>151</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.AsyncTableImpl.java">org/apache/hadoop/hbase/client/AsyncTableImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -4797,13 +4790,13 @@
 <td>251</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.ClientInternalHelper.java">org/apache/hadoop/hbase/client/ClientInternalHelper.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -4811,13 +4804,13 @@
 <td>34</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.ClientUtil.java">org/apache/hadoop/hbase/client/ClientUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -4825,13 +4818,13 @@
 <td>25</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder.java">org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -4839,13 +4832,13 @@
 <td>46</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.HConnectionTestingUtility.java">org/apache/hadoop/hbase/client/HConnectionTestingUtility.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -4853,25 +4846,25 @@
 <td>27</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.Mutation.java">org/apache/hadoop/hbase/client/Mutation.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>352</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>371</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4879,13 +4872,13 @@
 <td>381</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.Query.java">org/apache/hadoop/hbase/client/Query.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4893,25 +4886,25 @@
 <td>78</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.RegionInfo.java">org/apache/hadoop/hbase/client/RegionInfo.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>346</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>355</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4919,13 +4912,13 @@
 <td>368</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.RegionInfoBuilder.java">org/apache/hadoop/hbase/client/RegionInfoBuilder.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -4933,43 +4926,43 @@
 <td>25</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.RegionInfoDisplay.java">org/apache/hadoop/hbase/client/RegionInfoDisplay.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>31</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>43</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>57</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>67</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>107</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -4977,13 +4970,13 @@
 <td>108</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.RegionReplicaUtil.java">org/apache/hadoop/hbase/client/RegionReplicaUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -4991,13 +4984,13 @@
 <td>30</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.RequestControllerFactory.java">org/apache/hadoop/hbase/client/RequestControllerFactory.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -5005,13 +4998,13 @@
 <td>27</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.ResultScanner.java">org/apache/hadoop/hbase/client/ResultScanner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -5019,13 +5012,13 @@
 <td>51</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException.java">org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -5033,13 +5026,13 @@
 <td>145</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.SnapshotDescription.java">org/apache/hadoop/hbase/client/SnapshotDescription.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -5047,13 +5040,13 @@
 <td>67</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TableDescriptorBuilder.java">org/apache/hadoop/hbase/client/TableDescriptorBuilder.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -5061,13 +5054,13 @@
 <td>58</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TableState.java">org/apache/hadoop/hbase/client/TableState.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -5075,13 +5068,13 @@
 <td>165</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestAdmin.java">org/apache/hadoop/hbase/client/TestAdmin.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -5089,19 +5082,19 @@
 <td>174</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestAsyncRegionAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>286</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -5109,13 +5102,13 @@
 <td>293</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestAsyncReplicationAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApi.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
@@ -5123,19 +5116,19 @@
 <td>451</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestAsyncTableScanMetrics.java">org/apache/hadoop/hbase/client/TestAsyncTableScanMetrics.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>118</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -5143,13 +5136,13 @@
 <td>136</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestAsyncTableScanner.java">org/apache/hadoop/hbase/client/TestAsyncTableScanner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -5157,25 +5150,25 @@
 <td>92</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestAvoidCellReferencesIntoShippedBlocks.java">org/apache/hadoop/hbase/client/TestAvoidCellReferencesIntoShippedBlocks.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>101</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>124</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
@@ -5183,31 +5176,31 @@
 <td>248</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestBlockEvictionFromClient.java">org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>110</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>131</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>139</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -5215,19 +5208,19 @@
 <td>149</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestFromClientSide3.java">org/apache/hadoop/hbase/client/TestFromClientSide3.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>111</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -5235,19 +5228,19 @@
 <td>119</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestFromClientSideNoCodec.java">org/apache/hadoop/hbase/client/TestFromClientSideNoCodec.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>58</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -5255,13 +5248,13 @@
 <td>68</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestImmutableScan.java">org/apache/hadoop/hbase/client/TestImmutableScan.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -5269,13 +5262,13 @@
 <td>118</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestIncrementsFromClientSide.java">org/apache/hadoop/hbase/client/TestIncrementsFromClientSide.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -5283,163 +5276,163 @@
 <td>98</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestMultipleTimestamps.java">org/apache/hadoop/hbase/client/TestMultipleTimestamps.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
 <td>Using the '.*' form of import should be avoided - org.junit.Assert.*.</td>
 <td>20</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>65</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>73</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>81</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>89</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>201</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>316</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>346</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>371</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>396</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>431</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>432</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>444</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>445</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>448</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>461</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>465</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>479</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>480</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>497</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>498</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>509</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>510</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>517</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>518</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -5447,19 +5440,19 @@
 <td>525</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestPutWithDelete.java">org/apache/hadoop/hbase/client/TestPutWithDelete.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>51</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -5467,13 +5460,13 @@
 <td>59</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestRawAsyncTableScan.java">org/apache/hadoop/hbase/client/TestRawAsyncTableScan.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -5481,13 +5474,13 @@
 <td>85</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestReplicaWithCluster.java">org/apache/hadoop/hbase/client/TestReplicaWithCluster.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -5495,13 +5488,13 @@
 <td>271</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestReplicasClient.java">org/apache/hadoop/hbase/client/TestReplicasClient.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -5509,25 +5502,25 @@
 <td>259</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestScannerTimeout.java">org/apache/hadoop/hbase/client/TestScannerTimeout.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>64</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>83</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -5535,13 +5528,13 @@
 <td>91</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestScannersFromClientSide2.java">org/apache/hadoop/hbase/client/TestScannersFromClientSide2.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -5549,91 +5542,91 @@
 <td>134</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.TestTimestampsFilter.java">org/apache/hadoop/hbase/client/TestTimestampsFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>64</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>72</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>80</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>88</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>105</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>252</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>315</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>316</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>333</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>334</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>348</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>349</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>366</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -5641,13 +5634,13 @@
 <td>367</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.coprocessor.AggregationClient.java">org/apache/hadoop/hbase/client/coprocessor/AggregationClient.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -5655,19 +5648,19 @@
 <td>195</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.coprocessor.Batch.java">org/apache/hadoop/hbase/client/coprocessor/Batch.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
 <td>34</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -5675,19 +5668,19 @@
 <td>53</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.coprocessor.DoubleColumnInterpreter.java">org/apache/hadoop/hbase/client/coprocessor/DoubleColumnInterpreter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>46</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -5695,31 +5688,31 @@
 <td>62</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.coprocessor.LongColumnInterpreter.java">org/apache/hadoop/hbase/client/coprocessor/LongColumnInterpreter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>46</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>54</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>63</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>UpperEll</td>
@@ -5727,55 +5720,55 @@
 <td>74</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.coprocessor.package-info.java">org/apache/hadoop/hbase/client/coprocessor/package-info.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 146).</td>
 <td>54</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 200).</td>
 <td>55</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 144).</td>
 <td>75</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 206).</td>
 <td>76</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 111).</td>
 <td>95</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
 <td>96</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 124).</td>
 <td>149</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -5783,13 +5776,13 @@
 <td>190</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.locking.EntityLock.java">org/apache/hadoop/hbase/client/locking/EntityLock.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -5797,61 +5790,61 @@
 <td>125</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.client.metrics.ScanMetrics.java">org/apache/hadoop/hbase/client/metrics/ScanMetrics.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'countOfRPCcalls' must be private and have accessor methods.</td>
 <td>54</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'countOfRemoteRPCcalls' must be private and have accessor methods.</td>
 <td>59</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'sumOfMillisSecBetweenNexts' must be private and have accessor methods.</td>
 <td>64</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'countOfNSRE' must be private and have accessor methods.</td>
 <td>70</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'countOfBytesInResults' must be private and have accessor methods.</td>
 <td>75</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'countOfBytesInRemoteResults' must be private and have accessor methods.</td>
 <td>80</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'countOfRegions' must be private and have accessor methods.</td>
 <td>86</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'countOfRPCRetries' must be private and have accessor methods.</td>
 <td>91</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
@@ -5859,13 +5852,13 @@
 <td>96</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.codec.BaseDecoder.java">org/apache/hadoop/hbase/codec/BaseDecoder.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -5873,19 +5866,19 @@
 <td>82</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.codec.BaseEncoder.java">org/apache/hadoop/hbase/codec/BaseEncoder.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>48</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -5893,13 +5886,13 @@
 <td>53</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.codec.CodecPerformance.java">org/apache/hadoop/hbase/codec/CodecPerformance.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -5907,19 +5900,19 @@
 <td>40</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.constraint.CheckConfigurationConstraint.java">org/apache/hadoop/hbase/constraint/CheckConfigurationConstraint.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>47</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -5927,25 +5920,25 @@
 <td>51</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.constraint.Constraint.java">org/apache/hadoop/hbase/constraint/Constraint.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 119).</td>
 <td>30</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>35</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -5953,37 +5946,37 @@
 <td>37</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.constraint.package-info.java">org/apache/hadoop/hbase/constraint/package-info.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 120).</td>
 <td>42</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 121).</td>
 <td>45</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 127).</td>
 <td>63</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 155).</td>
 <td>64</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -5991,19 +5984,19 @@
 <td>66</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.coordination.ZKSplitLogManagerCoordination.java">org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'ignoreZKDeleteForTesting' must be private and have accessor methods.</td>
 <td>82</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
@@ -6011,19 +6004,19 @@
 <td>447</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.coordination.ZkSplitLogWorkerCoordination.java">org/apache/hadoop/hbase/coordination/ZkSplitLogWorkerCoordination.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
 <td>Must have at least one statement.</td>
 <td>154</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -6031,13 +6024,13 @@
 <td>218</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.coprocessor.BaseEnvironment.java">org/apache/hadoop/hbase/coprocessor/BaseEnvironment.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
@@ -6045,19 +6038,19 @@
 <td>37</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.coprocessor.CoprocessorHost.java">org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>133</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6065,13 +6058,13 @@
 <td>662</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.coprocessor.MetricsCoprocessor.java">org/apache/hadoop/hbase/coprocessor/MetricsCoprocessor.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -6079,13 +6072,13 @@
 <td>30</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.coprocessor.ObserverContextImpl.java">org/apache/hadoop/hbase/coprocessor/ObserverContextImpl.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
@@ -6093,31 +6086,31 @@
 <td>98</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.coprocessor.RegionObserver.java">org/apache/hadoop/hbase/coprocessor/RegionObserver.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 109).</td>
 <td>686</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 109).</td>
 <td>716</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 109).</td>
 <td>846</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -6125,13 +6118,13 @@
 <td>876</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.coprocessor.TestCoprocessorInterface.java">org/apache/hadoop/hbase/coprocessor/TestCoprocessorInterface.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -6139,37 +6132,37 @@
 <td>346</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.coprocessor.TestRegionObserverInterface.java">org/apache/hadoop/hbase/coprocessor/TestRegionObserverInterface.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
 <td>Must have at least one statement.</td>
 <td>499</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
 <td>Must have at least one statement.</td>
 <td>525</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
 <td>Must have at least one statement.</td>
 <td>562</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>880</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -6177,13 +6170,13 @@
 <td>881</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.coprocessor.TestRegionObserverPreFlushAndPreCompact.java">org/apache/hadoop/hbase/coprocessor/TestRegionObserverPreFlushAndPreCompact.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -6191,13 +6184,13 @@
 <td>53</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.coprocessor.TestRegionObserverScannerOpenHook.java">org/apache/hadoop/hbase/coprocessor/TestRegionObserverScannerOpenHook.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6205,13 +6198,13 @@
 <td>302</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.coprocessor.package-info.java">org/apache/hadoop/hbase/coprocessor/package-info.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -6219,13 +6212,13 @@
 <td>209</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.errorhandling.ForeignException.java">org/apache/hadoop/hbase/errorhandling/ForeignException.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6233,13 +6226,13 @@
 <td>99</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.errorhandling.ForeignExceptionDispatcher.java">org/apache/hadoop/hbase/errorhandling/ForeignExceptionDispatcher.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6247,13 +6240,13 @@
 <td>62</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.errorhandling.TimeoutExceptionInjector.java">org/apache/hadoop/hbase/errorhandling/TimeoutExceptionInjector.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6261,31 +6254,31 @@
 <td>60</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.favored.FavoredNodeAssignmentHelper.java">org/apache/hadoop/hbase/favored/FavoredNodeAssignmentHelper.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>234</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>239</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>393</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6293,19 +6286,19 @@
 <td>595</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.favored.StartcodeAgnosticServerName.java">org/apache/hadoop/hbase/favored/StartcodeAgnosticServerName.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>58</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6313,13 +6306,13 @@
 <td>60</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.ColumnCountGetFilter.java">org/apache/hadoop/hbase/filter/ColumnCountGetFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6327,13 +6320,13 @@
 <td>54</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.ColumnPrefixFilter.java">org/apache/hadoop/hbase/filter/ColumnPrefixFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6341,31 +6334,31 @@
 <td>109</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.ColumnRangeFilter.java">org/apache/hadoop/hbase/filter/ColumnRangeFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>141</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>142</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>150</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6373,13 +6366,13 @@
 <td>153</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.CompareFilter.java">org/apache/hadoop/hbase/filter/CompareFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6387,13 +6380,13 @@
 <td>164</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.DependentColumnFilter.java">org/apache/hadoop/hbase/filter/DependentColumnFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6401,19 +6394,19 @@
 <td>127</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.FilterAllFilter.java">org/apache/hadoop/hbase/filter/FilterAllFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>58</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6421,61 +6414,61 @@
 <td>59</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.FilterListWithAND.java">org/apache/hadoop/hbase/filter/FilterListWithAND.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 107).</td>
 <td>89</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 198).</td>
 <td>99</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 198).</td>
 <td>100</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 198).</td>
 <td>101</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 198).</td>
 <td>102</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 198).</td>
 <td>103</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 198).</td>
 <td>104</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 198).</td>
 <td>105</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -6483,67 +6476,67 @@
 <td>106</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.FilterListWithOR.java">org/apache/hadoop/hbase/filter/FilterListWithOR.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 107).</td>
 <td>130</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 170).</td>
 <td>140</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 157).</td>
 <td>141</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 157).</td>
 <td>142</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 157).</td>
 <td>143</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 154).</td>
 <td>144</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 154).</td>
 <td>145</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 154).</td>
 <td>146</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 170).</td>
 <td>147</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6551,13 +6544,13 @@
 <td>156</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.FilterTestingCluster.java">org/apache/hadoop/hbase/filter/FilterTestingCluster.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -6565,31 +6558,31 @@
 <td>50</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.FilterWrapper.java">org/apache/hadoop/hbase/filter/FilterWrapper.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>61</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>100</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>160</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6597,13 +6590,13 @@
 <td>161</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter.java">org/apache/hadoop/hbase/filter/FirstKeyOnlyFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6611,31 +6604,31 @@
 <td>56</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.FuzzyRowFilter.java">org/apache/hadoop/hbase/filter/FuzzyRowFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>144</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>654</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>656</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6643,25 +6636,25 @@
 <td>675</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.InclusiveStopFilter.java">org/apache/hadoop/hbase/filter/InclusiveStopFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>52</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>59</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6669,37 +6662,37 @@
 <td>83</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.MultiRowRangeFilter.java">org/apache/hadoop/hbase/filter/MultiRowRangeFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>112</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>187</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>190</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>241</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -6707,19 +6700,19 @@
 <td>262</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.MultipleColumnPrefixFilter.java">org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>125</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6727,13 +6720,13 @@
 <td>179</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.PageFilter.java">org/apache/hadoop/hbase/filter/PageFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6741,13 +6734,13 @@
 <td>62</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.ParseConstants.java">org/apache/hadoop/hbase/filter/ParseConstants.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -6755,97 +6748,97 @@
 <td>27</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.ParseFilter.java">org/apache/hadoop/hbase/filter/ParseFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>783</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>784</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>786</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>787</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>789</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>790</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>791</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>801</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>806</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>808</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>810</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>812</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>815</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>817</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6853,37 +6846,37 @@
 <td>866</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.PrefixFilter.java">org/apache/hadoop/hbase/filter/PrefixFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>53</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>54</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>56</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>78</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6891,19 +6884,19 @@
 <td>108</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.SingleColumnValueFilter.java">org/apache/hadoop/hbase/filter/SingleColumnValueFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>322</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6911,31 +6904,31 @@
 <td>323</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.TestColumnPrefixFilter.java">org/apache/hadoop/hbase/filter/TestColumnPrefixFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>121</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
 <td>122</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>189</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
@@ -6943,13 +6936,13 @@
 <td>190</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.TestColumnRangeFilter.java">org/apache/hadoop/hbase/filter/TestColumnRangeFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -6957,13 +6950,13 @@
 <td>20</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.TestDependentColumnFilter.java">org/apache/hadoop/hbase/filter/TestDependentColumnFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -6971,37 +6964,37 @@
 <td>152</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.TestFilter.java">org/apache/hadoop/hbase/filter/TestFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 154 lines (max allowed is 150).</td>
 <td>740</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1760</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1779</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1797</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7009,13 +7002,13 @@
 <td>1825</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.TestFilterWrapper.java">org/apache/hadoop/hbase/filter/TestFilterWrapper.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7023,37 +7016,37 @@
 <td>137</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.TestFuzzyRowAndColumnRangeFilter.java">org/apache/hadoop/hbase/filter/TestFuzzyRowAndColumnRangeFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>72</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>80</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>88</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>96</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7061,19 +7054,19 @@
 <td>152</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.TestFuzzyRowFilterEndToEnd.java">org/apache/hadoop/hbase/filter/TestFuzzyRowFilterEndToEnd.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>236</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7081,55 +7074,55 @@
 <td>246</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.TestMultipleColumnPrefixFilter.java">org/apache/hadoop/hbase/filter/TestMultipleColumnPrefixFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>124</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
 <td>125</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>197</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
 <td>198</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>245</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
 <td>Empty statement.</td>
 <td>246</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>256</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
@@ -7137,13 +7130,13 @@
 <td>257</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.TestPrefixFilter.java">org/apache/hadoop/hbase/filter/TestPrefixFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -7151,13 +7144,13 @@
 <td>20</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.TestRandomRowFilter.java">org/apache/hadoop/hbase/filter/TestRandomRowFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -7165,19 +7158,19 @@
 <td>20</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.TestRegexComparator.java">org/apache/hadoop/hbase/filter/TestRegexComparator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
 <td>Using the '.*' form of import should be avoided - org.junit.Assert.*.</td>
 <td>20</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -7185,13 +7178,13 @@
 <td>91</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.filter.WhileMatchFilter.java">org/apache/hadoop/hbase/filter/WhileMatchFilter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7199,13 +7192,13 @@
 <td>67</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.hbtop.HBTop.java">org/apache/hadoop/hbase/hbtop/HBTop.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -7213,85 +7206,85 @@
 <td>61</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.hbtop.screen.top.TopScreenPresenter.java">org/apache/hadoop/hbase/hbtop/screen/top/TopScreenPresenter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child has incorrect indentation level 8, expected level should be 6.</td>
 <td>251</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child has incorrect indentation level 8, expected level should be 6.</td>
 <td>252</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child has incorrect indentation level 8, expected level should be 6.</td>
 <td>253</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block rcurly' has incorrect indentation level 6, expected level should be 4.</td>
 <td>254</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 8, expected level should be 6.</td>
 <td>324</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 10, expected level should be 8.</td>
 <td>325</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 8, expected level should be 6.</td>
 <td>326</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 8, expected level should be 6.</td>
 <td>328</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 10, expected level should be 8.</td>
 <td>329</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 8, expected level should be 6.</td>
 <td>330</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child has incorrect indentation level 8, expected level should be 6.</td>
 <td>332</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child has incorrect indentation level 8, expected level should be 6.</td>
 <td>333</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -7299,13 +7292,13 @@
 <td>334</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.http.HttpServerFunctionalTest.java">org/apache/hadoop/hbase/http/HttpServerFunctionalTest.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -7313,13 +7306,13 @@
 <td>44</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.http.lib.TestAuthenticationFilterInitializer.java">org/apache/hadoop/hbase/http/lib/TestAuthenticationFilterInitializer.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -7327,13 +7320,13 @@
 <td>20</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.http.prometheus.PrometheusHadoopServlet.java">org/apache/hadoop/hbase/http/prometheus/PrometheusHadoopServlet.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7341,13 +7334,13 @@
 <td>73</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.ByteBuffInputStream.java">org/apache/hadoop/hbase/io/ByteBuffInputStream.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -7355,31 +7348,31 @@
 <td>62</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.FSDataInputStreamWrapper.java">org/apache/hadoop/hbase/io/FSDataInputStreamWrapper.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>121</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>151</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>160</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -7387,31 +7380,31 @@
 <td>180</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.FileLink.java">org/apache/hadoop/hbase/io/FileLink.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>220</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>259</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>262</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7419,25 +7412,25 @@
 <td>326</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.HalfStoreFileReader.java">org/apache/hadoop/hbase/io/HalfStoreFileReader.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 183 lines (max allowed is 150).</td>
 <td>98</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'atEnd' must be private and have accessor methods.</td>
 <td>104</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7445,13 +7438,13 @@
 <td>134</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.ImmutableBytesWritable.java">org/apache/hadoop/hbase/io/ImmutableBytesWritable.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7459,49 +7452,49 @@
 <td>139</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.Reference.java">org/apache/hadoop/hbase/io/Reference.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>162</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>209</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>210</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>211</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>214</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>215</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7509,13 +7502,13 @@
 <td>216</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.TestByteBufferOutputStream.java">org/apache/hadoop/hbase/io/TestByteBufferOutputStream.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -7523,25 +7516,25 @@
 <td>20</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.TestFileLink.java">org/apache/hadoop/hbase/io/TestFileLink.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>239</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>240</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7549,25 +7542,25 @@
 <td>347</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.TestHFileLink.java">org/apache/hadoop/hbase/io/TestHFileLink.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>55</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>100</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -7575,13 +7568,13 @@
 <td>111</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.TestHalfStoreFileReader.java">org/apache/hadoop/hbase/io/TestHalfStoreFileReader.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -7589,19 +7582,19 @@
 <td>299</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.TestHeapSize.java">org/apache/hadoop/hbase/io/TestHeapSize.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 177 lines (max allowed is 150).</td>
 <td>116</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -7609,19 +7602,19 @@
 <td>299</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.TestImmutableBytesWritable.java">org/apache/hadoop/hbase/io/TestImmutableBytesWritable.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>91</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7629,13 +7622,13 @@
 <td>92</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper.java">org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputHelper.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -7643,43 +7636,43 @@
 <td>376</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.compress.Compression.java">org/apache/hadoop/hbase/io/compress/Compression.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>108</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>461</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>476</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>485</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>502</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7687,19 +7680,19 @@
 <td>505</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.crypto.Encryption.java">org/apache/hadoop/hbase/io/crypto/Encryption.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
 <td>Class Context should be declared as final.</td>
 <td>99</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -7707,13 +7700,13 @@
 <td>409</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.crypto.aes.CryptoAES.java">org/apache/hadoop/hbase/io/crypto/aes/CryptoAES.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -7721,13 +7714,13 @@
 <td>212</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.crypto.tls.HBaseTrustManager.java">org/apache/hadoop/hbase/io/crypto/tls/HBaseTrustManager.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -7735,13 +7728,13 @@
 <td>99</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.crypto.tls.X509Util.java">org/apache/hadoop/hbase/io/crypto/tls/X509Util.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -7749,13 +7742,13 @@
 <td>555</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.encoding.CopyKeyDataBlockEncoder.java">org/apache/hadoop/hbase/io/encoding/CopyKeyDataBlockEncoder.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -7763,13 +7756,13 @@
 <td>95</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.encoding.DiffKeyDeltaEncoder.java">org/apache/hadoop/hbase/io/encoding/DiffKeyDeltaEncoder.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -7777,13 +7770,13 @@
 <td>389</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.encoding.FastDiffDeltaEncoder.java">org/apache/hadoop/hbase/io/encoding/FastDiffDeltaEncoder.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -7791,13 +7784,13 @@
 <td>375</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.encoding.PrefixKeyDeltaEncoder.java">org/apache/hadoop/hbase/io/encoding/PrefixKeyDeltaEncoder.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -7805,45 +7798,45 @@
 <td>191</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.BlockCacheUtil.java">org/apache/hadoop/hbase/io/hfile/BlockCacheUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
-<td>47</td></tr>
-<tr class="b">
+<td>51</td></tr>
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>165</td></tr>
-<tr class="a">
+<td>169</td></tr>
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>324</td></tr></table></section><section>
+<td>338</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.BlockCachesIterator.java">org/apache/hadoop/hbase/io/hfile/BlockCachesIterator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>39</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7851,19 +7844,19 @@
 <td>41</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.BlockType.java">org/apache/hadoop/hbase/io/hfile/BlockType.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>155</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7871,31 +7864,31 @@
 <td>156</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.CacheStats.java">org/apache/hadoop/hbase/io/hfile/CacheStats.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>148</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>149</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>194</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -7903,19 +7896,19 @@
 <td>195</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.CacheTestUtils.java">org/apache/hadoop/hbase/io/hfile/CacheTestUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>47</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -7923,13 +7916,13 @@
 <td>231</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.CacheableDeserializerIdManager.java">org/apache/hadoop/hbase/io/hfile/CacheableDeserializerIdManager.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -7937,13 +7930,13 @@
 <td>32</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.ChecksumUtil.java">org/apache/hadoop/hbase/io/hfile/ChecksumUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -7951,13 +7944,13 @@
 <td>34</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.CompoundBloomFilterWriter.java">org/apache/hadoop/hbase/io/hfile/CompoundBloomFilterWriter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -7965,13 +7958,13 @@
 <td>239</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.FixedFileTrailer.java">org/apache/hadoop/hbase/io/hfile/FixedFileTrailer.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -7979,13 +7972,13 @@
 <td>374</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.HFileBlock.java">org/apache/hadoop/hbase/io/hfile/HFileBlock.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -7993,73 +7986,73 @@
 <td>1695</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.HFileBlockIndex.java">org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>62</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>779</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>781</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>782</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1072</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1109</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1111</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1254</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1278</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1466</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8067,55 +8060,55 @@
 <td>1561</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.HFilePrettyPrinter.java">org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>167</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>211</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>213</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>217</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>560</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>573</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>723</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -8123,25 +8116,25 @@
 <td>749</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.KVGenerator.java">org/apache/hadoop/hbase/io/hfile/KVGenerator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>39</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>60</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8149,13 +8142,13 @@
 <td>95</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.LruCachedBlock.java">org/apache/hadoop/hbase/io/hfile/LruCachedBlock.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8163,31 +8156,31 @@
 <td>96</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.NanoTimer.java">org/apache/hadoop/hbase/io/hfile/NanoTimer.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>36</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>65</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>106</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8195,13 +8188,13 @@
 <td>108</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.NoOpDataBlockEncoder.java">org/apache/hadoop/hbase/io/hfile/NoOpDataBlockEncoder.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -8209,19 +8202,19 @@
 <td>36</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.NoOpIndexBlockEncoder.java">org/apache/hadoop/hbase/io/hfile/NoOpIndexBlockEncoder.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
 <td>Class NoOpIndexBlockEncoder should be declared as final.</td>
 <td>43</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8229,73 +8222,73 @@
 <td>87</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.RandomKeyValueUtil.java">org/apache/hadoop/hbase/io/hfile/RandomKeyValueUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>27</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>34</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>37</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>40</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>56</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>83</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>84</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>88</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>100</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>101</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8303,13 +8296,13 @@
 <td>105</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.TestCacheConfig.java">org/apache/hadoop/hbase/io/hfile/TestCacheConfig.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8317,19 +8310,19 @@
 <td>357</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.TestChecksum.java">org/apache/hadoop/hbase/io/hfile/TestChecksum.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>87</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8337,13 +8330,13 @@
 <td>217</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.TestFixedFileTrailer.java">org/apache/hadoop/hbase/io/hfile/TestFixedFileTrailer.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8351,19 +8344,19 @@
 <td>91</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.TestForceCacheImportantBlocks.java">org/apache/hadoop/hbase/io/hfile/TestForceCacheImportantBlocks.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>125</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8371,31 +8364,31 @@
 <td>126</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.TestHFileBlock.java">org/apache/hadoop/hbase/io/hfile/TestHFileBlock.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
 <td>Using the '.*' form of import should be avoided - org.junit.Assert.*.</td>
 <td>23</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>178</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>366</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8403,37 +8396,37 @@
 <td>842</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.TestHFileBlockIndex.java">org/apache/hadoop/hbase/io/hfile/TestHFileBlockIndex.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>395</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'while' construct must use '{}'s.</td>
 <td>404</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>421</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>691</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8441,13 +8434,13 @@
 <td>742</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.TestHFileWriterV3.java">org/apache/hadoop/hbase/io/hfile/TestHFileWriterV3.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
@@ -8455,217 +8448,217 @@
 <td>124</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.TestPrefetch.java">org/apache/hadoop/hbase/io/hfile/TestPrefetch.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child has incorrect indentation level 6, expected level should be 8.</td>
 <td>152</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 6, expected level should be 8.</td>
 <td>153</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 10, expected level should be 12.</td>
 <td>155</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rparen' has incorrect indentation level 6, expected level should be 8.</td>
 <td>156</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 8, expected level should be 10.</td>
 <td>157</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 6, expected level should be 8.</td>
 <td>158</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block rcurly' has incorrect indentation level 4, expected level should be 6.</td>
 <td>159</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child has incorrect indentation level 6, expected level should be 8.</td>
 <td>186</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 6, expected level should be 8.</td>
 <td>187</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 10, expected level should be 12.</td>
 <td>189</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rparen' has incorrect indentation level 6, expected level should be 8.</td>
 <td>190</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 8, expected level should be 10.</td>
 <td>191</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 10, expected level should be 12.</td>
 <td>192</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 8, expected level should be 10.</td>
 <td>193</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'else' child has incorrect indentation level 10, expected level should be 12.</td>
 <td>194</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'else rcurly' has incorrect indentation level 8, expected level should be 10.</td>
 <td>195</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 6, expected level should be 8.</td>
 <td>196</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block rcurly' has incorrect indentation level 4, expected level should be 6.</td>
 <td>197</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child has incorrect indentation level 6, expected level should be 8.</td>
 <td>257</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 6, expected level should be 8.</td>
 <td>258</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 10, expected level should be 12.</td>
 <td>260</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rparen' has incorrect indentation level 6, expected level should be 8.</td>
 <td>261</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 8, expected level should be 10.</td>
 <td>262</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 6, expected level should be 8.</td>
 <td>263</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block rcurly' has incorrect indentation level 4, expected level should be 6.</td>
 <td>264</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child has incorrect indentation level 6, expected level should be 8.</td>
 <td>277</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 6, expected level should be 8.</td>
 <td>278</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 8, expected level should be 10.</td>
 <td>279</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 6, expected level should be 8.</td>
 <td>280</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 10, expected level should be 12.</td>
 <td>282</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rparen' has incorrect indentation level 6, expected level should be 8.</td>
 <td>283</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 8, expected level should be 10.</td>
 <td>284</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 6, expected level should be 8.</td>
 <td>285</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child has incorrect indentation level 6, expected level should be 8.</td>
 <td>286</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -8673,49 +8666,49 @@
 <td>287</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.TestPrefetchWithBucketCache.java">org/apache/hadoop/hbase/io/hfile/TestPrefetchWithBucketCache.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child has incorrect indentation level 6, expected level should be 8.</td>
 <td>280</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' has incorrect indentation level 6, expected level should be 8.</td>
 <td>281</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 10, expected level should be 12.</td>
 <td>283</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rparen' has incorrect indentation level 6, expected level should be 8.</td>
 <td>284</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child has incorrect indentation level 8, expected level should be 10.</td>
 <td>285</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' has incorrect indentation level 6, expected level should be 8.</td>
 <td>286</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -8723,13 +8716,13 @@
 <td>287</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.TestScannerSelectionUsingKeyRange.java">org/apache/hadoop/hbase/io/hfile/TestScannerSelectionUsingKeyRange.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
@@ -8737,127 +8730,127 @@
 <td>131</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.bucket.BucketAllocator.java">org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>55</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>71</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>131</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>137</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>138</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>165</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>211</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>213</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>223</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>224</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>257</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>258</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>295</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
 <td>304</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>305</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>329</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>431</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>467</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>475</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8865,71 +8858,71 @@
 <td>692</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.bucket.BucketCache.java">org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
-<td>1689</td></tr>
-<tr class="a">
+<td>1743</td></tr>
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'for' construct must use '{}'s.</td>
-<td>1702</td></tr>
-<tr class="b">
+<td>1756</td></tr>
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>NoFinalizer</td>
 <td>Avoid using finalizer method.</td>
-<td>1734</td></tr>
-<tr class="a">
+<td>1788</td></tr>
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2034</td></tr>
-<tr class="b">
+<td>2088</td></tr>
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>2037</td></tr></table></section><section>
+<td>2091</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.bucket.TestBucketCache.java">org/apache/hadoop/hbase/io/hfile/bucket/TestBucketCache.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>191</td></tr>
-<tr class="a">
+<td>201</td></tr>
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>879</td></tr></table></section><section>
+<td>886</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.hfile.bucket.TestBucketWriterThread.java">org/apache/hadoop/hbase/io/hfile/bucket/TestBucketWriterThread.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8937,25 +8930,25 @@
 <td>104</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.util.LRUDictionary.java">org/apache/hadoop/hbase/io/util/LRUDictionary.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>66</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>132</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -8963,19 +8956,19 @@
 <td>144</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.util.MemorySizeUtil.java">org/apache/hadoop/hbase/io/util/MemorySizeUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>34</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -8983,67 +8976,67 @@
 <td>137</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.io.util.StreamUtils.java">org/apache/hadoop/hbase/io/util/StreamUtils.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>38</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>59</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>63</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>67</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>71</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>93</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>97</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>101</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
 <td>Inner assignments should be avoided.</td>
 <td>105</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -9051,13 +9044,13 @@
 <td>260</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.ipc.BlockingRpcConnection.java">org/apache/hadoop/hbase/ipc/BlockingRpcConnection.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -9065,19 +9058,19 @@
 <td>627</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.ipc.BufferCallBeforeInitHandler.java">org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'action' must be private and have accessor methods.</td>
 <td>50</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
@@ -9085,13 +9078,13 @@
 <td>52</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.ipc.BufferChain.java">org/apache/hadoop/hbase/ipc/BufferChain.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -9099,13 +9092,13 @@
 <td>48</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.ipc.IPCUtil.java">org/apache/hadoop/hbase/ipc/IPCUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -9113,31 +9106,31 @@
 <td>64</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.ipc.RpcServer.java">org/apache/hadoop/hbase/ipc/RpcServer.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>408</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>409</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>509</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -9145,25 +9138,25 @@
 <td>510</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.ipc.RpcServerFactory.java">org/apache/hadoop/hbase/ipc/RpcServerFactory.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
 <td>Class RpcServerFactory should be declared as final.</td>
 <td>33</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>60</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -9171,31 +9164,31 @@
 <td>61</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.ipc.SimpleRpcServer.java">org/apache/hadoop/hbase/ipc/SimpleRpcServer.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td>72</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>220</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>223</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -9203,25 +9196,25 @@
 <td>258</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.ipc.SimpleRpcServerResponder.java">org/apache/hadoop/hbase/ipc/SimpleRpcServerResponder.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td>42</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>89</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -9229,13 +9222,13 @@
 <td>96</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.ipc.SimpleServerCall.java">org/apache/hadoop/hbase/ipc/SimpleServerCall.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
@@ -9243,19 +9236,19 @@
 <td>37</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.ipc.SimpleServerRpcConnection.java">org/apache/hadoop/hbase/ipc/SimpleServerRpcConnection.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td>55</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -9263,13 +9256,13 @@
 <td>182</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.ipc.TestRWQueueRpcExecutor.java">org/apache/hadoop/hbase/ipc/TestRWQueueRpcExecutor.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -9277,13 +9270,13 @@
 <td>25</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.log.HBaseMarkers.java">org/apache/hadoop/hbase/log/HBaseMarkers.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -9291,13 +9284,13 @@
 <td>24</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.mapred.Driver.java">org/apache/hadoop/hbase/mapred/Driver.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
@@ -9305,19 +9298,19 @@
 <td>28</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.mapred.HRegionPartitioner.java">org/apache/hadoop/hbase/mapred/HRegionPartitioner.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>37</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -9325,13 +9318,13 @@
 <td>38</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.mapred.MultiTableSnapshotInputFormat.java">org/apache/hadoop/hbase/mapred/MultiTableSnapshotInputFormat.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -9339,19 +9332,19 @@
 <td>51</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.mapred.TableMapReduceUtil.java">org/apache/hadoop/hbase/mapred/TableMapReduceUtil.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>52</td></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -9359,31 +9352,31 @@
 <td>355</td></tr></table></section><section>
 <h3 id="org.apache.hadoop.hbase.mapred.TestGroupingTableMap.java">org/apache/hadoop/hbase/mapred/TestGroupingTableMap.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>87</td></tr>
-<tr class="b">
+<tr class="a">
 <td><figure><img src="images/icon_error_sml.gif" alt="" /></figure>&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>120</td></tr>
-<tr class="a">
... 57888 lines suppressed ...