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> </dd>
<dt>createBlockCache(Configuration) - Static method in class org.apache.hadoop.hbase.io.hfile.BlockCacheFactory</dt>
<dd> </dd>
+<dt>createBlockCache(Configuration, Map<String, HRegion>) - Static method in class org.apache.hadoop.hbase.io.hfile.BlockCacheFactory</dt>
+<dd> </dd>
<dt>createBlockingRpcChannel(ServerName, User, int) - Method in class org.apache.hadoop.hbase.ipc.AbstractRpcClient</dt>
<dd> </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<InetSocketAddress>) - Method in class org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache</dt>
+<dd> </dd>
<dt>createMemStoreCompactor(MemoryCompactionPolicy) - Method in class org.apache.hadoop.hbase.regionserver.CompactingMemStore</dt>
<dd> </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> </dd>
<dt>list(String, long) - Method in class org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient</dt>
<dd> </dd>
+<dt>listAllFilesNames(Map<String, HRegion>) - Static method in class org.apache.hadoop.hbase.io.hfile.BlockCacheUtil</dt>
+<dd> </dd>
<dt>listAllHFileRefs() - Method in class org.apache.hadoop.hbase.replication.ZKReplicationQueueStorageForMigration</dt>
<dd>
<div class="block">Pair<PeerId, List<HFileRefs>></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> </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 conf)</code></div>
<div class="col-last even-row-color"> </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 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><<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> onlineRegions)</code></div>
+<div class="col-last odd-row-color"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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 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><<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> onlineRegions)</code></div>
+<div class="col-last even-row-color"> </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><<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>></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><<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"> </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 < 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<? extends BlockCache> 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<? extends BlockCache>) 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<? extends BlockCache> 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() <= 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<String, HRegion> 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 < 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<? extends BlockCache> 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<? extends BlockCache>) 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<? extends BlockCache> 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 <= 0) {</span>
-<span class="source-line-no">192</span><span id="line-192"> throw new IllegalStateException("bucketCacheSize <= 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 < 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<String, HRegion> 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() <= 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 <= 0) {</span>
+<span class="source-line-no">200</span><span id="line-200"> throw new IllegalStateException("bucketCacheSize <= 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 < 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<FastLongHistogram>() {</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<FastLongHistogram>() {</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 <code>filename</code> and counts of <code>blocks</code> */</span>
-<span class="source-line-no">122</span><span id="line-122"> public static String toJSON(String filename, NavigableSet<CachedBlock> 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 && 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 <code>cbsf</code> 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 <code>bc</code> 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 <code>bc</code> 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) && (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 <code>filename</code> and counts of <code>blocks</code> */</span>
+<span class="source-line-no">126</span><span id="line-126"> public static String toJSON(String filename, NavigableSet<CachedBlock> 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 && 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 <code>cbsf</code> 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 <code>bc</code> 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 <code>bc</code> 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 < 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 > 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) && (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 < 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 > 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<String, NavigableSet<CachedBlock>> cachedBlockByFile =</span>
-<span class="source-line-no">319</span><span id="line-319"> new ConcurrentSkipListMap<>();</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<CachedBlock> 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<>();</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 && 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 <code>hbase.ui.blockcache.by.file.max</code> (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 >= 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<String, NavigableSet<CachedBlock>> 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<String> listAllFilesNames(Map<String, HRegion> onlineRegions) {</span>
+<span class="source-line-no">250</span><span id="line-250"> Set<String> files = new HashSet<>();</span>
+<span class="source-line-no">251</span><span id="line-251"> onlineRegions.values().forEach(r -> {</span>
+<span class="source-line-no">252</span><span id="line-252"> r.getStores().forEach(s -> {</span>
+<span class="source-line-no">253</span><span id="line-253"> s.getStorefiles().forEach(f -> 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<String, NavigableSet<CachedBlock>> cachedBlockByFile =</span>
+<span class="source-line-no">333</span><span id="line-333"> new ConcurrentSkipListMap<>();</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<CachedBlock> 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<>();</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 && 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 <code>hbase.ui.blockcache.by.file.max</code> (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 >= 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<String, NavigableSet<CachedBlock>> 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<FastLongHistogram>() {</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<FastLongHistogram>() {</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 <code>filename</code> and counts of <code>blocks</code> */</span>
-<span class="source-line-no">122</span><span id="line-122"> public static String toJSON(String filename, NavigableSet<CachedBlock> 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 && 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 <code>cbsf</code> 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 <code>bc</code> 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 <code>bc</code> 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) && (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 <code>filename</code> and counts of <code>blocks</code> */</span>
+<span class="source-line-no">126</span><span id="line-126"> public static String toJSON(String filename, NavigableSet<CachedBlock> 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 && 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 <code>cbsf</code> 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 <code>bc</code> 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 <code>bc</code> 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 < 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 > 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) && (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 < 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 > 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<String, NavigableSet<CachedBlock>> cachedBlockByFile =</span>
-<span class="source-line-no">319</span><span id="line-319"> new ConcurrentSkipListMap<>();</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<CachedBlock> 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<>();</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 && 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 <code>hbase.ui.blockcache.by.file.max</code> (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 >= 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<String, NavigableSet<CachedBlock>> 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<String> listAllFilesNames(Map<String, HRegion> onlineRegions) {</span>
+<span class="source-line-no">250</span><span id="line-250"> Set<String> files = new HashSet<>();</span>
+<span class="source-line-no">251</span><span id="line-251"> onlineRegions.values().forEach(r -> {</span>
+<span class="source-line-no">252</span><span id="line-252"> r.getStores().forEach(s -> {</span>
+<span class="source-line-no">253</span><span id="line-253"> s.getStorefiles().forEach(f -> 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<String, NavigableSet<CachedBlock>> cachedBlockByFile =</span>
+<span class="source-line-no">333</span><span id="line-333"> new ConcurrentSkipListMap<>();</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<CachedBlock> 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<>();</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 && 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 <code>hbase.ui.blockcache.by.file.max</code> (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 >= 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<String, NavigableSet<CachedBlock>> 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 <MAX_SIZE> 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<InetSocketAddress> serverAddresses = new ArrayList<>(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() > 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 -> {</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"> && (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 < 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<Runnable> 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<CachedBlock> iterator() {</span>
-<span class="source-line-no">285</span><span id="line-285"> return new Iterator<CachedBlock>() {</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<HFileBlock> {</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 <MAX_SIZE> 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<InetSocketAddress> serverAddresses = new ArrayList<>(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<InetSocketAddress> 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() > 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 -> {</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"> && (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 < 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<Runnable> 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<CachedBlock> iterator() {</span>
+<span class="source-line-no">291</span><span id="line-291"> return new Iterator<CachedBlock>() {</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<HFileBlock> {</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> 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>"2"</code></li></ul></td>
-<td>3</td>
-<td><figure><img src="images/icon_error_sml.gif" alt="" /></figure> 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> 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> 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> 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>"^package.*|^import.*|a href|href|http://|https://|ftp://|org.apache.thrift.|com.google.protobuf.|hbase.protobuf.generated"</code></li></ul></td>
<td>140</td>
<td><figure><img src="images/icon_error_sml.gif" alt="" /></figure> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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> 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 ...