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 2017/06/16 15:00:27 UTC

[01/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site 946f218bf -> cd7ae54c5


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsNoOptimizeStoreScanner.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsNoOptimizeStoreScanner.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsNoOptimizeStoreScanner.html
index bd482fe..13dc8e9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsNoOptimizeStoreScanner.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsNoOptimizeStoreScanner.html
@@ -233,7 +233,7 @@ extends org.apache.hadoop.hbase.regionserver.StoreScanner</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.StoreScanner</h3>
-<code>checkFlushed, checkScanOrder, close, enableLazySeekGlobally, getAllScannersForTesting, getEstimatedNumberOfKvsScanned, getReadPoint, getScannerOrder, next, next, next, peek, reopenAfterFlush, reseek, resetKVHeap, seek, seekAsDirection, seekScanners, seekToNextRow, selectScannersFrom, shipped, trySkipToNextRow, updateReaders</code></li>
+<code>checkFlushed, checkScanOrder, close, enableLazySeekGlobally, getAllScannersForTesting, getEstimatedNumberOfKvsScanned, getReadPoint, getScannerOrder, isScanUsePread, next, next, next, peek, reopenAfterFlush, reseek, resetKVHeap, seek, seekAsDirection, seekScanners, seekToNextRow, selectScannersFrom, shipped, trySkipToNextRow, updateReaders</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsStoreScanner.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsStoreScanner.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsStoreScanner.html
index 9b58463..69478e6 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsStoreScanner.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsStoreScanner.html
@@ -233,7 +233,7 @@ extends org.apache.hadoop.hbase.regionserver.StoreScanner</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.StoreScanner</h3>
-<code>checkFlushed, checkScanOrder, close, enableLazySeekGlobally, getAllScannersForTesting, getEstimatedNumberOfKvsScanned, getReadPoint, getScannerOrder, next, next, next, peek, reopenAfterFlush, reseek, resetKVHeap, seek, seekAsDirection, seekScanners, seekToNextRow, selectScannersFrom, shipped, trySkipToNextRow, updateReaders</code></li>
+<code>checkFlushed, checkScanOrder, close, enableLazySeekGlobally, getAllScannersForTesting, getEstimatedNumberOfKvsScanned, getReadPoint, getScannerOrder, isScanUsePread, next, next, next, peek, reopenAfterFlush, reseek, resetKVHeap, seek, seekAsDirection, seekScanners, seekToNextRow, selectScannersFrom, shipped, trySkipToNextRow, updateReaders</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.html
index 156521d..18beacb 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -372,38 +372,42 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </tr>
 <tr id="i15" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testScannerReseekDoesntNPE--">testScannerReseekDoesntNPE</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testPreadNotEnabledForCompactionStoreScanners--">testPreadNotEnabledForCompactionStoreScanners</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i16" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testScanSameTimestamp--">testScanSameTimestamp</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testScannerReseekDoesntNPE--">testScannerReseekDoesntNPE</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testScanTimeRange--">testScanTimeRange</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testScanSameTimestamp--">testScanSameTimestamp</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i18" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testSkipColumn--">testSkipColumn</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testScanTimeRange--">testScanTimeRange</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i19" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testWildCardOneVersionScan--">testWildCardOneVersionScan</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testSkipColumn--">testSkipColumn</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i20" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testWildCardScannerUnderDeletes--">testWildCardScannerUnderDeletes</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testWildCardOneVersionScan--">testWildCardOneVersionScan</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i21" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testWildCardTtlScan--">testWildCardTtlScan</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testWildCardScannerUnderDeletes--">testWildCardScannerUnderDeletes</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i22" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testWithColumnCountGetFilter--">testWithColumnCountGetFilter</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testWildCardTtlScan--">testWildCardTtlScan</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i23" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testWithColumnCountGetFilter--">testWithColumnCountGetFilter</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i24" class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testWontNextToNext--">testWontNextToNext</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
@@ -1046,7 +1050,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <a name="testDeleteMarkerLongevity--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>testDeleteMarkerLongevity</h4>
 <pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#line.923">testDeleteMarkerLongevity</a>()
@@ -1057,6 +1061,20 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </dl>
 </li>
 </ul>
+<a name="testPreadNotEnabledForCompactionStoreScanners--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testPreadNotEnabledForCompactionStoreScanners</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#line.997">testPreadNotEnabledForCompactionStoreScanners</a>()
+                                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 9169580..50a504d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -622,10 +622,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
index 5537618..c1cfee1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -249,9 +249,9 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index ea1befb..af22306 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -140,9 +140,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/TestWALSplit.Corruptions.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">TestWALSplit.Corruptions</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellGridStoreScanner.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellGridStoreScanner.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellGridStoreScanner.html
index 9c35579..a9e281e 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellGridStoreScanner.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellGridStoreScanner.html
@@ -1000,7 +1000,23 @@
 <span class="sourceLineNo">992</span>      EnvironmentEdgeManagerTestHelper.reset();<a name="line.992"></a>
 <span class="sourceLineNo">993</span>    }<a name="line.993"></a>
 <span class="sourceLineNo">994</span>  }<a name="line.994"></a>
-<span class="sourceLineNo">995</span>}<a name="line.995"></a>
+<span class="sourceLineNo">995</span><a name="line.995"></a>
+<span class="sourceLineNo">996</span>  @Test<a name="line.996"></a>
+<span class="sourceLineNo">997</span>  public void testPreadNotEnabledForCompactionStoreScanners() throws Exception {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>    ScanType scanType = ScanType.COMPACT_RETAIN_DELETES;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>    long now = System.currentTimeMillis();<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    KeyValue[] kvs = new KeyValue[] {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        new KeyValue(Bytes.toBytes("R1"), Bytes.toBytes("cf"), null, now - 1000,<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>            KeyValue.Type.DeleteFamily),<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>        KeyValueTestUtil.create("R1", "cf", "a", now - 10, KeyValue.Type.Put, "dont-care"), };<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>    List&lt;KeyValueScanner&gt; scanners = scanFixture(kvs);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    Scan scan = new Scan();<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    ScanInfo scanInfo = new ScanInfo(CONF, CF, 0, 1, 500, KeepDeletedCells.FALSE,<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        HConstants.DEFAULT_BLOCKSIZE, 0, CellComparator.COMPARATOR);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    StoreScanner storeScanner = new StoreScanner(scan, scanInfo, scanType, null, scanners);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>    assertFalse(storeScanner.isScanUsePread());<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>}<a name="line.1011"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsNoOptimizeStoreScanner.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsNoOptimizeStoreScanner.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsNoOptimizeStoreScanner.html
index 9c35579..a9e281e 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsNoOptimizeStoreScanner.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsNoOptimizeStoreScanner.html
@@ -1000,7 +1000,23 @@
 <span class="sourceLineNo">992</span>      EnvironmentEdgeManagerTestHelper.reset();<a name="line.992"></a>
 <span class="sourceLineNo">993</span>    }<a name="line.993"></a>
 <span class="sourceLineNo">994</span>  }<a name="line.994"></a>
-<span class="sourceLineNo">995</span>}<a name="line.995"></a>
+<span class="sourceLineNo">995</span><a name="line.995"></a>
+<span class="sourceLineNo">996</span>  @Test<a name="line.996"></a>
+<span class="sourceLineNo">997</span>  public void testPreadNotEnabledForCompactionStoreScanners() throws Exception {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>    ScanType scanType = ScanType.COMPACT_RETAIN_DELETES;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>    long now = System.currentTimeMillis();<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    KeyValue[] kvs = new KeyValue[] {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        new KeyValue(Bytes.toBytes("R1"), Bytes.toBytes("cf"), null, now - 1000,<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>            KeyValue.Type.DeleteFamily),<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>        KeyValueTestUtil.create("R1", "cf", "a", now - 10, KeyValue.Type.Put, "dont-care"), };<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>    List&lt;KeyValueScanner&gt; scanners = scanFixture(kvs);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    Scan scan = new Scan();<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    ScanInfo scanInfo = new ScanInfo(CONF, CF, 0, 1, 500, KeepDeletedCells.FALSE,<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        HConstants.DEFAULT_BLOCKSIZE, 0, CellComparator.COMPARATOR);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    StoreScanner storeScanner = new StoreScanner(scan, scanInfo, scanType, null, scanners);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>    assertFalse(storeScanner.isScanUsePread());<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>}<a name="line.1011"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsStoreScanner.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsStoreScanner.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsStoreScanner.html
index 9c35579..a9e281e 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsStoreScanner.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsStoreScanner.html
@@ -1000,7 +1000,23 @@
 <span class="sourceLineNo">992</span>      EnvironmentEdgeManagerTestHelper.reset();<a name="line.992"></a>
 <span class="sourceLineNo">993</span>    }<a name="line.993"></a>
 <span class="sourceLineNo">994</span>  }<a name="line.994"></a>
-<span class="sourceLineNo">995</span>}<a name="line.995"></a>
+<span class="sourceLineNo">995</span><a name="line.995"></a>
+<span class="sourceLineNo">996</span>  @Test<a name="line.996"></a>
+<span class="sourceLineNo">997</span>  public void testPreadNotEnabledForCompactionStoreScanners() throws Exception {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>    ScanType scanType = ScanType.COMPACT_RETAIN_DELETES;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>    long now = System.currentTimeMillis();<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    KeyValue[] kvs = new KeyValue[] {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        new KeyValue(Bytes.toBytes("R1"), Bytes.toBytes("cf"), null, now - 1000,<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>            KeyValue.Type.DeleteFamily),<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>        KeyValueTestUtil.create("R1", "cf", "a", now - 10, KeyValue.Type.Put, "dont-care"), };<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>    List&lt;KeyValueScanner&gt; scanners = scanFixture(kvs);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    Scan scan = new Scan();<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    ScanInfo scanInfo = new ScanInfo(CONF, CF, 0, 1, 500, KeepDeletedCells.FALSE,<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        HConstants.DEFAULT_BLOCKSIZE, 0, CellComparator.COMPARATOR);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    StoreScanner storeScanner = new StoreScanner(scan, scanInfo, scanType, null, scanners);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>    assertFalse(storeScanner.isScanUsePread());<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>}<a name="line.1011"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.KeyValueHeapWithCount.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.KeyValueHeapWithCount.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.KeyValueHeapWithCount.html
index 9c35579..a9e281e 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.KeyValueHeapWithCount.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.KeyValueHeapWithCount.html
@@ -1000,7 +1000,23 @@
 <span class="sourceLineNo">992</span>      EnvironmentEdgeManagerTestHelper.reset();<a name="line.992"></a>
 <span class="sourceLineNo">993</span>    }<a name="line.993"></a>
 <span class="sourceLineNo">994</span>  }<a name="line.994"></a>
-<span class="sourceLineNo">995</span>}<a name="line.995"></a>
+<span class="sourceLineNo">995</span><a name="line.995"></a>
+<span class="sourceLineNo">996</span>  @Test<a name="line.996"></a>
+<span class="sourceLineNo">997</span>  public void testPreadNotEnabledForCompactionStoreScanners() throws Exception {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>    ScanType scanType = ScanType.COMPACT_RETAIN_DELETES;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>    long now = System.currentTimeMillis();<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    KeyValue[] kvs = new KeyValue[] {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        new KeyValue(Bytes.toBytes("R1"), Bytes.toBytes("cf"), null, now - 1000,<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>            KeyValue.Type.DeleteFamily),<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>        KeyValueTestUtil.create("R1", "cf", "a", now - 10, KeyValue.Type.Put, "dont-care"), };<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>    List&lt;KeyValueScanner&gt; scanners = scanFixture(kvs);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    Scan scan = new Scan();<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    ScanInfo scanInfo = new ScanInfo(CONF, CF, 0, 1, 500, KeepDeletedCells.FALSE,<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        HConstants.DEFAULT_BLOCKSIZE, 0, CellComparator.COMPARATOR);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    StoreScanner storeScanner = new StoreScanner(scan, scanInfo, scanType, null, scanners);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>    assertFalse(storeScanner.isScanUsePread());<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>}<a name="line.1011"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.html
index 9c35579..a9e281e 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestStoreScanner.html
@@ -1000,7 +1000,23 @@
 <span class="sourceLineNo">992</span>      EnvironmentEdgeManagerTestHelper.reset();<a name="line.992"></a>
 <span class="sourceLineNo">993</span>    }<a name="line.993"></a>
 <span class="sourceLineNo">994</span>  }<a name="line.994"></a>
-<span class="sourceLineNo">995</span>}<a name="line.995"></a>
+<span class="sourceLineNo">995</span><a name="line.995"></a>
+<span class="sourceLineNo">996</span>  @Test<a name="line.996"></a>
+<span class="sourceLineNo">997</span>  public void testPreadNotEnabledForCompactionStoreScanners() throws Exception {<a name="line.997"></a>
+<span class="sourceLineNo">998</span>    ScanType scanType = ScanType.COMPACT_RETAIN_DELETES;<a name="line.998"></a>
+<span class="sourceLineNo">999</span>    long now = System.currentTimeMillis();<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    KeyValue[] kvs = new KeyValue[] {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>        new KeyValue(Bytes.toBytes("R1"), Bytes.toBytes("cf"), null, now - 1000,<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>            KeyValue.Type.DeleteFamily),<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>        KeyValueTestUtil.create("R1", "cf", "a", now - 10, KeyValue.Type.Put, "dont-care"), };<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>    List&lt;KeyValueScanner&gt; scanners = scanFixture(kvs);<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>    Scan scan = new Scan();<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>    ScanInfo scanInfo = new ScanInfo(CONF, CF, 0, 1, 500, KeepDeletedCells.FALSE,<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>        HConstants.DEFAULT_BLOCKSIZE, 0, CellComparator.COMPARATOR);<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    StoreScanner storeScanner = new StoreScanner(scan, scanInfo, scanType, null, scanners);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>    assertFalse(storeScanner.isScanUsePread());<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>  }<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>}<a name="line.1011"></a>
 
 
 


[12/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
index ed2fd92..590534b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
@@ -70,14 +70,14 @@
 <span class="sourceLineNo">062</span>    @org.jamon.annotations.Argument(name = "master", type = "HMaster")},<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  optionalArguments = {<a name="line.63"></a>
 <span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;")})<a name="line.72"></a>
+<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;"),<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager")})<a name="line.72"></a>
 <span class="sourceLineNo">073</span>public class MasterStatusTmpl<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  extends org.jamon.AbstractTemplateProxy<a name="line.74"></a>
 <span class="sourceLineNo">075</span>{<a name="line.75"></a>
@@ -135,142 +135,142 @@
 <span class="sourceLineNo">127</span>      return m_frags__IsNotDefault;<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    private boolean m_frags__IsNotDefault;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // 24, 1<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.131"></a>
+<span class="sourceLineNo">130</span>    // 26, 1<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void setFilter(String filter)<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      // 24, 1<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      m_deadServers = deadServers;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      m_deadServers__IsNotDefault = true;<a name="line.135"></a>
+<span class="sourceLineNo">133</span>      // 26, 1<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      m_filter = filter;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      m_filter__IsNotDefault = true;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.137"></a>
+<span class="sourceLineNo">137</span>    public String getFilter()<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      return m_deadServers;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>      return m_filter;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public boolean getDeadServers__IsNotDefault()<a name="line.142"></a>
+<span class="sourceLineNo">141</span>    private String m_filter;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    public boolean getFilter__IsNotDefault()<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return m_deadServers__IsNotDefault;<a name="line.144"></a>
+<span class="sourceLineNo">144</span>      return m_filter__IsNotDefault;<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private boolean m_deadServers__IsNotDefault;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    // 29, 1<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.148"></a>
+<span class="sourceLineNo">146</span>    private boolean m_filter__IsNotDefault;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // 28, 1<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public void setServerManager(ServerManager serverManager)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>    {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      // 29, 1<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      m_assignmentManager = assignmentManager;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      m_assignmentManager__IsNotDefault = true;<a name="line.152"></a>
+<span class="sourceLineNo">150</span>      // 28, 1<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      m_serverManager = serverManager;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      m_serverManager__IsNotDefault = true;<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    }<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    public AssignmentManager getAssignmentManager()<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    public ServerManager getServerManager()<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      return m_assignmentManager;<a name="line.156"></a>
+<span class="sourceLineNo">156</span>      return m_serverManager;<a name="line.156"></a>
 <span class="sourceLineNo">157</span>    }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    private AssignmentManager m_assignmentManager;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.159"></a>
+<span class="sourceLineNo">158</span>    private ServerManager m_serverManager;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    public boolean getServerManager__IsNotDefault()<a name="line.159"></a>
 <span class="sourceLineNo">160</span>    {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return m_assignmentManager__IsNotDefault;<a name="line.161"></a>
+<span class="sourceLineNo">161</span>      return m_serverManager__IsNotDefault;<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    // 27, 1<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    public void setFormat(String format)<a name="line.165"></a>
+<span class="sourceLineNo">163</span>    private boolean m_serverManager__IsNotDefault;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    // 25, 1<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      // 27, 1<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      m_format = format;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      m_format__IsNotDefault = true;<a name="line.169"></a>
+<span class="sourceLineNo">167</span>      // 25, 1<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      m_catalogJanitorEnabled = catalogJanitorEnabled;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      m_catalogJanitorEnabled__IsNotDefault = true;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public String getFormat()<a name="line.171"></a>
+<span class="sourceLineNo">171</span>    public boolean getCatalogJanitorEnabled()<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      return m_format;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>      return m_catalogJanitorEnabled;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private String m_format;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public boolean getFormat__IsNotDefault()<a name="line.176"></a>
+<span class="sourceLineNo">175</span>    private boolean m_catalogJanitorEnabled;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean getCatalogJanitorEnabled__IsNotDefault()<a name="line.176"></a>
 <span class="sourceLineNo">177</span>    {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return m_format__IsNotDefault;<a name="line.178"></a>
+<span class="sourceLineNo">178</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    private boolean m_format__IsNotDefault;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    // 26, 1<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    public void setFilter(String filter)<a name="line.182"></a>
+<span class="sourceLineNo">180</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    // 24, 1<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      // 26, 1<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      m_filter = filter;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      m_filter__IsNotDefault = true;<a name="line.186"></a>
+<span class="sourceLineNo">184</span>      // 24, 1<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      m_deadServers = deadServers;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      m_deadServers__IsNotDefault = true;<a name="line.186"></a>
 <span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    public String getFilter()<a name="line.188"></a>
+<span class="sourceLineNo">188</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.188"></a>
 <span class="sourceLineNo">189</span>    {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      return m_filter;<a name="line.190"></a>
+<span class="sourceLineNo">190</span>      return m_deadServers;<a name="line.190"></a>
 <span class="sourceLineNo">191</span>    }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    private String m_filter;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    public boolean getFilter__IsNotDefault()<a name="line.193"></a>
+<span class="sourceLineNo">192</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    public boolean getDeadServers__IsNotDefault()<a name="line.193"></a>
 <span class="sourceLineNo">194</span>    {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      return m_filter__IsNotDefault;<a name="line.195"></a>
+<span class="sourceLineNo">195</span>      return m_deadServers__IsNotDefault;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    private boolean m_filter__IsNotDefault;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    // 22, 1<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.199"></a>
+<span class="sourceLineNo">197</span>    private boolean m_deadServers__IsNotDefault;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // 27, 1<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    public void setFormat(String format)<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // 22, 1<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      m_metaLocation = metaLocation;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      m_metaLocation__IsNotDefault = true;<a name="line.203"></a>
+<span class="sourceLineNo">201</span>      // 27, 1<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      m_format = format;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      m_format__IsNotDefault = true;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public ServerName getMetaLocation()<a name="line.205"></a>
+<span class="sourceLineNo">205</span>    public String getFormat()<a name="line.205"></a>
 <span class="sourceLineNo">206</span>    {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      return m_metaLocation;<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      return m_format;<a name="line.207"></a>
 <span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    private ServerName m_metaLocation;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.210"></a>
+<span class="sourceLineNo">209</span>    private String m_format;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    public boolean getFormat__IsNotDefault()<a name="line.210"></a>
 <span class="sourceLineNo">211</span>    {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return m_metaLocation__IsNotDefault;<a name="line.212"></a>
+<span class="sourceLineNo">212</span>      return m_format__IsNotDefault;<a name="line.212"></a>
 <span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    // 28, 1<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    public void setServerManager(ServerManager serverManager)<a name="line.216"></a>
+<span class="sourceLineNo">214</span>    private boolean m_format__IsNotDefault;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    // 22, 1<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.216"></a>
 <span class="sourceLineNo">217</span>    {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      // 28, 1<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      m_serverManager = serverManager;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      m_serverManager__IsNotDefault = true;<a name="line.220"></a>
+<span class="sourceLineNo">218</span>      // 22, 1<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      m_metaLocation = metaLocation;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      m_metaLocation__IsNotDefault = true;<a name="line.220"></a>
 <span class="sourceLineNo">221</span>    }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    public ServerManager getServerManager()<a name="line.222"></a>
+<span class="sourceLineNo">222</span>    public ServerName getMetaLocation()<a name="line.222"></a>
 <span class="sourceLineNo">223</span>    {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      return m_serverManager;<a name="line.224"></a>
+<span class="sourceLineNo">224</span>      return m_metaLocation;<a name="line.224"></a>
 <span class="sourceLineNo">225</span>    }<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private ServerManager m_serverManager;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    public boolean getServerManager__IsNotDefault()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>    private ServerName m_metaLocation;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      return m_serverManager__IsNotDefault;<a name="line.229"></a>
+<span class="sourceLineNo">229</span>      return m_metaLocation__IsNotDefault;<a name="line.229"></a>
 <span class="sourceLineNo">230</span>    }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    private boolean m_serverManager__IsNotDefault;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    // 25, 1<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.233"></a>
+<span class="sourceLineNo">231</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    // 23, 1<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.233"></a>
 <span class="sourceLineNo">234</span>    {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      // 25, 1<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      m_catalogJanitorEnabled = catalogJanitorEnabled;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      m_catalogJanitorEnabled__IsNotDefault = true;<a name="line.237"></a>
+<span class="sourceLineNo">235</span>      // 23, 1<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      m_servers = servers;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      m_servers__IsNotDefault = true;<a name="line.237"></a>
 <span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public boolean getCatalogJanitorEnabled()<a name="line.239"></a>
+<span class="sourceLineNo">239</span>    public List&lt;ServerName&gt; getServers()<a name="line.239"></a>
 <span class="sourceLineNo">240</span>    {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return m_catalogJanitorEnabled;<a name="line.241"></a>
+<span class="sourceLineNo">241</span>      return m_servers;<a name="line.241"></a>
 <span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    private boolean m_catalogJanitorEnabled;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    public boolean getCatalogJanitorEnabled__IsNotDefault()<a name="line.244"></a>
+<span class="sourceLineNo">243</span>    private List&lt;ServerName&gt; m_servers;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    public boolean getServers__IsNotDefault()<a name="line.244"></a>
 <span class="sourceLineNo">245</span>    {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.246"></a>
+<span class="sourceLineNo">246</span>      return m_servers__IsNotDefault;<a name="line.246"></a>
 <span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    // 23, 1<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.250"></a>
+<span class="sourceLineNo">248</span>    private boolean m_servers__IsNotDefault;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // 29, 1<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.250"></a>
 <span class="sourceLineNo">251</span>    {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      // 23, 1<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      m_servers = servers;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      m_servers__IsNotDefault = true;<a name="line.254"></a>
+<span class="sourceLineNo">252</span>      // 29, 1<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      m_assignmentManager = assignmentManager;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      m_assignmentManager__IsNotDefault = true;<a name="line.254"></a>
 <span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public List&lt;ServerName&gt; getServers()<a name="line.256"></a>
+<span class="sourceLineNo">256</span>    public AssignmentManager getAssignmentManager()<a name="line.256"></a>
 <span class="sourceLineNo">257</span>    {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return m_servers;<a name="line.258"></a>
+<span class="sourceLineNo">258</span>      return m_assignmentManager;<a name="line.258"></a>
 <span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    private List&lt;ServerName&gt; m_servers;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public boolean getServers__IsNotDefault()<a name="line.261"></a>
+<span class="sourceLineNo">260</span>    private AssignmentManager m_assignmentManager;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.261"></a>
 <span class="sourceLineNo">262</span>    {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      return m_servers__IsNotDefault;<a name="line.263"></a>
+<span class="sourceLineNo">263</span>      return m_assignmentManager__IsNotDefault;<a name="line.263"></a>
 <span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private boolean m_servers__IsNotDefault;<a name="line.265"></a>
+<span class="sourceLineNo">265</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.265"></a>
 <span class="sourceLineNo">266</span>  }<a name="line.266"></a>
 <span class="sourceLineNo">267</span>  @Override<a name="line.267"></a>
 <span class="sourceLineNo">268</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.268"></a>
@@ -289,59 +289,59 @@
 <span class="sourceLineNo">281</span>    return this;<a name="line.281"></a>
 <span class="sourceLineNo">282</span>  }<a name="line.282"></a>
 <span class="sourceLineNo">283</span>  <a name="line.283"></a>
-<span class="sourceLineNo">284</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.285"></a>
+<span class="sourceLineNo">284</span>  protected String filter;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.285"></a>
 <span class="sourceLineNo">286</span>  {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.287"></a>
+<span class="sourceLineNo">287</span>    (getImplData()).setFilter(p_filter);<a name="line.287"></a>
 <span class="sourceLineNo">288</span>    return this;<a name="line.288"></a>
 <span class="sourceLineNo">289</span>  }<a name="line.289"></a>
 <span class="sourceLineNo">290</span>  <a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected AssignmentManager assignmentManager;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.292"></a>
+<span class="sourceLineNo">291</span>  protected ServerManager serverManager;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.292"></a>
 <span class="sourceLineNo">293</span>  {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.294"></a>
+<span class="sourceLineNo">294</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.294"></a>
 <span class="sourceLineNo">295</span>    return this;<a name="line.295"></a>
 <span class="sourceLineNo">296</span>  }<a name="line.296"></a>
 <span class="sourceLineNo">297</span>  <a name="line.297"></a>
-<span class="sourceLineNo">298</span>  protected String format;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.299"></a>
+<span class="sourceLineNo">298</span>  protected boolean catalogJanitorEnabled;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setCatalogJanitorEnabled(boolean p_catalogJanitorEnabled)<a name="line.299"></a>
 <span class="sourceLineNo">300</span>  {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    (getImplData()).setFormat(p_format);<a name="line.301"></a>
+<span class="sourceLineNo">301</span>    (getImplData()).setCatalogJanitorEnabled(p_catalogJanitorEnabled);<a name="line.301"></a>
 <span class="sourceLineNo">302</span>    return this;<a name="line.302"></a>
 <span class="sourceLineNo">303</span>  }<a name="line.303"></a>
 <span class="sourceLineNo">304</span>  <a name="line.304"></a>
-<span class="sourceLineNo">305</span>  protected String filter;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.306"></a>
+<span class="sourceLineNo">305</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.306"></a>
 <span class="sourceLineNo">307</span>  {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    (getImplData()).setFilter(p_filter);<a name="line.308"></a>
+<span class="sourceLineNo">308</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.308"></a>
 <span class="sourceLineNo">309</span>    return this;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span>  <a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected ServerName metaLocation;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.313"></a>
+<span class="sourceLineNo">312</span>  protected String format;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.315"></a>
+<span class="sourceLineNo">315</span>    (getImplData()).setFormat(p_format);<a name="line.315"></a>
 <span class="sourceLineNo">316</span>    return this;<a name="line.316"></a>
 <span class="sourceLineNo">317</span>  }<a name="line.317"></a>
 <span class="sourceLineNo">318</span>  <a name="line.318"></a>
-<span class="sourceLineNo">319</span>  protected ServerManager serverManager;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.320"></a>
+<span class="sourceLineNo">319</span>  protected ServerName metaLocation;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.320"></a>
 <span class="sourceLineNo">321</span>  {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.322"></a>
+<span class="sourceLineNo">322</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.322"></a>
 <span class="sourceLineNo">323</span>    return this;<a name="line.323"></a>
 <span class="sourceLineNo">324</span>  }<a name="line.324"></a>
 <span class="sourceLineNo">325</span>  <a name="line.325"></a>
-<span class="sourceLineNo">326</span>  protected boolean catalogJanitorEnabled;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setCatalogJanitorEnabled(boolean p_catalogJanitorEnabled)<a name="line.327"></a>
+<span class="sourceLineNo">326</span>  protected List&lt;ServerName&gt; servers;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.327"></a>
 <span class="sourceLineNo">328</span>  {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    (getImplData()).setCatalogJanitorEnabled(p_catalogJanitorEnabled);<a name="line.329"></a>
+<span class="sourceLineNo">329</span>    (getImplData()).setServers(p_servers);<a name="line.329"></a>
 <span class="sourceLineNo">330</span>    return this;<a name="line.330"></a>
 <span class="sourceLineNo">331</span>  }<a name="line.331"></a>
 <span class="sourceLineNo">332</span>  <a name="line.332"></a>
-<span class="sourceLineNo">333</span>  protected List&lt;ServerName&gt; servers;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.334"></a>
+<span class="sourceLineNo">333</span>  protected AssignmentManager assignmentManager;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.334"></a>
 <span class="sourceLineNo">335</span>  {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    (getImplData()).setServers(p_servers);<a name="line.336"></a>
+<span class="sourceLineNo">336</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.336"></a>
 <span class="sourceLineNo">337</span>    return this;<a name="line.337"></a>
 <span class="sourceLineNo">338</span>  }<a name="line.338"></a>
 <span class="sourceLineNo">339</span>  <a name="line.339"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
index ed2fd92..590534b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.Intf.html
@@ -70,14 +70,14 @@
 <span class="sourceLineNo">062</span>    @org.jamon.annotations.Argument(name = "master", type = "HMaster")},<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  optionalArguments = {<a name="line.63"></a>
 <span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;")})<a name="line.72"></a>
+<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;"),<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager")})<a name="line.72"></a>
 <span class="sourceLineNo">073</span>public class MasterStatusTmpl<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  extends org.jamon.AbstractTemplateProxy<a name="line.74"></a>
 <span class="sourceLineNo">075</span>{<a name="line.75"></a>
@@ -135,142 +135,142 @@
 <span class="sourceLineNo">127</span>      return m_frags__IsNotDefault;<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    private boolean m_frags__IsNotDefault;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // 24, 1<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.131"></a>
+<span class="sourceLineNo">130</span>    // 26, 1<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void setFilter(String filter)<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      // 24, 1<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      m_deadServers = deadServers;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      m_deadServers__IsNotDefault = true;<a name="line.135"></a>
+<span class="sourceLineNo">133</span>      // 26, 1<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      m_filter = filter;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      m_filter__IsNotDefault = true;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.137"></a>
+<span class="sourceLineNo">137</span>    public String getFilter()<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      return m_deadServers;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>      return m_filter;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public boolean getDeadServers__IsNotDefault()<a name="line.142"></a>
+<span class="sourceLineNo">141</span>    private String m_filter;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    public boolean getFilter__IsNotDefault()<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return m_deadServers__IsNotDefault;<a name="line.144"></a>
+<span class="sourceLineNo">144</span>      return m_filter__IsNotDefault;<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private boolean m_deadServers__IsNotDefault;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    // 29, 1<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.148"></a>
+<span class="sourceLineNo">146</span>    private boolean m_filter__IsNotDefault;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // 28, 1<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public void setServerManager(ServerManager serverManager)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>    {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      // 29, 1<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      m_assignmentManager = assignmentManager;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      m_assignmentManager__IsNotDefault = true;<a name="line.152"></a>
+<span class="sourceLineNo">150</span>      // 28, 1<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      m_serverManager = serverManager;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      m_serverManager__IsNotDefault = true;<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    }<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    public AssignmentManager getAssignmentManager()<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    public ServerManager getServerManager()<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      return m_assignmentManager;<a name="line.156"></a>
+<span class="sourceLineNo">156</span>      return m_serverManager;<a name="line.156"></a>
 <span class="sourceLineNo">157</span>    }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    private AssignmentManager m_assignmentManager;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.159"></a>
+<span class="sourceLineNo">158</span>    private ServerManager m_serverManager;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    public boolean getServerManager__IsNotDefault()<a name="line.159"></a>
 <span class="sourceLineNo">160</span>    {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return m_assignmentManager__IsNotDefault;<a name="line.161"></a>
+<span class="sourceLineNo">161</span>      return m_serverManager__IsNotDefault;<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    // 27, 1<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    public void setFormat(String format)<a name="line.165"></a>
+<span class="sourceLineNo">163</span>    private boolean m_serverManager__IsNotDefault;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    // 25, 1<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      // 27, 1<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      m_format = format;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      m_format__IsNotDefault = true;<a name="line.169"></a>
+<span class="sourceLineNo">167</span>      // 25, 1<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      m_catalogJanitorEnabled = catalogJanitorEnabled;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      m_catalogJanitorEnabled__IsNotDefault = true;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public String getFormat()<a name="line.171"></a>
+<span class="sourceLineNo">171</span>    public boolean getCatalogJanitorEnabled()<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      return m_format;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>      return m_catalogJanitorEnabled;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private String m_format;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public boolean getFormat__IsNotDefault()<a name="line.176"></a>
+<span class="sourceLineNo">175</span>    private boolean m_catalogJanitorEnabled;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean getCatalogJanitorEnabled__IsNotDefault()<a name="line.176"></a>
 <span class="sourceLineNo">177</span>    {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return m_format__IsNotDefault;<a name="line.178"></a>
+<span class="sourceLineNo">178</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    private boolean m_format__IsNotDefault;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    // 26, 1<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    public void setFilter(String filter)<a name="line.182"></a>
+<span class="sourceLineNo">180</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    // 24, 1<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      // 26, 1<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      m_filter = filter;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      m_filter__IsNotDefault = true;<a name="line.186"></a>
+<span class="sourceLineNo">184</span>      // 24, 1<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      m_deadServers = deadServers;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      m_deadServers__IsNotDefault = true;<a name="line.186"></a>
 <span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    public String getFilter()<a name="line.188"></a>
+<span class="sourceLineNo">188</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.188"></a>
 <span class="sourceLineNo">189</span>    {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      return m_filter;<a name="line.190"></a>
+<span class="sourceLineNo">190</span>      return m_deadServers;<a name="line.190"></a>
 <span class="sourceLineNo">191</span>    }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    private String m_filter;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    public boolean getFilter__IsNotDefault()<a name="line.193"></a>
+<span class="sourceLineNo">192</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    public boolean getDeadServers__IsNotDefault()<a name="line.193"></a>
 <span class="sourceLineNo">194</span>    {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      return m_filter__IsNotDefault;<a name="line.195"></a>
+<span class="sourceLineNo">195</span>      return m_deadServers__IsNotDefault;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    private boolean m_filter__IsNotDefault;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    // 22, 1<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.199"></a>
+<span class="sourceLineNo">197</span>    private boolean m_deadServers__IsNotDefault;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // 27, 1<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    public void setFormat(String format)<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // 22, 1<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      m_metaLocation = metaLocation;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      m_metaLocation__IsNotDefault = true;<a name="line.203"></a>
+<span class="sourceLineNo">201</span>      // 27, 1<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      m_format = format;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      m_format__IsNotDefault = true;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public ServerName getMetaLocation()<a name="line.205"></a>
+<span class="sourceLineNo">205</span>    public String getFormat()<a name="line.205"></a>
 <span class="sourceLineNo">206</span>    {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      return m_metaLocation;<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      return m_format;<a name="line.207"></a>
 <span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    private ServerName m_metaLocation;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.210"></a>
+<span class="sourceLineNo">209</span>    private String m_format;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    public boolean getFormat__IsNotDefault()<a name="line.210"></a>
 <span class="sourceLineNo">211</span>    {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return m_metaLocation__IsNotDefault;<a name="line.212"></a>
+<span class="sourceLineNo">212</span>      return m_format__IsNotDefault;<a name="line.212"></a>
 <span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    // 28, 1<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    public void setServerManager(ServerManager serverManager)<a name="line.216"></a>
+<span class="sourceLineNo">214</span>    private boolean m_format__IsNotDefault;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    // 22, 1<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.216"></a>
 <span class="sourceLineNo">217</span>    {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      // 28, 1<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      m_serverManager = serverManager;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      m_serverManager__IsNotDefault = true;<a name="line.220"></a>
+<span class="sourceLineNo">218</span>      // 22, 1<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      m_metaLocation = metaLocation;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      m_metaLocation__IsNotDefault = true;<a name="line.220"></a>
 <span class="sourceLineNo">221</span>    }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    public ServerManager getServerManager()<a name="line.222"></a>
+<span class="sourceLineNo">222</span>    public ServerName getMetaLocation()<a name="line.222"></a>
 <span class="sourceLineNo">223</span>    {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      return m_serverManager;<a name="line.224"></a>
+<span class="sourceLineNo">224</span>      return m_metaLocation;<a name="line.224"></a>
 <span class="sourceLineNo">225</span>    }<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private ServerManager m_serverManager;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    public boolean getServerManager__IsNotDefault()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>    private ServerName m_metaLocation;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      return m_serverManager__IsNotDefault;<a name="line.229"></a>
+<span class="sourceLineNo">229</span>      return m_metaLocation__IsNotDefault;<a name="line.229"></a>
 <span class="sourceLineNo">230</span>    }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    private boolean m_serverManager__IsNotDefault;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    // 25, 1<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.233"></a>
+<span class="sourceLineNo">231</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    // 23, 1<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.233"></a>
 <span class="sourceLineNo">234</span>    {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      // 25, 1<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      m_catalogJanitorEnabled = catalogJanitorEnabled;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      m_catalogJanitorEnabled__IsNotDefault = true;<a name="line.237"></a>
+<span class="sourceLineNo">235</span>      // 23, 1<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      m_servers = servers;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      m_servers__IsNotDefault = true;<a name="line.237"></a>
 <span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public boolean getCatalogJanitorEnabled()<a name="line.239"></a>
+<span class="sourceLineNo">239</span>    public List&lt;ServerName&gt; getServers()<a name="line.239"></a>
 <span class="sourceLineNo">240</span>    {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return m_catalogJanitorEnabled;<a name="line.241"></a>
+<span class="sourceLineNo">241</span>      return m_servers;<a name="line.241"></a>
 <span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    private boolean m_catalogJanitorEnabled;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    public boolean getCatalogJanitorEnabled__IsNotDefault()<a name="line.244"></a>
+<span class="sourceLineNo">243</span>    private List&lt;ServerName&gt; m_servers;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    public boolean getServers__IsNotDefault()<a name="line.244"></a>
 <span class="sourceLineNo">245</span>    {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.246"></a>
+<span class="sourceLineNo">246</span>      return m_servers__IsNotDefault;<a name="line.246"></a>
 <span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    // 23, 1<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.250"></a>
+<span class="sourceLineNo">248</span>    private boolean m_servers__IsNotDefault;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // 29, 1<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.250"></a>
 <span class="sourceLineNo">251</span>    {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      // 23, 1<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      m_servers = servers;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      m_servers__IsNotDefault = true;<a name="line.254"></a>
+<span class="sourceLineNo">252</span>      // 29, 1<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      m_assignmentManager = assignmentManager;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      m_assignmentManager__IsNotDefault = true;<a name="line.254"></a>
 <span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public List&lt;ServerName&gt; getServers()<a name="line.256"></a>
+<span class="sourceLineNo">256</span>    public AssignmentManager getAssignmentManager()<a name="line.256"></a>
 <span class="sourceLineNo">257</span>    {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return m_servers;<a name="line.258"></a>
+<span class="sourceLineNo">258</span>      return m_assignmentManager;<a name="line.258"></a>
 <span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    private List&lt;ServerName&gt; m_servers;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public boolean getServers__IsNotDefault()<a name="line.261"></a>
+<span class="sourceLineNo">260</span>    private AssignmentManager m_assignmentManager;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.261"></a>
 <span class="sourceLineNo">262</span>    {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      return m_servers__IsNotDefault;<a name="line.263"></a>
+<span class="sourceLineNo">263</span>      return m_assignmentManager__IsNotDefault;<a name="line.263"></a>
 <span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private boolean m_servers__IsNotDefault;<a name="line.265"></a>
+<span class="sourceLineNo">265</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.265"></a>
 <span class="sourceLineNo">266</span>  }<a name="line.266"></a>
 <span class="sourceLineNo">267</span>  @Override<a name="line.267"></a>
 <span class="sourceLineNo">268</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.268"></a>
@@ -289,59 +289,59 @@
 <span class="sourceLineNo">281</span>    return this;<a name="line.281"></a>
 <span class="sourceLineNo">282</span>  }<a name="line.282"></a>
 <span class="sourceLineNo">283</span>  <a name="line.283"></a>
-<span class="sourceLineNo">284</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.285"></a>
+<span class="sourceLineNo">284</span>  protected String filter;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.285"></a>
 <span class="sourceLineNo">286</span>  {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.287"></a>
+<span class="sourceLineNo">287</span>    (getImplData()).setFilter(p_filter);<a name="line.287"></a>
 <span class="sourceLineNo">288</span>    return this;<a name="line.288"></a>
 <span class="sourceLineNo">289</span>  }<a name="line.289"></a>
 <span class="sourceLineNo">290</span>  <a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected AssignmentManager assignmentManager;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.292"></a>
+<span class="sourceLineNo">291</span>  protected ServerManager serverManager;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.292"></a>
 <span class="sourceLineNo">293</span>  {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.294"></a>
+<span class="sourceLineNo">294</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.294"></a>
 <span class="sourceLineNo">295</span>    return this;<a name="line.295"></a>
 <span class="sourceLineNo">296</span>  }<a name="line.296"></a>
 <span class="sourceLineNo">297</span>  <a name="line.297"></a>
-<span class="sourceLineNo">298</span>  protected String format;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.299"></a>
+<span class="sourceLineNo">298</span>  protected boolean catalogJanitorEnabled;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setCatalogJanitorEnabled(boolean p_catalogJanitorEnabled)<a name="line.299"></a>
 <span class="sourceLineNo">300</span>  {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    (getImplData()).setFormat(p_format);<a name="line.301"></a>
+<span class="sourceLineNo">301</span>    (getImplData()).setCatalogJanitorEnabled(p_catalogJanitorEnabled);<a name="line.301"></a>
 <span class="sourceLineNo">302</span>    return this;<a name="line.302"></a>
 <span class="sourceLineNo">303</span>  }<a name="line.303"></a>
 <span class="sourceLineNo">304</span>  <a name="line.304"></a>
-<span class="sourceLineNo">305</span>  protected String filter;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.306"></a>
+<span class="sourceLineNo">305</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.306"></a>
 <span class="sourceLineNo">307</span>  {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    (getImplData()).setFilter(p_filter);<a name="line.308"></a>
+<span class="sourceLineNo">308</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.308"></a>
 <span class="sourceLineNo">309</span>    return this;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span>  <a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected ServerName metaLocation;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.313"></a>
+<span class="sourceLineNo">312</span>  protected String format;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.315"></a>
+<span class="sourceLineNo">315</span>    (getImplData()).setFormat(p_format);<a name="line.315"></a>
 <span class="sourceLineNo">316</span>    return this;<a name="line.316"></a>
 <span class="sourceLineNo">317</span>  }<a name="line.317"></a>
 <span class="sourceLineNo">318</span>  <a name="line.318"></a>
-<span class="sourceLineNo">319</span>  protected ServerManager serverManager;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.320"></a>
+<span class="sourceLineNo">319</span>  protected ServerName metaLocation;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.320"></a>
 <span class="sourceLineNo">321</span>  {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.322"></a>
+<span class="sourceLineNo">322</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.322"></a>
 <span class="sourceLineNo">323</span>    return this;<a name="line.323"></a>
 <span class="sourceLineNo">324</span>  }<a name="line.324"></a>
 <span class="sourceLineNo">325</span>  <a name="line.325"></a>
-<span class="sourceLineNo">326</span>  protected boolean catalogJanitorEnabled;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setCatalogJanitorEnabled(boolean p_catalogJanitorEnabled)<a name="line.327"></a>
+<span class="sourceLineNo">326</span>  protected List&lt;ServerName&gt; servers;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.327"></a>
 <span class="sourceLineNo">328</span>  {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    (getImplData()).setCatalogJanitorEnabled(p_catalogJanitorEnabled);<a name="line.329"></a>
+<span class="sourceLineNo">329</span>    (getImplData()).setServers(p_servers);<a name="line.329"></a>
 <span class="sourceLineNo">330</span>    return this;<a name="line.330"></a>
 <span class="sourceLineNo">331</span>  }<a name="line.331"></a>
 <span class="sourceLineNo">332</span>  <a name="line.332"></a>
-<span class="sourceLineNo">333</span>  protected List&lt;ServerName&gt; servers;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.334"></a>
+<span class="sourceLineNo">333</span>  protected AssignmentManager assignmentManager;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.334"></a>
 <span class="sourceLineNo">335</span>  {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    (getImplData()).setServers(p_servers);<a name="line.336"></a>
+<span class="sourceLineNo">336</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.336"></a>
 <span class="sourceLineNo">337</span>    return this;<a name="line.337"></a>
 <span class="sourceLineNo">338</span>  }<a name="line.338"></a>
 <span class="sourceLineNo">339</span>  <a name="line.339"></a>


[22/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
index 959e3ef..ac32645 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.WriteState.html
@@ -1401,6821 +1401,6830 @@
 <span class="sourceLineNo">1393</span>  @Override<a name="line.1393"></a>
 <span class="sourceLineNo">1394</span>  public boolean isSplittable() {<a name="line.1394"></a>
 <span class="sourceLineNo">1395</span>    boolean result = isAvailable() &amp;&amp; !hasReferences();<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result, new Throwable("LOGGING"));<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    return result;<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  }<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span><a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  @Override<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>  public boolean isMergeable() {<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    if (!isAvailable()) {<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      LOG.debug("Region " + this<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>          + " is not mergeable because it is closing or closed");<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      return false;<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    }<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    if (hasReferences()) {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      LOG.debug("Region " + this<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>          + " is not mergeable because it has references");<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      return false;<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span><a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    return true;<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span><a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>  public boolean areWritesEnabled() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>    synchronized(this.writestate) {<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      return this.writestate.writesEnabled;<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>  }<a name="line.1420"></a>
+<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result + " " + getRegionInfo().getShortNameToLog(),<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>      new Throwable("LOGGING: REMOVE"));<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    // REMOVE BELOW!!!!<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>    LOG.info("DEBUG LIST ALL FILES");<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    for (Store store: this.stores.values()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>      LOG.info("store " + store.getColumnFamilyName());<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>      for (StoreFile sf: store.getStorefiles()) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        LOG.info(sf.toStringDetailed());<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>      }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>    }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return result;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>  public boolean isMergeable() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    if (!isAvailable()) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      LOG.debug("Region " + this<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>          + " is not mergeable because it is closing or closed");<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>      return false;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>    if (hasReferences()) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      LOG.debug("Region " + this<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>          + " is not mergeable because it has references");<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      return false;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
 <span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  @VisibleForTesting<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>    return mvcc;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>  }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>  @Override<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>  public long getMaxFlushedSeqId() {<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    return maxFlushedSeqId;<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  @Override<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      // This scan can read even uncommitted transactions<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      return Long.MAX_VALUE;<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>    }<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>    return mvcc.getReadPoint();<a name="line.1438"></a>
+<span class="sourceLineNo">1422</span>    return true;<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>  }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span><a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>  public boolean areWritesEnabled() {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>    synchronized(this.writestate) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>      return this.writestate.writesEnabled;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>    }<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>  }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span><a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>  @VisibleForTesting<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>    return mvcc;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>  }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  @Override<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>  public long getMaxFlushedSeqId() {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>    return maxFlushedSeqId;<a name="line.1438"></a>
 <span class="sourceLineNo">1439</span>  }<a name="line.1439"></a>
 <span class="sourceLineNo">1440</span><a name="line.1440"></a>
 <span class="sourceLineNo">1441</span>  @Override<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    return getReadPoint(isolationLevel);<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>  }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span><a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>  @Override<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  /**<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * service any more calls.<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   *<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>   * time-sensitive thread.<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>   *<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * vector if already closed and null if judged that it should not close.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   *<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * @throws IOException e<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>   * caller MUST abort after this.<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>   */<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    return close(false);<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>  private final Object closeLock = new Object();<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span><a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>  /** Conf key for the periodic flush interval */<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  /** Default interval for the memstore flush */<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  /** Default interval for System tables memstore flush */<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span><a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      "hbase.regionserver.flush.per.changes";<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  /**<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>   */<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   * Shut down each HStore, don't service any more calls.<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   *<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * This method could take some time to execute, so don't call it from a<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * time-sensitive thread.<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   *<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>   * @param abort true if server is aborting (only during testing)<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>   * we are not to close at this time or we are already closed.<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>   *<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>   * @throws IOException e<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>   * caller MUST abort after this.<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>   */<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>    // threads attempting to close will run up against each other.<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        "Closing region " + this +<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        (abort ? " due to abort" : ""));<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span><a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>    status.setStatus("Waiting for close lock");<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>    try {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>      synchronized (closeLock) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        return doClose(abort, status);<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      }<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>    } finally {<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      status.cleanup();<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  /**<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>   * Exposed for some very specific unit tests.<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>   */<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>  @VisibleForTesting<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>  public void setClosing(boolean closing) {<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>    this.closing.set(closing);<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>  }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>  /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>   */<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  @VisibleForTesting<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      justification="I think FindBugs is confused")<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      throws IOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    if (isClosed()) {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      LOG.warn("Region " + this + " already closed");<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      return null;<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1442</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      // This scan can read even uncommitted transactions<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>      return Long.MAX_VALUE;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>    return mvcc.getReadPoint();<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span><a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>  @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>    return getReadPoint(isolationLevel);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>  }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span><a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  @Override<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span><a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>  /**<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>   * service any more calls.<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>   *<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>   * time-sensitive thread.<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>   *<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>   * vector if already closed and null if judged that it should not close.<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>   *<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>   * @throws IOException e<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>   * caller MUST abort after this.<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>   */<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>    return close(false);<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>  }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span><a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>  private final Object closeLock = new Object();<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span><a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  /** Conf key for the periodic flush interval */<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>  /** Default interval for the memstore flush */<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>  /** Default interval for System tables memstore flush */<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      "hbase.regionserver.flush.per.changes";<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>  /**<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>   * Shut down each HStore, don't service any more calls.<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>   *<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>   * This method could take some time to execute, so don't call it from a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>   * time-sensitive thread.<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>   *<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>   * @param abort true if server is aborting (only during testing)<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>   * we are not to close at this time or we are already closed.<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>   *<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>   * @throws IOException e<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>   * caller MUST abort after this.<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>   */<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>    // threads attempting to close will run up against each other.<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        "Closing region " + this +<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        (abort ? " due to abort" : ""));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>    status.setStatus("Waiting for close lock");<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>    try {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      synchronized (closeLock) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>        return doClose(abort, status);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>    } finally {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      status.cleanup();<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span><a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>  /**<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>   * Exposed for some very specific unit tests.<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>   */<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>  @VisibleForTesting<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  public void setClosing(boolean closing) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>    this.closing.set(closing);<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span><a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>  /**<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  @VisibleForTesting<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
 <span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>    if (coprocessorHost != null) {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      this.coprocessorHost.preClose(abort);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    boolean canFlush = true;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    synchronized (writestate) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      // Disable compacting and flushing by background threads for this<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // region.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      canFlush = !writestate.readOnly;<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>      writestate.writesEnabled = false;<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      waitForFlushesAndCompactions();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>    }<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    // the close flag?<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      status.setStatus("Pre-flushing region before close");<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      LOG.info("Running close preflush of " + this);<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      try {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        internalFlushcache(status);<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      } catch (IOException ioe) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        // Failed to flush the region. Keep going.<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>    if (timeoutForWriteLock == null<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      // block waiting for the lock for closing<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    } else {<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      try {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>        if (!succeed) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        }<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      } catch (InterruptedException e) {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      }<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    }<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    this.closing.set(true);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    status.setStatus("Disabling writes for close");<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      if (this.isClosed()) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>        status.abort("Already got closed by another process");<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        // SplitTransaction handles the null<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>        return null;<a name="line.1601"></a>
+<span class="sourceLineNo">1553</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      justification="I think FindBugs is confused")<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      throws IOException {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>    if (isClosed()) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      LOG.warn("Region " + this + " already closed");<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      return null;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span><a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    if (coprocessorHost != null) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      this.coprocessorHost.preClose(abort);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>    boolean canFlush = true;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    synchronized (writestate) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      // Disable compacting and flushing by background threads for this<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>      // region.<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      canFlush = !writestate.readOnly;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      writestate.writesEnabled = false;<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      waitForFlushesAndCompactions();<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    }<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    // the close flag?<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      status.setStatus("Pre-flushing region before close");<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      LOG.info("Running close preflush of " + this);<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>      try {<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        internalFlushcache(status);<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>      } catch (IOException ioe) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        // Failed to flush the region. Keep going.<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>      }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span><a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>    if (timeoutForWriteLock == null<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      // block waiting for the lock for closing<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>    } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>      try {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>        if (!succeed) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>        }<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>      } catch (InterruptedException e) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1601"></a>
 <span class="sourceLineNo">1602</span>      }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // Don't flush the cache if we are aborting<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>        int failedfFlushCount = 0;<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>        int flushCount = 0;<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>        long tmp = 0;<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>        while (remainingSize &gt; 0) {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>          try {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>            internalFlushcache(status);<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>            if(flushCount &gt;0) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>                  " (carrying snapshot?) " + this);<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>            }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>            flushCount++;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>            tmp = this.memstoreDataSize.get();<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>            if (tmp &gt;= remainingSize) {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>              failedfFlushCount++;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>            }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>            remainingSize = tmp;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>            if (failedfFlushCount &gt; 5) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>              // so we do not lose data<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>                  flushCount + " attempts on region: " +<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>            }<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>          } catch (IOException ioe) {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>            synchronized (writestate) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>              writestate.writesEnabled = true;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>            }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>            throw ioe;<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>          }<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>        }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      }<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span><a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>      if (!stores.isEmpty()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>            getRegionInfo().getRegionNameAsString());<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1648"></a>
+<span class="sourceLineNo">1603</span>    }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>    this.closing.set(true);<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>    status.setStatus("Disabling writes for close");<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    try {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      if (this.isClosed()) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>        status.abort("Already got closed by another process");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        // SplitTransaction handles the null<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>        return null;<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>      }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>      // Don't flush the cache if we are aborting<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>        int failedfFlushCount = 0;<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>        int flushCount = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>        long tmp = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>        while (remainingSize &gt; 0) {<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>          try {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>            internalFlushcache(status);<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>            if(flushCount &gt;0) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                  " (carrying snapshot?) " + this);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>            }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>            flushCount++;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>            tmp = this.memstoreDataSize.get();<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>            if (tmp &gt;= remainingSize) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>              failedfFlushCount++;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>            }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>            remainingSize = tmp;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>            if (failedfFlushCount &gt; 5) {<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>              // so we do not lose data<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                  flushCount + " attempts on region: " +<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>            }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>          } catch (IOException ioe) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>            synchronized (writestate) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>              writestate.writesEnabled = true;<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>            }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>            throw ioe;<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>          }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>      }<a name="line.1648"></a>
 <span class="sourceLineNo">1649</span><a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        // close each store in parallel<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        for (final Store store : stores.values()) {<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>            if (getRegionServerServices() != null) {<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>            }<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>          }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>          completionService<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>                @Override<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>                }<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>              });<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>        }<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        try {<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>            if (familyFiles == null) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>            }<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>          }<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>        } catch (InterruptedException e) {<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>        } catch (ExecutionException e) {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>          Throwable cause = e.getCause();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>          if (cause instanceof IOException) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>            throw (IOException) cause;<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>          }<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>          throw new IOException(cause);<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        } finally {<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>          storeCloserThreadPool.shutdownNow();<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>        }<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span><a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      status.setStatus("Writing region close event to WAL");<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>        writeRegionCloseMarker(wal);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>      }<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span><a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>      this.closed.set(true);<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      if (!canFlush) {<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>      }<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      if (coprocessorHost != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        this.coprocessorHost.postClose(abort);<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (this.metricsRegion != null) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        this.metricsRegion.close();<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      if (this.metricsRegionWrapper != null) {<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      }<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      status.markComplete("Closed");<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      LOG.info("Closed " + this);<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>      return result;<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    } finally {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      lock.writeLock().unlock();<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>  }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span><a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>  private long getMemstoreHeapSize() {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>    long size = 0;<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>    for (Store s : this.stores.values()) {<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>    }<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    return size;<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>  }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span><a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>  @Override<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>  public void waitForFlushesAndCompactions() {<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    synchronized (writestate) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      if (this.writestate.readOnly) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>        // region is a secondary replica).<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>        return;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      boolean interrupted = false;<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      try {<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>          try {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>            writestate.wait();<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          } catch (InterruptedException iex) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>            // essentially ignore and propagate the interrupt back up<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>            LOG.warn("Interrupted while waiting");<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>            interrupted = true;<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>          }<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>        }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      } finally {<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (interrupted) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          Thread.currentThread().interrupt();<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>        }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      }<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>    }<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>  }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>  @Override<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>  public void waitForFlushes() {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>    synchronized (writestate) {<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>      if (this.writestate.readOnly) {<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>        // region is a secondary replica).<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>        return;<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      }<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>      if (!writestate.flushing) return;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      long start = System.currentTimeMillis();<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>      boolean interrupted = false;<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      try {<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        while (writestate.flushing) {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>          try {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>            writestate.wait();<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          } catch (InterruptedException iex) {<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>            // essentially ignore and propagate the interrupt back up<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>            LOG.warn("Interrupted while waiting");<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            interrupted = true;<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          }<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>      } finally {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        if (interrupted) {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>          Thread.currentThread().interrupt();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>        }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>      }<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>      long duration = System.currentTimeMillis() - start;<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>    }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>  }<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>      final String threadNamePrefix) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    int maxThreads = Math.min(numStores,<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>  }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1800"></a>
+<span class="sourceLineNo">1650</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      if (!stores.isEmpty()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>            getRegionInfo().getRegionNameAsString());<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>        // close each store in parallel<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        for (final Store store : stores.values()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>            if (getRegionServerServices() != null) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>            }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>          }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>          completionService<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                @Override<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>              });<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>        try {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>            if (familyFiles == null) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>            }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>          }<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        } catch (InterruptedException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        } catch (ExecutionException e) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>          Throwable cause = e.getCause();<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>          if (cause instanceof IOException) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>            throw (IOException) cause;<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>          }<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>          throw new IOException(cause);<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        } finally {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>          storeCloserThreadPool.shutdownNow();<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>      }<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span><a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>      status.setStatus("Writing region close event to WAL");<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>        writeRegionCloseMarker(wal);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>      this.closed.set(true);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>      if (!canFlush) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>      }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>      if (coprocessorHost != null) {<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>        this.coprocessorHost.postClose(abort);<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>      }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>      if (this.metricsRegion != null) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>        this.metricsRegion.close();<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>      }<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>      if (this.metricsRegionWrapper != null) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>      }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>      status.markComplete("Closed");<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>      LOG.info("Closed " + this);<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>      return result;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>    } finally {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>      lock.writeLock().unlock();<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>    }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>  }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span><a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>  private long getMemstoreHeapSize() {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    long size = 0;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    for (Store s : this.stores.values()) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>    }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>    return size;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>  }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span><a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>  @Override<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>  public void waitForFlushesAndCompactions() {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    synchronized (writestate) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>      if (this.writestate.readOnly) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>        // region is a secondary replica).<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>        return;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>      }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>      boolean interrupted = false;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>      try {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>          try {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>            writestate.wait();<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>          } catch (InterruptedException iex) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>            // essentially ignore and propagate the interrupt back up<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>            LOG.warn("Interrupted while waiting");<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>            interrupted = true;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>          }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>      } finally {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        if (interrupted) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>          Thread.currentThread().interrupt();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>      }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>    }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>  }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>  @Override<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>  public void waitForFlushes() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>    synchronized (writestate) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>      if (this.writestate.readOnly) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>        // region is a secondary replica).<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>        return;<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>      if (!writestate.flushing) return;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      long start = System.currentTimeMillis();<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      boolean interrupted = false;<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>      try {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        while (writestate.flushing) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>          try {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>            writestate.wait();<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>          } catch (InterruptedException iex) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>            // essentially ignore and propagate the interrupt back up<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>            LOG.warn("Interrupted while waiting");<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>            interrupted = true;<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>          }<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        }<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>      } finally {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>        if (interrupted) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          Thread.currentThread().interrupt();<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>        }<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>      }<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>      long duration = System.currentTimeMillis() - start;<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>    }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>  }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1800"></a>
 <span class="sourceLineNo">1801</span>      final String threadNamePrefix) {<a name="line.1801"></a>
 <span class="sourceLineNo">1802</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    int maxThreads = Math.max(1,<a name="line.1803"></a>
+<span class="sourceLineNo">1803</span>    int maxThreads = Math.min(numStores,<a name="line.1803"></a>
 <span class="sourceLineNo">1804</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>            / numStores);<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>  }<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span><a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>      final String threadNamePrefix) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>      new ThreadFactory() {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        private int count = 1;<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span><a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>        @Override<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>        public Thread newThread(Runnable r) {<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>      });<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>  }<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>   /**<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    */<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>  private boolean worthPreFlushing() {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    return this.memstoreDataSize.get() &gt;<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>  }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span><a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>  // HRegion accessors<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>  @Override<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  public HTableDescriptor getTableDesc() {<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    return this.htableDescriptor;<a name="line.1837"></a>
+<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>  }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span><a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>      final String threadNamePrefix) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    int maxThreads = Math.max(1,<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>            / numStores);<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>  }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>      final String threadNamePrefix) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>      new ThreadFactory() {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>        private int count = 1;<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span><a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>        @Override<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>        public Thread newThread(Runnable r) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      });<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span><a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>   /**<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    */<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  private boolean worthPreFlushing() {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>    return this.memstoreDataSize.get() &gt;<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1837"></a>
 <span class="sourceLineNo">1838</span>  }<a name="line.1838"></a>
 <span class="sourceLineNo">1839</span><a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  /** @return WAL in use for this region */<a name="line.18

<TRUNCATED>

[26/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
index 959e3ef..ac32645 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
@@ -1401,6821 +1401,6830 @@
 <span class="sourceLineNo">1393</span>  @Override<a name="line.1393"></a>
 <span class="sourceLineNo">1394</span>  public boolean isSplittable() {<a name="line.1394"></a>
 <span class="sourceLineNo">1395</span>    boolean result = isAvailable() &amp;&amp; !hasReferences();<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result, new Throwable("LOGGING"));<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    return result;<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  }<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span><a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  @Override<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>  public boolean isMergeable() {<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    if (!isAvailable()) {<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      LOG.debug("Region " + this<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>          + " is not mergeable because it is closing or closed");<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      return false;<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    }<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    if (hasReferences()) {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      LOG.debug("Region " + this<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>          + " is not mergeable because it has references");<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      return false;<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span><a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    return true;<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span><a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>  public boolean areWritesEnabled() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>    synchronized(this.writestate) {<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      return this.writestate.writesEnabled;<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>  }<a name="line.1420"></a>
+<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result + " " + getRegionInfo().getShortNameToLog(),<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>      new Throwable("LOGGING: REMOVE"));<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    // REMOVE BELOW!!!!<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>    LOG.info("DEBUG LIST ALL FILES");<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    for (Store store: this.stores.values()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>      LOG.info("store " + store.getColumnFamilyName());<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>      for (StoreFile sf: store.getStorefiles()) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        LOG.info(sf.toStringDetailed());<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>      }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>    }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return result;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>  public boolean isMergeable() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    if (!isAvailable()) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      LOG.debug("Region " + this<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>          + " is not mergeable because it is closing or closed");<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>      return false;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>    if (hasReferences()) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      LOG.debug("Region " + this<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>          + " is not mergeable because it has references");<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      return false;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
 <span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  @VisibleForTesting<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>    return mvcc;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>  }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>  @Override<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>  public long getMaxFlushedSeqId() {<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    return maxFlushedSeqId;<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  @Override<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      // This scan can read even uncommitted transactions<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      return Long.MAX_VALUE;<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>    }<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>    return mvcc.getReadPoint();<a name="line.1438"></a>
+<span class="sourceLineNo">1422</span>    return true;<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>  }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span><a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>  public boolean areWritesEnabled() {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>    synchronized(this.writestate) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>      return this.writestate.writesEnabled;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>    }<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>  }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span><a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>  @VisibleForTesting<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>    return mvcc;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>  }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  @Override<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>  public long getMaxFlushedSeqId() {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>    return maxFlushedSeqId;<a name="line.1438"></a>
 <span class="sourceLineNo">1439</span>  }<a name="line.1439"></a>
 <span class="sourceLineNo">1440</span><a name="line.1440"></a>
 <span class="sourceLineNo">1441</span>  @Override<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    return getReadPoint(isolationLevel);<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>  }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span><a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>  @Override<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  /**<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * service any more calls.<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   *<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>   * time-sensitive thread.<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>   *<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * vector if already closed and null if judged that it should not close.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   *<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * @throws IOException e<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>   * caller MUST abort after this.<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>   */<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    return close(false);<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>  private final Object closeLock = new Object();<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span><a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>  /** Conf key for the periodic flush interval */<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  /** Default interval for the memstore flush */<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  /** Default interval for System tables memstore flush */<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span><a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      "hbase.regionserver.flush.per.changes";<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  /**<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>   */<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   * Shut down each HStore, don't service any more calls.<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   *<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * This method could take some time to execute, so don't call it from a<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * time-sensitive thread.<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   *<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>   * @param abort true if server is aborting (only during testing)<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>   * we are not to close at this time or we are already closed.<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>   *<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>   * @throws IOException e<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>   * caller MUST abort after this.<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>   */<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>    // threads attempting to close will run up against each other.<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        "Closing region " + this +<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        (abort ? " due to abort" : ""));<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span><a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>    status.setStatus("Waiting for close lock");<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>    try {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>      synchronized (closeLock) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        return doClose(abort, status);<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      }<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>    } finally {<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      status.cleanup();<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  /**<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>   * Exposed for some very specific unit tests.<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>   */<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>  @VisibleForTesting<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>  public void setClosing(boolean closing) {<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>    this.closing.set(closing);<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>  }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>  /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>   */<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  @VisibleForTesting<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      justification="I think FindBugs is confused")<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      throws IOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    if (isClosed()) {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      LOG.warn("Region " + this + " already closed");<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      return null;<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1442</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      // This scan can read even uncommitted transactions<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>      return Long.MAX_VALUE;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>    return mvcc.getReadPoint();<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span><a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>  @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>    return getReadPoint(isolationLevel);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>  }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span><a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  @Override<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span><a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>  /**<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>   * service any more calls.<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>   *<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>   * time-sensitive thread.<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>   *<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>   * vector if already closed and null if judged that it should not close.<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>   *<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>   * @throws IOException e<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>   * caller MUST abort after this.<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>   */<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>    return close(false);<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>  }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span><a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>  private final Object closeLock = new Object();<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span><a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  /** Conf key for the periodic flush interval */<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>  /** Default interval for the memstore flush */<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>  /** Default interval for System tables memstore flush */<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      "hbase.regionserver.flush.per.changes";<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>  /**<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>   * Shut down each HStore, don't service any more calls.<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>   *<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>   * This method could take some time to execute, so don't call it from a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>   * time-sensitive thread.<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>   *<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>   * @param abort true if server is aborting (only during testing)<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>   * we are not to close at this time or we are already closed.<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>   *<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>   * @throws IOException e<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>   * caller MUST abort after this.<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>   */<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>    // threads attempting to close will run up against each other.<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        "Closing region " + this +<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        (abort ? " due to abort" : ""));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>    status.setStatus("Waiting for close lock");<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>    try {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      synchronized (closeLock) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>        return doClose(abort, status);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>    } finally {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      status.cleanup();<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span><a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>  /**<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>   * Exposed for some very specific unit tests.<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>   */<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>  @VisibleForTesting<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  public void setClosing(boolean closing) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>    this.closing.set(closing);<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span><a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>  /**<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  @VisibleForTesting<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
 <span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>    if (coprocessorHost != null) {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      this.coprocessorHost.preClose(abort);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    boolean canFlush = true;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    synchronized (writestate) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      // Disable compacting and flushing by background threads for this<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // region.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      canFlush = !writestate.readOnly;<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>      writestate.writesEnabled = false;<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      waitForFlushesAndCompactions();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>    }<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    // the close flag?<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      status.setStatus("Pre-flushing region before close");<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      LOG.info("Running close preflush of " + this);<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      try {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        internalFlushcache(status);<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      } catch (IOException ioe) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        // Failed to flush the region. Keep going.<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>    if (timeoutForWriteLock == null<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      // block waiting for the lock for closing<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    } else {<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      try {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>        if (!succeed) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        }<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      } catch (InterruptedException e) {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      }<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    }<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    this.closing.set(true);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    status.setStatus("Disabling writes for close");<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      if (this.isClosed()) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>        status.abort("Already got closed by another process");<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        // SplitTransaction handles the null<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>        return null;<a name="line.1601"></a>
+<span class="sourceLineNo">1553</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      justification="I think FindBugs is confused")<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      throws IOException {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>    if (isClosed()) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      LOG.warn("Region " + this + " already closed");<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      return null;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span><a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    if (coprocessorHost != null) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      this.coprocessorHost.preClose(abort);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>    boolean canFlush = true;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    synchronized (writestate) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      // Disable compacting and flushing by background threads for this<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>      // region.<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      canFlush = !writestate.readOnly;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      writestate.writesEnabled = false;<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      waitForFlushesAndCompactions();<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    }<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    // the close flag?<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      status.setStatus("Pre-flushing region before close");<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      LOG.info("Running close preflush of " + this);<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>      try {<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        internalFlushcache(status);<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>      } catch (IOException ioe) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        // Failed to flush the region. Keep going.<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>      }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span><a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>    if (timeoutForWriteLock == null<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      // block waiting for the lock for closing<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>    } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>      try {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>        if (!succeed) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>        }<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>      } catch (InterruptedException e) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1601"></a>
 <span class="sourceLineNo">1602</span>      }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // Don't flush the cache if we are aborting<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>        int failedfFlushCount = 0;<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>        int flushCount = 0;<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>        long tmp = 0;<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>        while (remainingSize &gt; 0) {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>          try {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>            internalFlushcache(status);<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>            if(flushCount &gt;0) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>                  " (carrying snapshot?) " + this);<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>            }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>            flushCount++;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>            tmp = this.memstoreDataSize.get();<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>            if (tmp &gt;= remainingSize) {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>              failedfFlushCount++;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>            }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>            remainingSize = tmp;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>            if (failedfFlushCount &gt; 5) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>              // so we do not lose data<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>                  flushCount + " attempts on region: " +<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>            }<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>          } catch (IOException ioe) {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>            synchronized (writestate) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>              writestate.writesEnabled = true;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>            }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>            throw ioe;<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>          }<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>        }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      }<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span><a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>      if (!stores.isEmpty()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>            getRegionInfo().getRegionNameAsString());<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1648"></a>
+<span class="sourceLineNo">1603</span>    }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>    this.closing.set(true);<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>    status.setStatus("Disabling writes for close");<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    try {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      if (this.isClosed()) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>        status.abort("Already got closed by another process");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        // SplitTransaction handles the null<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>        return null;<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>      }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>      // Don't flush the cache if we are aborting<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>        int failedfFlushCount = 0;<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>        int flushCount = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>        long tmp = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>        while (remainingSize &gt; 0) {<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>          try {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>            internalFlushcache(status);<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>            if(flushCount &gt;0) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                  " (carrying snapshot?) " + this);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>            }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>            flushCount++;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>            tmp = this.memstoreDataSize.get();<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>            if (tmp &gt;= remainingSize) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>              failedfFlushCount++;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>            }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>            remainingSize = tmp;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>            if (failedfFlushCount &gt; 5) {<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>              // so we do not lose data<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                  flushCount + " attempts on region: " +<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>            }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>          } catch (IOException ioe) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>            synchronized (writestate) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>              writestate.writesEnabled = true;<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>            }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>            throw ioe;<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>          }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>      }<a name="line.1648"></a>
 <span class="sourceLineNo">1649</span><a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        // close each store in parallel<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        for (final Store store : stores.values()) {<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>            if (getRegionServerServices() != null) {<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>            }<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>          }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>          completionService<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>                @Override<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>                }<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>              });<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>        }<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        try {<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>            if (familyFiles == null) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>            }<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>          }<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>        } catch (InterruptedException e) {<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>        } catch (ExecutionException e) {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>          Throwable cause = e.getCause();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>          if (cause instanceof IOException) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>            throw (IOException) cause;<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>          }<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>          throw new IOException(cause);<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        } finally {<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>          storeCloserThreadPool.shutdownNow();<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>        }<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span><a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      status.setStatus("Writing region close event to WAL");<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>        writeRegionCloseMarker(wal);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>      }<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span><a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>      this.closed.set(true);<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      if (!canFlush) {<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>      }<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      if (coprocessorHost != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        this.coprocessorHost.postClose(abort);<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (this.metricsRegion != null) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        this.metricsRegion.close();<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      if (this.metricsRegionWrapper != null) {<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      }<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      status.markComplete("Closed");<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      LOG.info("Closed " + this);<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>      return result;<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    } finally {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      lock.writeLock().unlock();<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>  }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span><a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>  private long getMemstoreHeapSize() {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>    long size = 0;<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>    for (Store s : this.stores.values()) {<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>    }<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    return size;<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>  }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span><a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>  @Override<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>  public void waitForFlushesAndCompactions() {<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    synchronized (writestate) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      if (this.writestate.readOnly) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>        // region is a secondary replica).<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>        return;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      boolean interrupted = false;<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      try {<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>          try {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>            writestate.wait();<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          } catch (InterruptedException iex) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>            // essentially ignore and propagate the interrupt back up<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>            LOG.warn("Interrupted while waiting");<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>            interrupted = true;<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>          }<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>        }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      } finally {<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (interrupted) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          Thread.currentThread().interrupt();<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>        }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      }<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>    }<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>  }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>  @Override<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>  public void waitForFlushes() {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>    synchronized (writestate) {<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>      if (this.writestate.readOnly) {<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>        // region is a secondary replica).<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>        return;<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      }<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>      if (!writestate.flushing) return;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      long start = System.currentTimeMillis();<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>      boolean interrupted = false;<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      try {<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        while (writestate.flushing) {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>          try {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>            writestate.wait();<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          } catch (InterruptedException iex) {<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>            // essentially ignore and propagate the interrupt back up<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>            LOG.warn("Interrupted while waiting");<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            interrupted = true;<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          }<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>      } finally {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        if (interrupted) {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>          Thread.currentThread().interrupt();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>        }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>      }<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>      long duration = System.currentTimeMillis() - start;<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>    }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>  }<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>      final String threadNamePrefix) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    int maxThreads = Math.min(numStores,<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>  }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1800"></a>
+<span class="sourceLineNo">1650</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      if (!stores.isEmpty()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>            getRegionInfo().getRegionNameAsString());<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>        // close each store in parallel<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        for (final Store store : stores.values()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>            if (getRegionServerServices() != null) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>            }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>          }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>          completionService<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                @Override<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>              });<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>        try {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>            if (familyFiles == null) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>            }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>          }<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        } catch (InterruptedException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        } catch (ExecutionException e) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>          Throwable cause = e.getCause();<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>          if (cause instanceof IOException) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>            throw (IOException) cause;<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>          }<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>          throw new IOException(cause);<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        } finally {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>          storeCloserThreadPool.shutdownNow();<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>      }<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span><a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>      status.setStatus("Writing region close event to WAL");<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>        writeRegionCloseMarker(wal);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>      this.closed.set(true);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>      if (!canFlush) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>      }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>      if (coprocessorHost != null) {<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>        this.coprocessorHost.postClose(abort);<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>      }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>      if (this.metricsRegion != null) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>        this.metricsRegion.close();<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>      }<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>      if (this.metricsRegionWrapper != null) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>      }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>      status.markComplete("Closed");<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>      LOG.info("Closed " + this);<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>      return result;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>    } finally {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>      lock.writeLock().unlock();<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>    }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>  }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span><a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>  private long getMemstoreHeapSize() {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    long size = 0;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    for (Store s : this.stores.values()) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>    }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>    return size;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>  }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span><a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>  @Override<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>  public void waitForFlushesAndCompactions() {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    synchronized (writestate) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>      if (this.writestate.readOnly) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>        // region is a secondary replica).<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>        return;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>      }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>      boolean interrupted = false;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>      try {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>          try {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>            writestate.wait();<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>          } catch (InterruptedException iex) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>            // essentially ignore and propagate the interrupt back up<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>            LOG.warn("Interrupted while waiting");<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>            interrupted = true;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>          }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>      } finally {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        if (interrupted) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>          Thread.currentThread().interrupt();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>      }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>    }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>  }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>  @Override<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>  public void waitForFlushes() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>    synchronized (writestate) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>      if (this.writestate.readOnly) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>        // region is a secondary replica).<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>        return;<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>      if (!writestate.flushing) return;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      long start = System.currentTimeMillis();<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      boolean interrupted = false;<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>      try {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        while (writestate.flushing) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>          try {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>            writestate.wait();<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>          } catch (InterruptedException iex) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>            // essentially ignore and propagate the interrupt back up<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>            LOG.warn("Interrupted while waiting");<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>            interrupted = true;<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>          }<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        }<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>      } finally {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>        if (interrupted) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          Thread.currentThread().interrupt();<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>        }<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>      }<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>      long duration = System.currentTimeMillis() - start;<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>    }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>  }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1800"></a>
 <span class="sourceLineNo">1801</span>      final String threadNamePrefix) {<a name="line.1801"></a>
 <span class="sourceLineNo">1802</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    int maxThreads = Math.max(1,<a name="line.1803"></a>
+<span class="sourceLineNo">1803</span>    int maxThreads = Math.min(numStores,<a name="line.1803"></a>
 <span class="sourceLineNo">1804</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>            / numStores);<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>  }<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span><a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>      final String threadNamePrefix) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>      new ThreadFactory() {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        private int count = 1;<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span><a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>        @Override<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>        public Thread newThread(Runnable r) {<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>      });<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>  }<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>   /**<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    */<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>  private boolean worthPreFlushing() {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    return this.memstoreDataSize.get() &gt;<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>  }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span><a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>  // HRegion accessors<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>  @Override<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  public HTableDescriptor getTableDesc() {<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    return this.htableDescriptor;<a name="line.1837"></a>
+<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>  }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span><a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>      final String threadNamePrefix) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    int maxThreads = Math.max(1,<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>            / numStores);<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>  }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>      final String threadNamePrefix) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>      new ThreadFactory() {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>        private int count = 1;<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span><a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>        @Override<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>        public Thread newThread(Runnable r) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      });<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span><a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>   /**<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    */<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  private boolean worthPreFlushing() {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>    return this.memstoreDataSize.get() &gt;<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1837"></a>
 <span class="sourceLineNo">1838</span>  }<a name="line.1838"></a>
 <span class="sourceLineNo">1839</span><a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  /** @return WAL in use

<TRUNCATED>

[21/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
index 959e3ef..ac32645 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.html
@@ -1401,6821 +1401,6830 @@
 <span class="sourceLineNo">1393</span>  @Override<a name="line.1393"></a>
 <span class="sourceLineNo">1394</span>  public boolean isSplittable() {<a name="line.1394"></a>
 <span class="sourceLineNo">1395</span>    boolean result = isAvailable() &amp;&amp; !hasReferences();<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result, new Throwable("LOGGING"));<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    return result;<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  }<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span><a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  @Override<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>  public boolean isMergeable() {<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    if (!isAvailable()) {<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      LOG.debug("Region " + this<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>          + " is not mergeable because it is closing or closed");<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      return false;<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    }<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    if (hasReferences()) {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      LOG.debug("Region " + this<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>          + " is not mergeable because it has references");<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      return false;<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span><a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    return true;<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span><a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>  public boolean areWritesEnabled() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>    synchronized(this.writestate) {<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      return this.writestate.writesEnabled;<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>  }<a name="line.1420"></a>
+<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result + " " + getRegionInfo().getShortNameToLog(),<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>      new Throwable("LOGGING: REMOVE"));<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    // REMOVE BELOW!!!!<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>    LOG.info("DEBUG LIST ALL FILES");<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    for (Store store: this.stores.values()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>      LOG.info("store " + store.getColumnFamilyName());<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>      for (StoreFile sf: store.getStorefiles()) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        LOG.info(sf.toStringDetailed());<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>      }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>    }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return result;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>  public boolean isMergeable() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    if (!isAvailable()) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      LOG.debug("Region " + this<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>          + " is not mergeable because it is closing or closed");<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>      return false;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>    if (hasReferences()) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      LOG.debug("Region " + this<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>          + " is not mergeable because it has references");<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      return false;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
 <span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  @VisibleForTesting<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>    return mvcc;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>  }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>  @Override<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>  public long getMaxFlushedSeqId() {<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    return maxFlushedSeqId;<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  @Override<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      // This scan can read even uncommitted transactions<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      return Long.MAX_VALUE;<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>    }<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>    return mvcc.getReadPoint();<a name="line.1438"></a>
+<span class="sourceLineNo">1422</span>    return true;<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>  }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span><a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>  public boolean areWritesEnabled() {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>    synchronized(this.writestate) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>      return this.writestate.writesEnabled;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>    }<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>  }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span><a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>  @VisibleForTesting<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>    return mvcc;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>  }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  @Override<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>  public long getMaxFlushedSeqId() {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>    return maxFlushedSeqId;<a name="line.1438"></a>
 <span class="sourceLineNo">1439</span>  }<a name="line.1439"></a>
 <span class="sourceLineNo">1440</span><a name="line.1440"></a>
 <span class="sourceLineNo">1441</span>  @Override<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    return getReadPoint(isolationLevel);<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>  }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span><a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>  @Override<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  /**<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * service any more calls.<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   *<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>   * time-sensitive thread.<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>   *<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * vector if already closed and null if judged that it should not close.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   *<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * @throws IOException e<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>   * caller MUST abort after this.<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>   */<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    return close(false);<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>  private final Object closeLock = new Object();<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span><a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>  /** Conf key for the periodic flush interval */<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  /** Default interval for the memstore flush */<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  /** Default interval for System tables memstore flush */<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span><a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      "hbase.regionserver.flush.per.changes";<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  /**<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>   */<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   * Shut down each HStore, don't service any more calls.<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   *<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * This method could take some time to execute, so don't call it from a<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * time-sensitive thread.<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   *<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>   * @param abort true if server is aborting (only during testing)<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>   * we are not to close at this time or we are already closed.<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>   *<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>   * @throws IOException e<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>   * caller MUST abort after this.<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>   */<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>    // threads attempting to close will run up against each other.<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        "Closing region " + this +<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        (abort ? " due to abort" : ""));<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span><a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>    status.setStatus("Waiting for close lock");<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>    try {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>      synchronized (closeLock) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        return doClose(abort, status);<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      }<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>    } finally {<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      status.cleanup();<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  /**<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>   * Exposed for some very specific unit tests.<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>   */<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>  @VisibleForTesting<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>  public void setClosing(boolean closing) {<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>    this.closing.set(closing);<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>  }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>  /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>   */<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  @VisibleForTesting<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      justification="I think FindBugs is confused")<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      throws IOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    if (isClosed()) {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      LOG.warn("Region " + this + " already closed");<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      return null;<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1442</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      // This scan can read even uncommitted transactions<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>      return Long.MAX_VALUE;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>    return mvcc.getReadPoint();<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span><a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>  @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>    return getReadPoint(isolationLevel);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>  }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span><a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  @Override<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span><a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>  /**<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>   * service any more calls.<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>   *<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>   * time-sensitive thread.<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>   *<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>   * vector if already closed and null if judged that it should not close.<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>   *<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>   * @throws IOException e<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>   * caller MUST abort after this.<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>   */<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>    return close(false);<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>  }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span><a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>  private final Object closeLock = new Object();<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span><a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  /** Conf key for the periodic flush interval */<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>  /** Default interval for the memstore flush */<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>  /** Default interval for System tables memstore flush */<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      "hbase.regionserver.flush.per.changes";<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>  /**<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>   * Shut down each HStore, don't service any more calls.<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>   *<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>   * This method could take some time to execute, so don't call it from a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>   * time-sensitive thread.<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>   *<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>   * @param abort true if server is aborting (only during testing)<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>   * we are not to close at this time or we are already closed.<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>   *<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>   * @throws IOException e<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>   * caller MUST abort after this.<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>   */<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>    // threads attempting to close will run up against each other.<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        "Closing region " + this +<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        (abort ? " due to abort" : ""));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>    status.setStatus("Waiting for close lock");<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>    try {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      synchronized (closeLock) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>        return doClose(abort, status);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>    } finally {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      status.cleanup();<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span><a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>  /**<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>   * Exposed for some very specific unit tests.<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>   */<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>  @VisibleForTesting<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  public void setClosing(boolean closing) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>    this.closing.set(closing);<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span><a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>  /**<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  @VisibleForTesting<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
 <span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>    if (coprocessorHost != null) {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      this.coprocessorHost.preClose(abort);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    boolean canFlush = true;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    synchronized (writestate) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      // Disable compacting and flushing by background threads for this<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // region.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      canFlush = !writestate.readOnly;<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>      writestate.writesEnabled = false;<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      waitForFlushesAndCompactions();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>    }<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    // the close flag?<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      status.setStatus("Pre-flushing region before close");<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      LOG.info("Running close preflush of " + this);<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      try {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        internalFlushcache(status);<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      } catch (IOException ioe) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        // Failed to flush the region. Keep going.<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>    if (timeoutForWriteLock == null<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      // block waiting for the lock for closing<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    } else {<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      try {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>        if (!succeed) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        }<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      } catch (InterruptedException e) {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      }<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    }<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    this.closing.set(true);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    status.setStatus("Disabling writes for close");<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      if (this.isClosed()) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>        status.abort("Already got closed by another process");<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        // SplitTransaction handles the null<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>        return null;<a name="line.1601"></a>
+<span class="sourceLineNo">1553</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      justification="I think FindBugs is confused")<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      throws IOException {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>    if (isClosed()) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      LOG.warn("Region " + this + " already closed");<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      return null;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span><a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    if (coprocessorHost != null) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      this.coprocessorHost.preClose(abort);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>    boolean canFlush = true;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    synchronized (writestate) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      // Disable compacting and flushing by background threads for this<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>      // region.<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      canFlush = !writestate.readOnly;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      writestate.writesEnabled = false;<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      waitForFlushesAndCompactions();<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    }<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    // the close flag?<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      status.setStatus("Pre-flushing region before close");<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      LOG.info("Running close preflush of " + this);<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>      try {<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        internalFlushcache(status);<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>      } catch (IOException ioe) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        // Failed to flush the region. Keep going.<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>      }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span><a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>    if (timeoutForWriteLock == null<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      // block waiting for the lock for closing<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>    } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>      try {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>        if (!succeed) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>        }<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>      } catch (InterruptedException e) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1601"></a>
 <span class="sourceLineNo">1602</span>      }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // Don't flush the cache if we are aborting<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>        int failedfFlushCount = 0;<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>        int flushCount = 0;<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>        long tmp = 0;<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>        while (remainingSize &gt; 0) {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>          try {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>            internalFlushcache(status);<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>            if(flushCount &gt;0) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>                  " (carrying snapshot?) " + this);<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>            }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>            flushCount++;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>            tmp = this.memstoreDataSize.get();<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>            if (tmp &gt;= remainingSize) {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>              failedfFlushCount++;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>            }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>            remainingSize = tmp;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>            if (failedfFlushCount &gt; 5) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>              // so we do not lose data<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>                  flushCount + " attempts on region: " +<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>            }<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>          } catch (IOException ioe) {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>            synchronized (writestate) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>              writestate.writesEnabled = true;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>            }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>            throw ioe;<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>          }<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>        }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      }<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span><a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>      if (!stores.isEmpty()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>            getRegionInfo().getRegionNameAsString());<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1648"></a>
+<span class="sourceLineNo">1603</span>    }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>    this.closing.set(true);<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>    status.setStatus("Disabling writes for close");<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    try {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      if (this.isClosed()) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>        status.abort("Already got closed by another process");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        // SplitTransaction handles the null<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>        return null;<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>      }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>      // Don't flush the cache if we are aborting<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>        int failedfFlushCount = 0;<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>        int flushCount = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>        long tmp = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>        while (remainingSize &gt; 0) {<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>          try {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>            internalFlushcache(status);<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>            if(flushCount &gt;0) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                  " (carrying snapshot?) " + this);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>            }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>            flushCount++;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>            tmp = this.memstoreDataSize.get();<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>            if (tmp &gt;= remainingSize) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>              failedfFlushCount++;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>            }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>            remainingSize = tmp;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>            if (failedfFlushCount &gt; 5) {<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>              // so we do not lose data<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                  flushCount + " attempts on region: " +<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>            }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>          } catch (IOException ioe) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>            synchronized (writestate) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>              writestate.writesEnabled = true;<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>            }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>            throw ioe;<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>          }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>      }<a name="line.1648"></a>
 <span class="sourceLineNo">1649</span><a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        // close each store in parallel<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        for (final Store store : stores.values()) {<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>            if (getRegionServerServices() != null) {<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>            }<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>          }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>          completionService<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>                @Override<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>                }<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>              });<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>        }<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        try {<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>            if (familyFiles == null) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>            }<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>          }<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>        } catch (InterruptedException e) {<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>        } catch (ExecutionException e) {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>          Throwable cause = e.getCause();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>          if (cause instanceof IOException) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>            throw (IOException) cause;<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>          }<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>          throw new IOException(cause);<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        } finally {<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>          storeCloserThreadPool.shutdownNow();<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>        }<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span><a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      status.setStatus("Writing region close event to WAL");<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>        writeRegionCloseMarker(wal);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>      }<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span><a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>      this.closed.set(true);<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      if (!canFlush) {<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>      }<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      if (coprocessorHost != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        this.coprocessorHost.postClose(abort);<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (this.metricsRegion != null) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        this.metricsRegion.close();<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      if (this.metricsRegionWrapper != null) {<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      }<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      status.markComplete("Closed");<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      LOG.info("Closed " + this);<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>      return result;<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    } finally {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      lock.writeLock().unlock();<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>  }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span><a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>  private long getMemstoreHeapSize() {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>    long size = 0;<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>    for (Store s : this.stores.values()) {<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>    }<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    return size;<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>  }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span><a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>  @Override<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>  public void waitForFlushesAndCompactions() {<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    synchronized (writestate) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      if (this.writestate.readOnly) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>        // region is a secondary replica).<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>        return;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      boolean interrupted = false;<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      try {<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>          try {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>            writestate.wait();<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          } catch (InterruptedException iex) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>            // essentially ignore and propagate the interrupt back up<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>            LOG.warn("Interrupted while waiting");<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>            interrupted = true;<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>          }<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>        }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      } finally {<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (interrupted) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          Thread.currentThread().interrupt();<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>        }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      }<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>    }<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>  }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>  @Override<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>  public void waitForFlushes() {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>    synchronized (writestate) {<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>      if (this.writestate.readOnly) {<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>        // region is a secondary replica).<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>        return;<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      }<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>      if (!writestate.flushing) return;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      long start = System.currentTimeMillis();<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>      boolean interrupted = false;<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      try {<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        while (writestate.flushing) {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>          try {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>            writestate.wait();<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          } catch (InterruptedException iex) {<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>            // essentially ignore and propagate the interrupt back up<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>            LOG.warn("Interrupted while waiting");<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            interrupted = true;<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          }<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>      } finally {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        if (interrupted) {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>          Thread.currentThread().interrupt();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>        }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>      }<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>      long duration = System.currentTimeMillis() - start;<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>    }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>  }<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>      final String threadNamePrefix) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    int maxThreads = Math.min(numStores,<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>  }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1800"></a>
+<span class="sourceLineNo">1650</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      if (!stores.isEmpty()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>            getRegionInfo().getRegionNameAsString());<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>        // close each store in parallel<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        for (final Store store : stores.values()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>            if (getRegionServerServices() != null) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>            }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>          }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>          completionService<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                @Override<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>              });<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>        try {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>            if (familyFiles == null) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>            }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>          }<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        } catch (InterruptedException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        } catch (ExecutionException e) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>          Throwable cause = e.getCause();<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>          if (cause instanceof IOException) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>            throw (IOException) cause;<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>          }<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>          throw new IOException(cause);<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        } finally {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>          storeCloserThreadPool.shutdownNow();<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>      }<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span><a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>      status.setStatus("Writing region close event to WAL");<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>        writeRegionCloseMarker(wal);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>      this.closed.set(true);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>      if (!canFlush) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>      }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>      if (coprocessorHost != null) {<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>        this.coprocessorHost.postClose(abort);<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>      }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>      if (this.metricsRegion != null) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>        this.metricsRegion.close();<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>      }<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>      if (this.metricsRegionWrapper != null) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>      }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>      status.markComplete("Closed");<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>      LOG.info("Closed " + this);<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>      return result;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>    } finally {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>      lock.writeLock().unlock();<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>    }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>  }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span><a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>  private long getMemstoreHeapSize() {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    long size = 0;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    for (Store s : this.stores.values()) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>    }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>    return size;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>  }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span><a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>  @Override<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>  public void waitForFlushesAndCompactions() {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    synchronized (writestate) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>      if (this.writestate.readOnly) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>        // region is a secondary replica).<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>        return;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>      }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>      boolean interrupted = false;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>      try {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>          try {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>            writestate.wait();<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>          } catch (InterruptedException iex) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>            // essentially ignore and propagate the interrupt back up<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>            LOG.warn("Interrupted while waiting");<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>            interrupted = true;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>          }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>      } finally {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        if (interrupted) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>          Thread.currentThread().interrupt();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>      }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>    }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>  }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>  @Override<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>  public void waitForFlushes() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>    synchronized (writestate) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>      if (this.writestate.readOnly) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>        // region is a secondary replica).<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>        return;<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>      if (!writestate.flushing) return;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      long start = System.currentTimeMillis();<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      boolean interrupted = false;<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>      try {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        while (writestate.flushing) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>          try {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>            writestate.wait();<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>          } catch (InterruptedException iex) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>            // essentially ignore and propagate the interrupt back up<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>            LOG.warn("Interrupted while waiting");<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>            interrupted = true;<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>          }<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        }<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>      } finally {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>        if (interrupted) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          Thread.currentThread().interrupt();<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>        }<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>      }<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>      long duration = System.currentTimeMillis() - start;<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>    }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>  }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1800"></a>
 <span class="sourceLineNo">1801</span>      final String threadNamePrefix) {<a name="line.1801"></a>
 <span class="sourceLineNo">1802</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    int maxThreads = Math.max(1,<a name="line.1803"></a>
+<span class="sourceLineNo">1803</span>    int maxThreads = Math.min(numStores,<a name="line.1803"></a>
 <span class="sourceLineNo">1804</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>            / numStores);<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>  }<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span><a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>      final String threadNamePrefix) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>      new ThreadFactory() {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        private int count = 1;<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span><a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>        @Override<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>        public Thread newThread(Runnable r) {<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>      });<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>  }<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>   /**<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    */<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>  private boolean worthPreFlushing() {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    return this.memstoreDataSize.get() &gt;<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>  }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span><a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>  // HRegion accessors<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>  @Override<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  public HTableDescriptor getTableDesc() {<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    return this.htableDescriptor;<a name="line.1837"></a>
+<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>  }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span><a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>      final String threadNamePrefix) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    int maxThreads = Math.max(1,<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>            / numStores);<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>  }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>      final String threadNamePrefix) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>      new ThreadFactory() {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>        private int count = 1;<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span><a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>        @Override<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>        public Thread newThread(Runnable r) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      });<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span><a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>   /**<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    */<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  private boolean worthPreFlushing() {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>    return this.memstoreDataSize.get() &gt;<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1837"></a>
 <span class="sourceLineNo">1838</span>  }<a name="line.1838"></a>
 <span class="sourceLineNo">1839</span><a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  /** @return WAL in use for this region */<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>  publi

<TRUNCATED>

[49/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.


Project: http://git-wip-us.apache.org/repos/asf/hbase-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase-site/commit/cd7ae54c
Tree: http://git-wip-us.apache.org/repos/asf/hbase-site/tree/cd7ae54c
Diff: http://git-wip-us.apache.org/repos/asf/hbase-site/diff/cd7ae54c

Branch: refs/heads/asf-site
Commit: cd7ae54c5a9e303fd992e10c0f6078e5cef111fe
Parents: 946f218
Author: jenkins <bu...@apache.org>
Authored: Fri Jun 16 15:00:08 2017 +0000
Committer: jenkins <bu...@apache.org>
Committed: Fri Jun 16 15:00:08 2017 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |     4 +-
 apache_hbase_reference_guide.pdf                | 23099 +++++++++--------
 apache_hbase_reference_guide.pdfmarks           |     4 +-
 book.html                                       |    54 +-
 bulk-loads.html                                 |     4 +-
 checkstyle-aggregate.html                       |  4668 ++--
 checkstyle.rss                                  |     4 +-
 coc.html                                        |     4 +-
 cygwin.html                                     |     4 +-
 dependencies.html                               |    34 +-
 dependency-convergence.html                     |    56 +-
 dependency-info.html                            |     4 +-
 dependency-management.html                      |   192 +-
 devapidocs/constant-values.html                 |     6 +-
 devapidocs/index-all.html                       |    10 +-
 .../hadoop/hbase/backup/package-tree.html       |     2 +-
 .../hadoop/hbase/class-use/RegionLocations.html |    12 -
 .../hbase/classification/package-tree.html      |     6 +-
 ....MulticastListener.ClusterStatusHandler.html |     2 +-
 ...ScannerCallableWithReplicas.RetryingRPC.html |    24 +-
 .../client/ScannerCallableWithReplicas.html     |    81 +-
 .../ResultBoundedCompletionService.html         |     6 +-
 .../hadoop/hbase/client/class-use/Scan.html     |     5 +-
 .../hbase/client/class-use/ScannerCallable.html |     6 +-
 .../HttpProxyExample.RequestHandler.html        |     2 +-
 .../hadoop/hbase/client/package-tree.html       |    24 +-
 .../hadoop/hbase/filter/package-tree.html       |     8 +-
 ...FanOutOneBlockAsyncDFSOutput.AckHandler.html |     2 +-
 ...AsyncDFSOutputSaslHelper.DecryptHandler.html |     2 +-
 ...AsyncDFSOutputSaslHelper.EncryptHandler.html |     4 +-
 ...FSOutputSaslHelper.SaslNegotiateHandler.html |     2 +-
 ...ncDFSOutputSaslHelper.SaslUnwrapHandler.html |     2 +-
 ...syncDFSOutputSaslHelper.SaslWrapHandler.html |     2 +-
 .../HFilePrettyPrinter.SimpleReporter.html      |     2 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     6 +-
 .../hbase/ipc/BufferCallBeforeInitHandler.html  |     2 +-
 .../hadoop/hbase/ipc/NettyRpcDuplexHandler.html |     2 +-
 .../ipc/NettyRpcServerPreambleHandler.html      |     2 +-
 .../hbase/ipc/NettyRpcServerRequestDecoder.html |     2 +-
 .../ipc/NettyRpcServerResponseEncoder.html      |     2 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     2 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     2 +-
 ...MulticastPublisher.ClusterStatusEncoder.html |     2 +-
 ...tTableRegionProcedure.StoreFileSplitter.html |    12 +-
 .../assignment/SplitTableRegionProcedure.html   |    81 +-
 .../hadoop/hbase/master/package-tree.html       |     4 +-
 .../hbase/master/procedure/package-tree.html    |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    12 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     4 +-
 .../hadoop/hbase/quotas/package-tree.html       |     8 +-
 .../regionserver/HRegion.BatchOperation.html    |    26 +-
 .../regionserver/HRegion.MutationBatch.html     |    20 +-
 .../regionserver/HRegion.RegionScannerImpl.html |    92 +-
 .../hbase/regionserver/HRegion.ReplayBatch.html |    18 +-
 .../regionserver/HRegion.RowLockContext.html    |    28 +-
 .../hbase/regionserver/HRegion.RowLockImpl.html |    16 +-
 .../hadoop/hbase/regionserver/HRegion.html      |   482 +-
 .../HRegionServer.CompactionChecker.html        |    14 +-
 .../HRegionServer.MovedRegionInfo.html          |    16 +-
 .../HRegionServer.MovedRegionsCleaner.html      |    16 +-
 .../HRegionServer.PeriodicMemstoreFlusher.html  |    12 +-
 .../hbase/regionserver/HRegionServer.html       |   526 +-
 ...IncreasingToUpperBoundRegionSplitPolicy.html |    16 +-
 .../hbase/regionserver/MobStoreScanner.html     |     2 +-
 .../regionserver/ReversedMobStoreScanner.html   |     2 +-
 .../regionserver/ReversedStoreScanner.html      |     2 +-
 .../hadoop/hbase/regionserver/StoreScanner.html |   147 +-
 .../hbase/regionserver/class-use/ScanInfo.html  |     5 +-
 .../hbase/regionserver/class-use/ScanType.html  |    11 +
 .../hbase/regionserver/class-use/Store.html     |     5 +-
 .../hadoop/hbase/regionserver/package-tree.html |    16 +-
 .../regionserver/querymatcher/package-tree.html |     4 +-
 .../replication/regionserver/package-tree.html  |     2 +-
 .../hbase/security/CryptoAESUnwrapHandler.html  |     2 +-
 .../hbase/security/CryptoAESWrapHandler.html    |     2 +-
 .../NettyHBaseRpcConnectionHeaderHandler.html   |     2 +-
 .../NettyHBaseSaslRpcClientHandler.html         |     2 +-
 .../hbase/security/SaslChallengeDecoder.html    |     2 +-
 .../hbase/security/SaslUnwrapHandler.html       |     2 +-
 .../hadoop/hbase/security/SaslWrapHandler.html  |     2 +-
 .../hbase/security/access/package-tree.html     |     2 +-
 .../hadoop/hbase/security/package-tree.html     |     2 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |   240 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |    96 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    48 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |    90 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |    36 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |    18 +-
 .../hadoop/hbase/util/class-use/Pair.html       |     6 +-
 .../apache/hadoop/hbase/util/package-tree.html  |    10 +-
 .../org/apache/hadoop/hbase/Version.html        |     6 +-
 ...ScannerCallableWithReplicas.RetryingRPC.html |   736 +-
 .../client/ScannerCallableWithReplicas.html     |   736 +-
 ...tTableRegionProcedure.StoreFileSplitter.html |  1420 +-
 .../assignment/SplitTableRegionProcedure.html   |  1420 +-
 .../regionserver/HRegion.BatchOperation.html    | 13401 +++++-----
 .../regionserver/HRegion.FlushResultImpl.html   | 13401 +++++-----
 .../regionserver/HRegion.MutationBatch.html     | 13401 +++++-----
 .../HRegion.ObservedExceptionsInBatch.html      | 13401 +++++-----
 .../HRegion.PrepareFlushResult.html             | 13401 +++++-----
 .../regionserver/HRegion.RegionScannerImpl.html | 13401 +++++-----
 .../hbase/regionserver/HRegion.ReplayBatch.html | 13401 +++++-----
 .../regionserver/HRegion.RowLockContext.html    | 13401 +++++-----
 .../hbase/regionserver/HRegion.RowLockImpl.html | 13401 +++++-----
 .../hbase/regionserver/HRegion.WriteState.html  | 13401 +++++-----
 .../hadoop/hbase/regionserver/HRegion.html      | 13401 +++++-----
 .../HRegionServer.CompactionChecker.html        |  7397 +++---
 .../HRegionServer.MovedRegionInfo.html          |  7397 +++---
 .../HRegionServer.MovedRegionsCleaner.html      |  7397 +++---
 .../HRegionServer.PeriodicMemstoreFlusher.html  |  7397 +++---
 .../hbase/regionserver/HRegionServer.html       |  7397 +++---
 .../regionserver/HStore.StoreFlusherImpl.html   |     2 +-
 .../hadoop/hbase/regionserver/HStore.html       |     2 +-
 ...IncreasingToUpperBoundRegionSplitPolicy.html |   202 +-
 ...SRpcServices.RegionScannerCloseCallBack.html |     4 +-
 .../RSRpcServices.RegionScannerHolder.html      |     4 +-
 ...pcServices.RegionScannerShippedCallBack.html |     4 +-
 ...RpcServices.RegionScannersCloseCallBack.html |     4 +-
 .../RSRpcServices.ScannerListener.html          |     4 +-
 .../hbase/regionserver/RSRpcServices.html       |     4 +-
 .../hbase/regionserver/StoreFileInfo.html       |     4 +-
 ...StoreScanner.StoreScannerCompactionRace.html |  1887 +-
 .../hadoop/hbase/regionserver/StoreScanner.html |  1887 +-
 .../tmpl/master/MasterStatusTmpl.ImplData.html  |   240 +-
 .../tmpl/master/MasterStatusTmpl.Intf.html      |   240 +-
 .../hbase/tmpl/master/MasterStatusTmpl.html     |   240 +-
 .../hbase/tmpl/master/MasterStatusTmplImpl.html |    64 +-
 .../regionserver/RSStatusTmpl.ImplData.html     |    90 +-
 .../tmpl/regionserver/RSStatusTmpl.Intf.html    |    90 +-
 .../hbase/tmpl/regionserver/RSStatusTmpl.html   |    90 +-
 .../tmpl/regionserver/RSStatusTmplImpl.html     |    24 +-
 export_control.html                             |     4 +-
 hbase-annotations/checkstyle.html               |     6 +-
 hbase-annotations/dependencies.html             |    36 +-
 hbase-annotations/dependency-convergence.html   |    58 +-
 hbase-annotations/dependency-info.html          |     6 +-
 hbase-annotations/dependency-management.html    |   194 +-
 hbase-annotations/index.html                    |     6 +-
 hbase-annotations/integration.html              |     6 +-
 hbase-annotations/issue-tracking.html           |     6 +-
 hbase-annotations/license.html                  |     6 +-
 hbase-annotations/mail-lists.html               |     6 +-
 hbase-annotations/plugin-management.html        |     6 +-
 hbase-annotations/plugins.html                  |     6 +-
 hbase-annotations/project-info.html             |     6 +-
 hbase-annotations/project-reports.html          |     6 +-
 hbase-annotations/project-summary.html          |     6 +-
 hbase-annotations/source-repository.html        |     6 +-
 hbase-annotations/team-list.html                |     6 +-
 hbase-archetypes/dependencies.html              |    36 +-
 hbase-archetypes/dependency-convergence.html    |    58 +-
 hbase-archetypes/dependency-info.html           |     6 +-
 hbase-archetypes/dependency-management.html     |   194 +-
 .../hbase-archetype-builder/dependencies.html   |    36 +-
 .../dependency-convergence.html                 |    58 +-
 .../dependency-info.html                        |     6 +-
 .../dependency-management.html                  |   194 +-
 .../hbase-archetype-builder/index.html          |     6 +-
 .../hbase-archetype-builder/integration.html    |     6 +-
 .../hbase-archetype-builder/issue-tracking.html |     6 +-
 .../hbase-archetype-builder/license.html        |     6 +-
 .../hbase-archetype-builder/mail-lists.html     |     6 +-
 .../plugin-management.html                      |     6 +-
 .../hbase-archetype-builder/plugins.html        |     6 +-
 .../hbase-archetype-builder/project-info.html   |     6 +-
 .../project-summary.html                        |     6 +-
 .../source-repository.html                      |     6 +-
 .../hbase-archetype-builder/team-list.html      |     6 +-
 .../hbase-client-project/checkstyle.html        |     6 +-
 .../hbase-client-project/dependencies.html      |   850 +-
 .../dependency-convergence.html                 |    58 +-
 .../hbase-client-project/dependency-info.html   |     6 +-
 .../dependency-management.html                  |   194 +-
 .../hbase-client-project/index.html             |     6 +-
 .../hbase-client-project/integration.html       |     6 +-
 .../hbase-client-project/issue-tracking.html    |     6 +-
 .../hbase-client-project/license.html           |     6 +-
 .../hbase-client-project/mail-lists.html        |     6 +-
 .../hbase-client-project/plugin-management.html |     6 +-
 .../hbase-client-project/plugins.html           |     6 +-
 .../hbase-client-project/project-info.html      |     6 +-
 .../hbase-client-project/project-reports.html   |     6 +-
 .../hbase-client-project/project-summary.html   |     6 +-
 .../hbase-client-project/source-repository.html |     6 +-
 .../hbase-client-project/team-list.html         |     6 +-
 .../hbase-shaded-client-project/checkstyle.html |     6 +-
 .../dependencies.html                           |   834 +-
 .../dependency-convergence.html                 |    58 +-
 .../dependency-info.html                        |     6 +-
 .../dependency-management.html                  |   194 +-
 .../hbase-shaded-client-project/index.html      |     6 +-
 .../integration.html                            |     6 +-
 .../issue-tracking.html                         |     6 +-
 .../hbase-shaded-client-project/license.html    |     6 +-
 .../hbase-shaded-client-project/mail-lists.html |     6 +-
 .../plugin-management.html                      |     6 +-
 .../hbase-shaded-client-project/plugins.html    |     6 +-
 .../project-info.html                           |     6 +-
 .../project-reports.html                        |     6 +-
 .../project-summary.html                        |     6 +-
 .../source-repository.html                      |     6 +-
 .../hbase-shaded-client-project/team-list.html  |     6 +-
 hbase-archetypes/index.html                     |     6 +-
 hbase-archetypes/integration.html               |     6 +-
 hbase-archetypes/issue-tracking.html            |     6 +-
 hbase-archetypes/license.html                   |     6 +-
 hbase-archetypes/mail-lists.html                |     6 +-
 hbase-archetypes/plugin-management.html         |     6 +-
 hbase-archetypes/plugins.html                   |     6 +-
 hbase-archetypes/project-info.html              |     6 +-
 hbase-archetypes/project-summary.html           |     6 +-
 hbase-archetypes/source-repository.html         |     6 +-
 hbase-archetypes/team-list.html                 |     6 +-
 hbase-spark/checkstyle.html                     |     6 +-
 hbase-spark/dependencies.html                   |  1125 +-
 hbase-spark/dependency-convergence.html         |    58 +-
 hbase-spark/dependency-info.html                |     6 +-
 hbase-spark/dependency-management.html          |   194 +-
 hbase-spark/index.html                          |     6 +-
 hbase-spark/integration.html                    |     6 +-
 hbase-spark/issue-tracking.html                 |     6 +-
 hbase-spark/license.html                        |     6 +-
 hbase-spark/mail-lists.html                     |     6 +-
 hbase-spark/plugin-management.html              |     6 +-
 hbase-spark/plugins.html                        |     6 +-
 hbase-spark/project-info.html                   |     6 +-
 hbase-spark/project-reports.html                |     6 +-
 hbase-spark/project-summary.html                |     6 +-
 hbase-spark/source-repository.html              |     6 +-
 hbase-spark/team-list.html                      |     6 +-
 index.html                                      |     4 +-
 integration.html                                |     4 +-
 issue-tracking.html                             |     4 +-
 license.html                                    |     4 +-
 mail-lists.html                                 |     4 +-
 metrics.html                                    |     4 +-
 old_news.html                                   |     4 +-
 plugin-management.html                          |     4 +-
 plugins.html                                    |     4 +-
 poweredbyhbase.html                             |     4 +-
 project-info.html                               |     4 +-
 project-reports.html                            |     4 +-
 project-summary.html                            |     4 +-
 pseudo-distributed.html                         |     4 +-
 replication.html                                |     4 +-
 resources.html                                  |     4 +-
 source-repository.html                          |     4 +-
 sponsors.html                                   |     4 +-
 supportingprojects.html                         |     4 +-
 team-list.html                                  |     4 +-
 testdevapidocs/index-all.html                   |     2 +
 .../org/apache/hadoop/hbase/package-tree.html   |     8 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     2 +-
 .../TestStoreScanner.CellGridStoreScanner.html  |     2 +-
 ....CellWithVersionsNoOptimizeStoreScanner.html |     2 +-
 ...oreScanner.CellWithVersionsStoreScanner.html |     2 +-
 .../hbase/regionserver/TestStoreScanner.html    |    38 +-
 .../hadoop/hbase/regionserver/package-tree.html |     4 +-
 .../apache/hadoop/hbase/test/package-tree.html  |     2 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 .../TestStoreScanner.CellGridStoreScanner.html  |    18 +-
 ....CellWithVersionsNoOptimizeStoreScanner.html |    18 +-
 ...oreScanner.CellWithVersionsStoreScanner.html |    18 +-
 .../TestStoreScanner.KeyValueHeapWithCount.html |    18 +-
 .../hbase/regionserver/TestStoreScanner.html    |    18 +-
 265 files changed, 115276 insertions(+), 114197 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index 686cb25..a8405f0 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -606,7 +606,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 


[39/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
index 2b5763c..0a4e340 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
@@ -123,7 +123,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.LimitedPrivate.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.LimitedPrivate</a>(<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.LimitedPrivate.html#value--">value</a>="Tools")
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.221">HRegionServer</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.220">HRegionServer</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/util/HasThread.html" title="class in org.apache.hadoop.hbase.util">HasThread</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/LastSequenceId.html" title="interface in org.apache.hadoop.hbase.regionserver">LastSequenceId</a>, <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a></pre>
 <div class="block">HRegionServer makes a set of HRegions available to clients. It checks in with
@@ -1522,7 +1522,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>INIT_PAUSE_TIME_MS</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.224">INIT_PAUSE_TIME_MS</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.223">INIT_PAUSE_TIME_MS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.INIT_PAUSE_TIME_MS">Constant Field Values</a></dd>
@@ -1535,7 +1535,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>REGION_LOCK_AWAIT_TIME_SEC</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.226">REGION_LOCK_AWAIT_TIME_SEC</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.225">REGION_LOCK_AWAIT_TIME_SEC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.REGION_LOCK_AWAIT_TIME_SEC">Constant Field Values</a></dd>
@@ -1548,7 +1548,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_REGION_LOCK_AWAIT_TIME_SEC</h4>
-<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.228">DEFAULT_REGION_LOCK_AWAIT_TIME_SEC</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.227">DEFAULT_REGION_LOCK_AWAIT_TIME_SEC</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.DEFAULT_REGION_LOCK_AWAIT_TIME_SEC">Constant Field Values</a></dd>
@@ -1561,7 +1561,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.229">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.228">LOG</a></pre>
 </li>
 </ul>
 <a name="TEST_SKIP_REPORTING_TRANSITION">
@@ -1570,7 +1570,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_SKIP_REPORTING_TRANSITION</h4>
-<pre>public static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.235">TEST_SKIP_REPORTING_TRANSITION</a></pre>
+<pre>public static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.234">TEST_SKIP_REPORTING_TRANSITION</a></pre>
 <div class="block">For testing only!  Set to true to skip notifying region assignment to master .</div>
 </li>
 </ul>
@@ -1580,7 +1580,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>OPEN</h4>
-<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.241">OPEN</a></pre>
+<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.240">OPEN</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.OPEN">Constant Field Values</a></dd>
@@ -1593,7 +1593,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>CLOSE</h4>
-<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.242">CLOSE</a></pre>
+<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.241">CLOSE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.CLOSE">Constant Field Values</a></dd>
@@ -1606,7 +1606,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>regionsInTransitionInRS</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.247">regionsInTransitionInRS</a></pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.246">regionsInTransitionInRS</a></pre>
 </li>
 </ul>
 <a name="cacheFlusher">
@@ -1615,7 +1615,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheFlusher</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreFlusher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.251">cacheFlusher</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreFlusher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.250">cacheFlusher</a></pre>
 </li>
 </ul>
 <a name="hMemManager">
@@ -1624,7 +1624,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>hMemManager</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.253">hMemManager</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HeapMemoryManager.html" title="class in org.apache.hadoop.hbase.regionserver">HeapMemoryManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.252">hMemManager</a></pre>
 </li>
 </ul>
 <a name="initLatch">
@@ -1633,7 +1633,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>initLatch</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CountDownLatch.html?is-external=true" title="class or interface in java.util.concurrent">CountDownLatch</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.254">initLatch</a></pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CountDownLatch.html?is-external=true" title="class or interface in java.util.concurrent">CountDownLatch</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.253">initLatch</a></pre>
 </li>
 </ul>
 <a name="clusterConnection">
@@ -1642,7 +1642,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterConnection</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.261">clusterConnection</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.260">clusterConnection</a></pre>
 <div class="block">Cluster connection to be shared by services.
  Initialized at server startup and closed when server shuts down.
  Clients must never close it explicitly.</div>
@@ -1654,7 +1654,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>metaTableLocator</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html" title="class in org.apache.hadoop.hbase.zookeeper">MetaTableLocator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.269">metaTableLocator</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html" title="class in org.apache.hadoop.hbase.zookeeper">MetaTableLocator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.268">metaTableLocator</a></pre>
 </li>
 </ul>
 <a name="recoveringRegionWatcher">
@@ -1663,7 +1663,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>recoveringRegionWatcher</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/RecoveringRegionWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">RecoveringRegionWatcher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.273">recoveringRegionWatcher</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/RecoveringRegionWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">RecoveringRegionWatcher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.272">recoveringRegionWatcher</a></pre>
 </li>
 </ul>
 <a name="tableDescriptors">
@@ -1672,7 +1672,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>tableDescriptors</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.278">tableDescriptors</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.277">tableDescriptors</a></pre>
 <div class="block">Go here to get table descriptors.</div>
 </li>
 </ul>
@@ -1682,7 +1682,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>replicationSourceHandler</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.281">replicationSourceHandler</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.280">replicationSourceHandler</a></pre>
 </li>
 </ul>
 <a name="replicationSinkHandler">
@@ -1691,7 +1691,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>replicationSinkHandler</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.282">replicationSinkHandler</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.281">replicationSinkHandler</a></pre>
 </li>
 </ul>
 <a name="compactSplitThread">
@@ -1700,7 +1700,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>compactSplitThread</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplit.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplit</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.285">compactSplitThread</a></pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactSplit.html" title="class in org.apache.hadoop.hbase.regionserver">CompactSplit</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.284">compactSplitThread</a></pre>
 </li>
 </ul>
 <a name="onlineRegions">
@@ -1709,7 +1709,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>onlineRegions</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.291">onlineRegions</a></pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.290">onlineRegions</a></pre>
 <div class="block">Map of regions currently being served by this region server. Key is the
  encoded region name.  All access should be synchronized.</div>
 </li>
@@ -1720,7 +1720,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>regionFavoredNodesMap</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>[]&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.302">regionFavoredNodesMap</a></pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>[]&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.301">regionFavoredNodesMap</a></pre>
 <div class="block">Map of encoded region names to the DataNode locations they should be hosted on
  We store the value as InetSocketAddress since this is used only in HDFS
  API (create() that takes favored nodes as hints for placing file blocks).
@@ -1736,7 +1736,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>recoveringRegions</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.309">recoveringRegions</a></pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.308">recoveringRegions</a></pre>
 <div class="block">Set of regions currently being in recovering state which means it can accept writes(edits from
  previous failed region server) but not reads. A recovering region is also an online region.</div>
 </li>
@@ -1747,7 +1747,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>leases</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.html" title="class in org.apache.hadoop.hbase.regionserver">Leases</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.313">leases</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.html" title="class in org.apache.hadoop.hbase.regionserver">Leases</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.312">leases</a></pre>
 </li>
 </ul>
 <a name="service">
@@ -1756,7 +1756,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>service</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.316">service</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.315">service</a></pre>
 </li>
 </ul>
 <a name="fsOk">
@@ -1765,7 +1765,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>fsOk</h4>
-<pre>protected volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.319">fsOk</a></pre>
+<pre>protected volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.318">fsOk</a></pre>
 </li>
 </ul>
 <a name="fs">
@@ -1774,7 +1774,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>fs</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.320">fs</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.319">fs</a></pre>
 </li>
 </ul>
 <a name="walFs">
@@ -1783,7 +1783,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>walFs</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.321">walFs</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/fs/HFileSystem.html" title="class in org.apache.hadoop.hbase.fs">HFileSystem</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.320">walFs</a></pre>
 </li>
 </ul>
 <a name="stopped">
@@ -1792,7 +1792,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>stopped</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.326">stopped</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.325">stopped</a></pre>
 </li>
 </ul>
 <a name="abortRequested">
@@ -1801,7 +1801,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>abortRequested</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.330">abortRequested</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.329">abortRequested</a></pre>
 </li>
 </ul>
 <a name="rowlocks">
@@ -1810,7 +1810,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>rowlocks</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.332">rowlocks</a></pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.331">rowlocks</a></pre>
 </li>
 </ul>
 <a name="stopping">
@@ -1819,7 +1819,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>stopping</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.336">stopping</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.335">stopping</a></pre>
 </li>
 </ul>
 <a name="killed">
@@ -1828,7 +1828,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>killed</h4>
-<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.338">killed</a></pre>
+<pre>volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.337">killed</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -1837,7 +1837,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>protected final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.340">conf</a></pre>
+<pre>protected final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.339">conf</a></pre>
 </li>
 </ul>
 <a name="rootDir">
@@ -1846,7 +1846,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>rootDir</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.342">rootDir</a></pre>
+<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.341">rootDir</a></pre>
 </li>
 </ul>
 <a name="walRootDir">
@@ -1855,7 +1855,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>walRootDir</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.343">walRootDir</a></pre>
+<pre>private&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.342">walRootDir</a></pre>
 </li>
 </ul>
 <a name="lock">
@@ -1864,7 +1864,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>lock</h4>
-<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.345">lock</a></pre>
+<pre>protected final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.344">lock</a></pre>
 </li>
 </ul>
 <a name="numRetries">
@@ -1873,7 +1873,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>numRetries</h4>
-<pre>final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.347">numRetries</a></pre>
+<pre>final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.346">numRetries</a></pre>
 </li>
 </ul>
 <a name="threadWakeFrequency">
@@ -1882,7 +1882,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>threadWakeFrequency</h4>
-<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.348">threadWakeFrequency</a></pre>
+<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.347">threadWakeFrequency</a></pre>
 </li>
 </ul>
 <a name="msgInterval">
@@ -1891,7 +1891,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>msgInterval</h4>
-<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.349">msgInterval</a></pre>
+<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.348">msgInterval</a></pre>
 </li>
 </ul>
 <a name="numRegionsToReport">
@@ -1900,7 +1900,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>numRegionsToReport</h4>
-<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.351">numRegionsToReport</a></pre>
+<pre>protected final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.350">numRegionsToReport</a></pre>
 </li>
 </ul>
 <a name="rssStub">
@@ -1909,7 +1909,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>rssStub</h4>
-<pre>private volatile&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.354">rssStub</a></pre>
+<pre>private volatile&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.353">rssStub</a></pre>
 </li>
 </ul>
 <a name="lockStub">
@@ -1918,7 +1918,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>lockStub</h4>
-<pre>private volatile&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.355">lockStub</a></pre>
+<pre>private volatile&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService.BlockingInterface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.354">lockStub</a></pre>
 </li>
 </ul>
 <a name="rpcClient">
@@ -1927,7 +1927,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcClient</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.357">rpcClient</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcClient.html" title="interface in org.apache.hadoop.hbase.ipc">RpcClient</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.356">rpcClient</a></pre>
 </li>
 </ul>
 <a name="rpcRetryingCallerFactory">
@@ -1936,7 +1936,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcRetryingCallerFactory</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCallerFactory.html" title="class in org.apache.hadoop.hbase.client">RpcRetryingCallerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.359">rpcRetryingCallerFactory</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCallerFactory.html" title="class in org.apache.hadoop.hbase.client">RpcRetryingCallerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.358">rpcRetryingCallerFactory</a></pre>
 </li>
 </ul>
 <a name="rpcControllerFactory">
@@ -1945,7 +1945,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcControllerFactory</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcControllerFactory.html" title="class in org.apache.hadoop.hbase.ipc">RpcControllerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.360">rpcControllerFactory</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcControllerFactory.html" title="class in org.apache.hadoop.hbase.ipc">RpcControllerFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.359">rpcControllerFactory</a></pre>
 </li>
 </ul>
 <a name="uncaughtExceptionHandler">
@@ -1954,7 +1954,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>uncaughtExceptionHandler</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true" title="class or interface in java.lang">Thread.UncaughtExceptionHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.362">uncaughtExceptionHandler</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.UncaughtExceptionHandler.html?is-external=true" title="class or interface in java.lang">Thread.UncaughtExceptionHandler</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.361">uncaughtExceptionHandler</a></pre>
 </li>
 </ul>
 <a name="infoServer">
@@ -1963,7 +1963,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>infoServer</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.367">infoServer</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.366">infoServer</a></pre>
 </li>
 </ul>
 <a name="pauseMonitor">
@@ -1972,7 +1972,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>pauseMonitor</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/JvmPauseMonitor.html" title="class in org.apache.hadoop.hbase.util">JvmPauseMonitor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.368">pauseMonitor</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/JvmPauseMonitor.html" title="class in org.apache.hadoop.hbase.util">JvmPauseMonitor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.367">pauseMonitor</a></pre>
 </li>
 </ul>
 <a name="REGIONSERVER">
@@ -1981,7 +1981,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>REGIONSERVER</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.371">REGIONSERVER</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.370">REGIONSERVER</a></pre>
 <div class="block">region server process name</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -1995,7 +1995,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>metricsRegionServer</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.373">metricsRegionServer</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.372">metricsRegionServer</a></pre>
 </li>
 </ul>
 <a name="metricsTable">
@@ -2004,7 +2004,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>metricsTable</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.374">metricsTable</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.373">metricsTable</a></pre>
 </li>
 </ul>
 <a name="spanReceiverHost">
@@ -2013,7 +2013,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>spanReceiverHost</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/trace/SpanReceiverHost.html" title="class in org.apache.hadoop.hbase.trace">SpanReceiverHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.375">spanReceiverHost</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/trace/SpanReceiverHost.html" title="class in org.apache.hadoop.hbase.trace">SpanReceiverHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.374">spanReceiverHost</a></pre>
 </li>
 </ul>
 <a name="choreService">
@@ -2022,7 +2022,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>choreService</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ChoreService.html" title="class in org.apache.hadoop.hbase">ChoreService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.380">choreService</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ChoreService.html" title="class in org.apache.hadoop.hbase">ChoreService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.379">choreService</a></pre>
 <div class="block">ChoreService used to schedule tasks that we want to run periodically</div>
 </li>
 </ul>
@@ -2032,7 +2032,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>compactionChecker</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.385">compactionChecker</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.384">compactionChecker</a></pre>
 </li>
 </ul>
 <a name="periodicFlusher">
@@ -2041,7 +2041,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>periodicFlusher</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.390">periodicFlusher</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.389">periodicFlusher</a></pre>
 </li>
 </ul>
 <a name="walFactory">
@@ -2050,7 +2050,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>walFactory</h4>
-<pre>protected volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.html" title="class in org.apache.hadoop.hbase.wal">WALFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.392">walFactory</a></pre>
+<pre>protected volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.html" title="class in org.apache.hadoop.hbase.wal">WALFactory</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.391">walFactory</a></pre>
 </li>
 </ul>
 <a name="walRoller">
@@ -2059,7 +2059,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>walRoller</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.396">walRoller</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.395">walRoller</a></pre>
 </li>
 </ul>
 <a name="online">
@@ -2068,7 +2068,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>online</h4>
-<pre>final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.399">online</a></pre>
+<pre>final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.398">online</a></pre>
 </li>
 </ul>
 <a name="zooKeeper">
@@ -2077,7 +2077,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>zooKeeper</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.402">zooKeeper</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZooKeeperWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZooKeeperWatcher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.401">zooKeeper</a></pre>
 </li>
 </ul>
 <a name="masterAddressTracker">
@@ -2086,7 +2086,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>masterAddressTracker</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterAddressTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.405">masterAddressTracker</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterAddressTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.404">masterAddressTracker</a></pre>
 </li>
 </ul>
 <a name="clusterStatusTracker">
@@ -2095,7 +2095,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterStatusTracker</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ClusterStatusTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">ClusterStatusTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.408">clusterStatusTracker</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ClusterStatusTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">ClusterStatusTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.407">clusterStatusTracker</a></pre>
 </li>
 </ul>
 <a name="splitLogWorker">
@@ -2104,7 +2104,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>splitLogWorker</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.html" title="class in org.apache.hadoop.hbase.regionserver">SplitLogWorker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.411">splitLogWorker</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.html" title="class in org.apache.hadoop.hbase.regionserver">SplitLogWorker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.410">splitLogWorker</a></pre>
 </li>
 </ul>
 <a name="sleeper">
@@ -2113,7 +2113,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>sleeper</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Sleeper.html" title="class in org.apache.hadoop.hbase.util">Sleeper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.414">sleeper</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Sleeper.html" title="class in org.apache.hadoop.hbase.util">Sleeper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.413">sleeper</a></pre>
 </li>
 </ul>
 <a name="operationTimeout">
@@ -2122,7 +2122,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>operationTimeout</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.416">operationTimeout</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.415">operationTimeout</a></pre>
 </li>
 </ul>
 <a name="shortOperationTimeout">
@@ -2131,7 +2131,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>shortOperationTimeout</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.417">shortOperationTimeout</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.416">shortOperationTimeout</a></pre>
 </li>
 </ul>
 <a name="regionServerAccounting">
@@ -2140,7 +2140,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServerAccounting</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.419">regionServerAccounting</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.418">regionServerAccounting</a></pre>
 </li>
 </ul>
 <a name="cacheConfig">
@@ -2149,7 +2149,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheConfig</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.422">cacheConfig</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.421">cacheConfig</a></pre>
 </li>
 </ul>
 <a name="mobCacheConfig">
@@ -2158,7 +2158,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>mobCacheConfig</h4>
-<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.424">mobCacheConfig</a></pre>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.423">mobCacheConfig</a></pre>
 </li>
 </ul>
 <a name="healthCheckChore">
@@ -2167,7 +2167,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>healthCheckChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HealthCheckChore.html" title="class in org.apache.hadoop.hbase">HealthCheckChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.427">healthCheckChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HealthCheckChore.html" title="class in org.apache.hadoop.hbase">HealthCheckChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.426">healthCheckChore</a></pre>
 <div class="block">The health check chore.</div>
 </li>
 </ul>
@@ -2177,7 +2177,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>nonceManagerChore</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.430">nonceManagerChore</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.429">nonceManagerChore</a></pre>
 <div class="block">The nonce manager chore.</div>
 </li>
 </ul>
@@ -2187,7 +2187,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>coprocessorServiceHandlers</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,com.google.protobuf.Service&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.432">coprocessorServiceHandlers</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,com.google.protobuf.Service&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.431">coprocessorServiceHandlers</a></pre>
 </li>
 </ul>
 <a name="serverName">
@@ -2196,7 +2196,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>serverName</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.439">serverName</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.438">serverName</a></pre>
 <div class="block">The server name the Master sees us as.  Its made from the hostname the
  master passes us, port, and server startcode. Gets set after registration
  against  Master.</div>
@@ -2208,7 +2208,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <ul class="blockList">
 <li class="blockList">
 <h4>useThisHostnameInstead</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.444">useThisHostnameInstead</a></pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.443">useThisHostnameInstead</a></pre>
 </li>
 </ul>
 <a name="RS_HOSTNAME_KEY">
@@ -2218,7 +2218,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSe
 <li class="blockList">
 <h4>RS_HOSTNAME_KEY</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.LimitedPrivate.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.LimitedPrivate</a>(<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.LimitedPrivate.html#value--">value</a>="Configuration")
-static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.450">RS_HOSTNAME_KEY</a></pre>
+static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.449">RS_HOSTNAME_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.RS_HOSTNAME_KEY">Constant Field Values</a></dd>
@@ -2232,7 +2232,7 @@ static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/St
 <li class="blockList">
 <h4>MASTER_HOSTNAME_KEY</h4>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.LimitedPrivate.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.LimitedPrivate</a>(<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.LimitedPrivate.html#value--">value</a>="Configuration")
-protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.452">MASTER_HOSTNAME_KEY</a></pre>
+protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.451">MASTER_HOSTNAME_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.MASTER_HOSTNAME_KEY">Constant Field Values</a></dd>
@@ -2245,7 +2245,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>startcode</h4>
-<pre>protected final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.457">startcode</a></pre>
+<pre>protected final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.456">startcode</a></pre>
 <div class="block">This servers startcode.</div>
 </li>
 </ul>
@@ -2255,7 +2255,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>clusterId</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.462">clusterId</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.461">clusterId</a></pre>
 <div class="block">Unique identifier for the cluster we are a part of.</div>
 </li>
 </ul>
@@ -2265,7 +2265,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>mxBean</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/javax/management/ObjectName.html?is-external=true" title="class or interface in javax.management">ObjectName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.467">mxBean</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/javax/management/ObjectName.html?is-external=true" title="class or interface in javax.management">ObjectName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.466">mxBean</a></pre>
 <div class="block">MX Bean for RegionServerInfo</div>
 </li>
 </ul>
@@ -2275,7 +2275,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>movedRegionsCleaner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionsCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.472">movedRegionsCleaner</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionsCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.471">movedRegionsCleaner</a></pre>
 <div class="block">Chore to clean periodically the moved region list</div>
 </li>
 </ul>
@@ -2285,7 +2285,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>storefileRefresher</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StorefileRefresherChore.html" title="class in org.apache.hadoop.hbase.regionserver">StorefileRefresherChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.475">storefileRefresher</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StorefileRefresherChore.html" title="class in org.apache.hadoop.hbase.regionserver">StorefileRefresherChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.474">storefileRefresher</a></pre>
 </li>
 </ul>
 <a name="rsHost">
@@ -2294,7 +2294,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>rsHost</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerCoprocessorHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.477">rsHost</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerCoprocessorHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.476">rsHost</a></pre>
 </li>
 </ul>
 <a name="rspmHost">
@@ -2303,7 +2303,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>rspmHost</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/RegionServerProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">RegionServerProcedureManagerHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.479">rspmHost</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/RegionServerProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">RegionServerProcedureManagerHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.478">rspmHost</a></pre>
 </li>
 </ul>
 <a name="rsQuotaManager">
@@ -2312,7 +2312,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>rsQuotaManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerRpcQuotaManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.481">rsQuotaManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerRpcQuotaManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.480">rsQuotaManager</a></pre>
 </li>
 </ul>
 <a name="rsSpaceQuotaManager">
@@ -2321,7 +2321,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>rsSpaceQuotaManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerSpaceQuotaManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.482">rsSpaceQuotaManager</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerSpaceQuotaManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.481">rsSpaceQuotaManager</a></pre>
 </li>
 </ul>
 <a name="nonceManager">
@@ -2330,7 +2330,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>nonceManager</h4>
-<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ServerNonceManager.html" title="class in org.apache.hadoop.hbase.regionserver">ServerNonceManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.502">nonceManager</a></pre>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ServerNonceManager.html" title="class in org.apache.hadoop.hbase.regionserver">ServerNonceManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.501">nonceManager</a></pre>
 <div class="block">Nonce manager. Nonces are used to make operations like increment and append idempotent
  in the case where client doesn't receive the response from a successful operation and
  retries. We track the successful ops for some time via a nonce sent by client and handle
@@ -2355,7 +2355,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>userProvider</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.504">userProvider</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.503">userProvider</a></pre>
 </li>
 </ul>
 <a name="rpcServices">
@@ -2364,7 +2364,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>rpcServices</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.506">rpcServices</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.505">rpcServices</a></pre>
 </li>
 </ul>
 <a name="csm">
@@ -2373,7 +2373,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>csm</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/coordination/BaseCoordinatedStateManager.html" title="class in org.apache.hadoop.hbase.coordination">BaseCoordinatedStateManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.508">csm</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/coordination/BaseCoordinatedStateManager.html" title="class in org.apache.hadoop.hbase.coordination">BaseCoordinatedStateManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.507">csm</a></pre>
 </li>
 </ul>
 <a name="configurationManager">
@@ -2382,7 +2382,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>configurationManager</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.514">configurationManager</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.513">configurationManager</a></pre>
 <div class="block">Configuration manager is used to register/deregister and notify the configuration observers
  when the regionserver is notified that there was a change in the on disk configs.</div>
 </li>
@@ -2393,7 +2393,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>compactedFileDischarger</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactedHFilesDischarger.html" title="class in org.apache.hadoop.hbase.regionserver">CompactedHFilesDischarger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.517">compactedFileDischarger</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactedHFilesDischarger.html" title="class in org.apache.hadoop.hbase.regionserver">CompactedHFilesDischarger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.516">compactedFileDischarger</a></pre>
 </li>
 </ul>
 <a name="flushThroughputController">
@@ -2402,7 +2402,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>flushThroughputController</h4>
-<pre>private volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.519">flushThroughputController</a></pre>
+<pre>private volatile&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.518">flushThroughputController</a></pre>
 </li>
 </ul>
 <a name="secureBulkLoadManager">
@@ -2411,7 +2411,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>secureBulkLoadManager</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/SecureBulkLoadManager.html" title="class in org.apache.hadoop.hbase.regionserver">SecureBulkLoadManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.521">secureBulkLoadManager</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/SecureBulkLoadManager.html" title="class in org.apache.hadoop.hbase.regionserver">SecureBulkLoadManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.520">secureBulkLoadManager</a></pre>
 </li>
 </ul>
 <a name="fsUtilizationChore">
@@ -2420,7 +2420,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>fsUtilizationChore</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/FileSystemUtilizationChore.html" title="class in org.apache.hadoop.hbase.quotas">FileSystemUtilizationChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.523">fsUtilizationChore</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/FileSystemUtilizationChore.html" title="class in org.apache.hadoop.hbase.quotas">FileSystemUtilizationChore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.522">fsUtilizationChore</a></pre>
 </li>
 </ul>
 <a name="UNSPECIFIED_REGION">
@@ -2429,7 +2429,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>UNSPECIFIED_REGION</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2022">UNSPECIFIED_REGION</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2021">UNSPECIFIED_REGION</a></pre>
 </li>
 </ul>
 <a name="movedRegions">
@@ -2438,7 +2438,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>movedRegions</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3373">movedRegions</a></pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3372">movedRegions</a></pre>
 </li>
 </ul>
 <a name="TIMEOUT_REGION_MOVED">
@@ -2447,7 +2447,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TIMEOUT_REGION_MOVED</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3378">TIMEOUT_REGION_MOVED</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3377">TIMEOUT_REGION_MOVED</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.TIMEOUT_REGION_MOVED">Constant Field Values</a></dd>
@@ -2468,7 +2468,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>HRegionServer</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.528">HRegionServer</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.527">HRegionServer</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Starts a HRegionServer at the default location.</div>
@@ -2485,7 +2485,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockListLast">
 <li class="blockList">
 <h4>HRegionServer</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.536">HRegionServer</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.535">HRegionServer</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                      <a href="../../../../../org/apache/hadoop/hbase/CoordinatedStateManager.html" title="interface in org.apache.hadoop.hbase">CoordinatedStateManager</a>&nbsp;csm)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Starts a HRegionServer at the default location</div>
@@ -2511,7 +2511,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeFileSystem</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.658">initializeFileSystem</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.657">initializeFileSystem</a>()
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2525,7 +2525,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getFsTableDescriptors</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.674">getFsTableDescriptors</a>()
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.673">getFsTableDescriptors</a>()
                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2539,7 +2539,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>setInitLatch</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.679">setInitLatch</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CountDownLatch.html?is-external=true" title="class or interface in java.util.concurrent">CountDownLatch</a>&nbsp;latch)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.678">setInitLatch</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CountDownLatch.html?is-external=true" title="class or interface in java.util.concurrent">CountDownLatch</a>&nbsp;latch)</pre>
 </li>
 </ul>
 <a name="shouldUseThisHostnameInstead--">
@@ -2548,7 +2548,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldUseThisHostnameInstead</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.686">shouldUseThisHostnameInstead</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.685">shouldUseThisHostnameInstead</a>()</pre>
 </li>
 </ul>
 <a name="login-org.apache.hadoop.hbase.security.UserProvider-java.lang.String-">
@@ -2557,7 +2557,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>login</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.690">login</a>(<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a>&nbsp;user,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.689">login</a>(<a href="../../../../../org/apache/hadoop/hbase/security/UserProvider.html" title="class in org.apache.hadoop.hbase.security">UserProvider</a>&nbsp;user,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;host)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2572,7 +2572,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForMasterActive</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.695">waitForMasterActive</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.694">waitForMasterActive</a>()</pre>
 </li>
 </ul>
 <a name="getProcessName--">
@@ -2581,7 +2581,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcessName</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.698">getProcessName</a>()</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.697">getProcessName</a>()</pre>
 </li>
 </ul>
 <a name="canCreateBaseZNode--">
@@ -2590,7 +2590,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>canCreateBaseZNode</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.702">canCreateBaseZNode</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.701">canCreateBaseZNode</a>()</pre>
 </li>
 </ul>
 <a name="canUpdateTableDescriptor--">
@@ -2599,7 +2599,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>canUpdateTableDescriptor</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.706">canUpdateTableDescriptor</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.705">canUpdateTableDescriptor</a>()</pre>
 </li>
 </ul>
 <a name="createRpcServices--">
@@ -2608,7 +2608,7 @@ protected static final&nbsp;<

<TRUNCATED>

[42/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
index b71fcdf..f7518ac 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html
@@ -121,7 +121,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5799">HRegion.RegionScannerImpl</a>
+<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5808">HRegion.RegionScannerImpl</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a></pre>
 <div class="block">RegionScannerImpl is used to combine scanners from multiple Stores (aka column families).</div>
@@ -429,7 +429,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>storeHeap</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5801">storeHeap</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5810">storeHeap</a></pre>
 </li>
 </ul>
 <a name="joinedHeap">
@@ -438,7 +438,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>joinedHeap</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5804">joinedHeap</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5813">joinedHeap</a></pre>
 <div class="block">Heap of key-values that are not essential for the provided filters and are thus read
  on demand, if on-demand column family loading is enabled.</div>
 </li>
@@ -449,7 +449,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>joinedContinuationRow</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5808">joinedContinuationRow</a></pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5817">joinedContinuationRow</a></pre>
 <div class="block">If the joined heap data gathering is interrupted due to scan limits, this will
  contain the row for which we are populating the values.</div>
 </li>
@@ -460,7 +460,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>filterClosed</h4>
-<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5809">filterClosed</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5818">filterClosed</a></pre>
 </li>
 </ul>
 <a name="stopRow">
@@ -469,7 +469,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>stopRow</h4>
-<pre>protected final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5811">stopRow</a></pre>
+<pre>protected final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5820">stopRow</a></pre>
 </li>
 </ul>
 <a name="includeStopRow">
@@ -478,7 +478,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>includeStopRow</h4>
-<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5812">includeStopRow</a></pre>
+<pre>protected final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5821">includeStopRow</a></pre>
 </li>
 </ul>
 <a name="region">
@@ -487,7 +487,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>region</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5813">region</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5822">region</a></pre>
 </li>
 </ul>
 <a name="comparator">
@@ -496,7 +496,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>comparator</h4>
-<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="class in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5814">comparator</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="class in org.apache.hadoop.hbase">CellComparator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5823">comparator</a></pre>
 </li>
 </ul>
 <a name="readPt">
@@ -505,7 +505,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>readPt</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5816">readPt</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5825">readPt</a></pre>
 </li>
 </ul>
 <a name="maxResultSize">
@@ -514,7 +514,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>maxResultSize</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5817">maxResultSize</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5826">maxResultSize</a></pre>
 </li>
 </ul>
 <a name="defaultScannerContext">
@@ -523,7 +523,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>defaultScannerContext</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5818">defaultScannerContext</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5827">defaultScannerContext</a></pre>
 </li>
 </ul>
 <a name="filter">
@@ -532,7 +532,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockListLast">
 <li class="blockList">
 <h4>filter</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.html" title="class in org.apache.hadoop.hbase.filter">FilterWrapper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5819">filter</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.html" title="class in org.apache.hadoop.hbase.filter">FilterWrapper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5828">filter</a></pre>
 </li>
 </ul>
 </li>
@@ -549,7 +549,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>RegionScannerImpl</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5826">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5835">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners,
                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -565,7 +565,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RegionScannerImpl</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5831">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5840">RegionScannerImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners,
                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                   long&nbsp;nonceGroup,
@@ -591,7 +591,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5822">getRegionInfo</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5831">getRegionInfo</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getRegionInfo--">getRegionInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -606,7 +606,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeScanners</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5869">initializeScanners</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5878">initializeScanners</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                                   <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -621,7 +621,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeKVHeap</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5906">initializeKVHeap</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5915">initializeKVHeap</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;joinedScanners,
                                 <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -637,7 +637,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>handleFileNotFound</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io">FileNotFoundException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5915">handleFileNotFound</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io">FileNotFoundException</a>&nbsp;fnfe)</pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io">FileNotFoundException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5924">handleFileNotFound</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/io/FileNotFoundException.html?is-external=true" title="class or interface in java.io">FileNotFoundException</a>&nbsp;fnfe)</pre>
 </li>
 </ul>
 <a name="handleException-java.util.List-java.lang.Throwable-">
@@ -646,7 +646,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>handleException</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5925">handleException</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;instantiatedScanners,
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5934">handleException</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;instantiatedScanners,
                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)</pre>
 </li>
 </ul>
@@ -656,7 +656,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxResultSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5949">getMaxResultSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5958">getMaxResultSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getMaxResultSize--">getMaxResultSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -672,7 +672,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getMvccReadPoint</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5954">getMvccReadPoint</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5963">getMvccReadPoint</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getMvccReadPoint--">getMvccReadPoint</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -687,7 +687,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getBatch</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5959">getBatch</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5968">getBatch</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#getBatch--">getBatch</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></code></dd>
@@ -703,7 +703,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>resetFilters</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5968">resetFilters</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5977">resetFilters</a>()
                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Reset both the filter and the old filter.</div>
 <dl>
@@ -718,7 +718,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>next</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5975">next</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5984">next</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults)
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-">InternalScanner</a></code></span></div>
 <div class="block">Grab the next row's worth of values.</div>
@@ -740,7 +740,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>next</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5982">next</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5991">next</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults,
                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">InternalScanner</a></code></span></div>
@@ -763,7 +763,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>nextRaw</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.5999">nextRaw</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6008">nextRaw</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults)
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#nextRaw-java.util.List-">RegionScanner</a></code></span></div>
 <div class="block">Grab the next row's worth of values. This is a special internal method to be called from
@@ -788,7 +788,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>nextRaw</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6005">nextRaw</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6014">nextRaw</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResults,
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#nextRaw-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">RegionScanner</a></code></span></div>
@@ -834,7 +834,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>populateFromJoinedHeap</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6043">populateFromJoinedHeap</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;results,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6052">populateFromJoinedHeap</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;results,
                                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
                                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -851,7 +851,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>populateResult</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6067">populateResult</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;results,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6076">populateResult</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;results,
                                <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a>&nbsp;heap,
                                <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext,
                                <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)
@@ -876,7 +876,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>moreCellsInRow</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6112">moreCellsInRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;nextKv,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6121">moreCellsInRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;nextKv,
                                <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)</pre>
 <div class="block">Based on the nextKv in the heap, and the current row, decide whether or not there are more
  cells to be read in the heap. If the row of the nextKv in the heap matches the current row
@@ -896,7 +896,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>isFilterDone</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6120">isFilterDone</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6129">isFilterDone</a>()
                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -914,7 +914,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>isFilterDoneInternal</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6124">isFilterDoneInternal</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6133">isFilterDoneInternal</a>()
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -928,7 +928,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>nextInternal</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6128">nextInternal</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;results,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6137">nextInternal</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;results,
                              <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -943,7 +943,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementCountOfRowsFilteredMetric</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6332">incrementCountOfRowsFilteredMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6341">incrementCountOfRowsFilteredMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</pre>
 </li>
 </ul>
 <a name="incrementCountOfRowsScannedMetric-org.apache.hadoop.hbase.regionserver.ScannerContext-">
@@ -952,7 +952,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>incrementCountOfRowsScannedMetric</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6340">incrementCountOfRowsScannedMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6349">incrementCountOfRowsScannedMetric</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</pre>
 </li>
 </ul>
 <a name="joinedHeapMayHaveData-org.apache.hadoop.hbase.Cell-">
@@ -961,7 +961,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>joinedHeapMayHaveData</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6351">joinedHeapMayHaveData</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6360">joinedHeapMayHaveData</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -979,7 +979,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>filterRow</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6378">filterRow</a>()
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6387">filterRow</a>()
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This function is to maintain backward compatibility for 0.94 filters. HBASE-6429 combines
  both filterRow & filterRow(<code>List&lt;KeyValue&gt; kvs</code>) functions. While 0.94 code or older,
@@ -998,7 +998,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>filterRowKey</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6385">filterRowKey</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;current)
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6394">filterRowKey</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;current)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1012,7 +1012,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>nextRow</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6389">nextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext,
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6398">nextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext,
                           <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;curRowCell)
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -1027,7 +1027,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldStop</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6404">shouldStop</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6413">shouldStop</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;currentRowCell)</pre>
 </li>
 </ul>
 <a name="close--">
@@ -1036,7 +1036,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6416">close</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6425">close</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#close--">InternalScanner</a></code></span></div>
 <div class="block">Closes the scanner and releases any resources it has allocated</div>
 <dl>
@@ -1055,7 +1055,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreHeapForTesting</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6430">getStoreHeapForTesting</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">KeyValueHeap</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6439">getStoreHeapForTesting</a>()</pre>
 </li>
 </ul>
 <a name="reseek-byte:A-">
@@ -1064,7 +1064,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>reseek</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6435">reseek</a>(byte[]&nbsp;row)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6444">reseek</a>(byte[]&nbsp;row)
                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#reseek-byte:A-">RegionScanner</a></code></span></div>
 <div class="block">Do a reseek to the required row. Should not be used to seek to a key which
@@ -1084,7 +1084,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockList">
 <li class="blockList">
 <h4>shipped</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6457">shipped</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6466">shipped</a>()
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html#shipped--">RegionScanner</a></code></span></div>
 <div class="block">Empty implementation to provide compatibility for user migrating from 1.X</div>
@@ -1106,7 +1106,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSc
 <ul class="blockListLast">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6467">run</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RegionScannerImpl.html#line.6476">run</a>()
          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html#run--">RpcCallback</a></code></span></div>
 <div class="block">Called at the end of an Rpc Call <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc"><code>RpcCallContext</code></a></div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html
index 16f1032..3ed95ff 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3021">HRegion.ReplayBatch</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3030">HRegion.ReplayBatch</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</pre>
 </li>
 </ul>
@@ -243,7 +243,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>replaySeqId</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3022">replaySeqId</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3031">replaySeqId</a></pre>
 </li>
 </ul>
 </li>
@@ -260,7 +260,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ReplayBatch</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3023">ReplayBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>[]&nbsp;operations,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3032">ReplayBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>[]&nbsp;operations,
                    long&nbsp;seqId)</pre>
 </li>
 </ul>
@@ -278,7 +278,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutation</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3029">getMutation</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3038">getMutation</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutation-int-">getMutation</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -291,7 +291,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceGroup</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3034">getNonceGroup</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3043">getNonceGroup</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonceGroup-int-">getNonceGroup</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -304,7 +304,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonce</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3039">getNonce</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3048">getNonce</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonce-int-">getNonce</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -317,7 +317,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutationsForCoprocs</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3044">getMutationsForCoprocs</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3053">getMutationsForCoprocs</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutationsForCoprocs--">HRegion.BatchOperation</a></code></span></div>
 <div class="block">This method is potentially expensive and should only be used for non-replay CP path.</div>
 <dl>
@@ -332,7 +332,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>isInReplay</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3050">isInReplay</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3059">isInReplay</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#isInReplay--">isInReplay</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>
@@ -345,7 +345,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getReplaySequenceId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3055">getReplaySequenceId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html#line.3064">getReplaySequenceId</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getReplaySequenceId--">getReplaySequenceId</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;</code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
index b118c4a..c82a210 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5465">HRegion.RowLockContext</a>
+<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5474">HRegion.RowLockContext</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -241,7 +241,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>row</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5466">row</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5475">row</a></pre>
 </li>
 </ul>
 <a name="readWriteLock">
@@ -250,7 +250,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>readWriteLock</h4>
-<pre>final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5467">readWriteLock</a></pre>
+<pre>final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReadWriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReadWriteLock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5476">readWriteLock</a></pre>
 </li>
 </ul>
 <a name="usable">
@@ -259,7 +259,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>usable</h4>
-<pre>final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5468">usable</a></pre>
+<pre>final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5477">usable</a></pre>
 </li>
 </ul>
 <a name="count">
@@ -268,7 +268,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>count</h4>
-<pre>final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5469">count</a></pre>
+<pre>final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5478">count</a></pre>
 </li>
 </ul>
 <a name="lock">
@@ -277,7 +277,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>lock</h4>
-<pre>final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5470">lock</a></pre>
+<pre>final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5479">lock</a></pre>
 </li>
 </ul>
 <a name="threadName">
@@ -286,7 +286,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>threadName</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5471">threadName</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5480">threadName</a></pre>
 </li>
 </ul>
 </li>
@@ -303,7 +303,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RowLockContext</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5473">RowLockContext</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a>&nbsp;row)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5482">RowLockContext</a>(<a href="../../../../../org/apache/hadoop/hbase/util/HashedBytes.html" title="class in org.apache.hadoop.hbase.util">HashedBytes</a>&nbsp;row)</pre>
 </li>
 </ul>
 </li>
@@ -320,7 +320,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>newWriteLock</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5477">newWriteLock</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5486">newWriteLock</a>()</pre>
 </li>
 </ul>
 <a name="newReadLock--">
@@ -329,7 +329,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>newReadLock</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5481">newReadLock</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5490">newReadLock</a>()</pre>
 </li>
 </ul>
 <a name="getRowLock-java.util.concurrent.locks.Lock-">
@@ -338,7 +338,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getRowLock</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5486">getRowLock</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;l)</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockImpl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5495">getRowLock</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;l)</pre>
 </li>
 </ul>
 <a name="cleanUp--">
@@ -347,7 +347,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanUp</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5497">cleanUp</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5506">cleanUp</a>()</pre>
 </li>
 </ul>
 <a name="setThreadName-java.lang.String-">
@@ -356,7 +356,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>setThreadName</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5510">setThreadName</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5519">setThreadName</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadName)</pre>
 </li>
 </ul>
 <a name="toString--">
@@ -365,7 +365,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5515">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html#line.5524">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
index 7d75d57..1965a93 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5528">HRegion.RowLockImpl</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.5537">HRegion.RowLockImpl</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a></pre>
 <div class="block">Class used to represent a lock on a row.</div>
@@ -226,7 +226,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockList">
 <li class="blockList">
 <h4>context</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5529">context</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5538">context</a></pre>
 </li>
 </ul>
 <a name="lock">
@@ -235,7 +235,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockListLast">
 <li class="blockList">
 <h4>lock</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5530">lock</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5539">lock</a></pre>
 </li>
 </ul>
 </li>
@@ -252,7 +252,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RowLockImpl</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5532">RowLockImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&nbsp;context,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5541">RowLockImpl</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&nbsp;context,
                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;lock)</pre>
 </li>
 </ul>
@@ -270,7 +270,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockList">
 <li class="blockList">
 <h4>getLock</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5537">getLock</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/Lock.html?is-external=true" title="class or interface in java.util.concurrent.locks">Lock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5546">getLock</a>()</pre>
 </li>
 </ul>
 <a name="getContext--">
@@ -279,7 +279,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockList">
 <li class="blockList">
 <h4>getContext</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5542">getContext</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.RowLockContext</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5551">getContext</a>()</pre>
 </li>
 </ul>
 <a name="release--">
@@ -288,7 +288,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockList">
 <li class="blockList">
 <h4>release</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5547">release</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5556">release</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html#release--">Region.RowLock</a></code></span></div>
 <div class="block">Release the given lock.  If there are no remaining locks held by the current thread
  then unlock the row and allow other threads to acquire the lock.</div>
@@ -304,7 +304,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.R
 <ul class="blockListLast">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5553">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html#line.5562">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>


[27/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
index 959e3ef..ac32645 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html
@@ -1401,6821 +1401,6830 @@
 <span class="sourceLineNo">1393</span>  @Override<a name="line.1393"></a>
 <span class="sourceLineNo">1394</span>  public boolean isSplittable() {<a name="line.1394"></a>
 <span class="sourceLineNo">1395</span>    boolean result = isAvailable() &amp;&amp; !hasReferences();<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result, new Throwable("LOGGING"));<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    return result;<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  }<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span><a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  @Override<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>  public boolean isMergeable() {<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    if (!isAvailable()) {<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      LOG.debug("Region " + this<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>          + " is not mergeable because it is closing or closed");<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      return false;<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    }<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    if (hasReferences()) {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      LOG.debug("Region " + this<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>          + " is not mergeable because it has references");<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      return false;<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span><a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    return true;<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span><a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>  public boolean areWritesEnabled() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>    synchronized(this.writestate) {<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      return this.writestate.writesEnabled;<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>  }<a name="line.1420"></a>
+<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result + " " + getRegionInfo().getShortNameToLog(),<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>      new Throwable("LOGGING: REMOVE"));<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    // REMOVE BELOW!!!!<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>    LOG.info("DEBUG LIST ALL FILES");<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    for (Store store: this.stores.values()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>      LOG.info("store " + store.getColumnFamilyName());<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>      for (StoreFile sf: store.getStorefiles()) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        LOG.info(sf.toStringDetailed());<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>      }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>    }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return result;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>  public boolean isMergeable() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    if (!isAvailable()) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      LOG.debug("Region " + this<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>          + " is not mergeable because it is closing or closed");<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>      return false;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>    if (hasReferences()) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      LOG.debug("Region " + this<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>          + " is not mergeable because it has references");<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      return false;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
 <span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  @VisibleForTesting<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>    return mvcc;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>  }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>  @Override<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>  public long getMaxFlushedSeqId() {<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    return maxFlushedSeqId;<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  @Override<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      // This scan can read even uncommitted transactions<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      return Long.MAX_VALUE;<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>    }<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>    return mvcc.getReadPoint();<a name="line.1438"></a>
+<span class="sourceLineNo">1422</span>    return true;<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>  }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span><a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>  public boolean areWritesEnabled() {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>    synchronized(this.writestate) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>      return this.writestate.writesEnabled;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>    }<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>  }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span><a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>  @VisibleForTesting<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>    return mvcc;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>  }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  @Override<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>  public long getMaxFlushedSeqId() {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>    return maxFlushedSeqId;<a name="line.1438"></a>
 <span class="sourceLineNo">1439</span>  }<a name="line.1439"></a>
 <span class="sourceLineNo">1440</span><a name="line.1440"></a>
 <span class="sourceLineNo">1441</span>  @Override<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    return getReadPoint(isolationLevel);<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>  }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span><a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>  @Override<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  /**<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * service any more calls.<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   *<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>   * time-sensitive thread.<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>   *<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * vector if already closed and null if judged that it should not close.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   *<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * @throws IOException e<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>   * caller MUST abort after this.<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>   */<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    return close(false);<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>  private final Object closeLock = new Object();<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span><a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>  /** Conf key for the periodic flush interval */<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  /** Default interval for the memstore flush */<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  /** Default interval for System tables memstore flush */<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span><a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      "hbase.regionserver.flush.per.changes";<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  /**<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>   */<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   * Shut down each HStore, don't service any more calls.<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   *<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * This method could take some time to execute, so don't call it from a<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * time-sensitive thread.<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   *<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>   * @param abort true if server is aborting (only during testing)<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>   * we are not to close at this time or we are already closed.<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>   *<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>   * @throws IOException e<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>   * caller MUST abort after this.<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>   */<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>    // threads attempting to close will run up against each other.<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        "Closing region " + this +<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        (abort ? " due to abort" : ""));<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span><a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>    status.setStatus("Waiting for close lock");<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>    try {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>      synchronized (closeLock) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        return doClose(abort, status);<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      }<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>    } finally {<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      status.cleanup();<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  /**<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>   * Exposed for some very specific unit tests.<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>   */<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>  @VisibleForTesting<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>  public void setClosing(boolean closing) {<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>    this.closing.set(closing);<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>  }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>  /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>   */<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  @VisibleForTesting<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      justification="I think FindBugs is confused")<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      throws IOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    if (isClosed()) {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      LOG.warn("Region " + this + " already closed");<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      return null;<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1442</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      // This scan can read even uncommitted transactions<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>      return Long.MAX_VALUE;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>    return mvcc.getReadPoint();<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span><a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>  @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>    return getReadPoint(isolationLevel);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>  }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span><a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  @Override<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span><a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>  /**<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>   * service any more calls.<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>   *<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>   * time-sensitive thread.<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>   *<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>   * vector if already closed and null if judged that it should not close.<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>   *<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>   * @throws IOException e<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>   * caller MUST abort after this.<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>   */<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>    return close(false);<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>  }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span><a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>  private final Object closeLock = new Object();<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span><a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  /** Conf key for the periodic flush interval */<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>  /** Default interval for the memstore flush */<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>  /** Default interval for System tables memstore flush */<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      "hbase.regionserver.flush.per.changes";<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>  /**<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>   * Shut down each HStore, don't service any more calls.<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>   *<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>   * This method could take some time to execute, so don't call it from a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>   * time-sensitive thread.<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>   *<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>   * @param abort true if server is aborting (only during testing)<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>   * we are not to close at this time or we are already closed.<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>   *<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>   * @throws IOException e<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>   * caller MUST abort after this.<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>   */<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>    // threads attempting to close will run up against each other.<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        "Closing region " + this +<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        (abort ? " due to abort" : ""));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>    status.setStatus("Waiting for close lock");<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>    try {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      synchronized (closeLock) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>        return doClose(abort, status);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>    } finally {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      status.cleanup();<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span><a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>  /**<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>   * Exposed for some very specific unit tests.<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>   */<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>  @VisibleForTesting<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  public void setClosing(boolean closing) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>    this.closing.set(closing);<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span><a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>  /**<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  @VisibleForTesting<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
 <span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>    if (coprocessorHost != null) {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      this.coprocessorHost.preClose(abort);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    boolean canFlush = true;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    synchronized (writestate) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      // Disable compacting and flushing by background threads for this<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // region.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      canFlush = !writestate.readOnly;<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>      writestate.writesEnabled = false;<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      waitForFlushesAndCompactions();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>    }<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    // the close flag?<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      status.setStatus("Pre-flushing region before close");<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      LOG.info("Running close preflush of " + this);<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      try {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        internalFlushcache(status);<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      } catch (IOException ioe) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        // Failed to flush the region. Keep going.<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>    if (timeoutForWriteLock == null<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      // block waiting for the lock for closing<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    } else {<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      try {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>        if (!succeed) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        }<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      } catch (InterruptedException e) {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      }<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    }<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    this.closing.set(true);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    status.setStatus("Disabling writes for close");<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      if (this.isClosed()) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>        status.abort("Already got closed by another process");<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        // SplitTransaction handles the null<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>        return null;<a name="line.1601"></a>
+<span class="sourceLineNo">1553</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      justification="I think FindBugs is confused")<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      throws IOException {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>    if (isClosed()) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      LOG.warn("Region " + this + " already closed");<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      return null;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span><a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    if (coprocessorHost != null) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      this.coprocessorHost.preClose(abort);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>    boolean canFlush = true;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    synchronized (writestate) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      // Disable compacting and flushing by background threads for this<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>      // region.<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      canFlush = !writestate.readOnly;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      writestate.writesEnabled = false;<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      waitForFlushesAndCompactions();<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    }<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    // the close flag?<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      status.setStatus("Pre-flushing region before close");<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      LOG.info("Running close preflush of " + this);<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>      try {<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        internalFlushcache(status);<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>      } catch (IOException ioe) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        // Failed to flush the region. Keep going.<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>      }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span><a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>    if (timeoutForWriteLock == null<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      // block waiting for the lock for closing<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>    } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>      try {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>        if (!succeed) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>        }<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>      } catch (InterruptedException e) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1601"></a>
 <span class="sourceLineNo">1602</span>      }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // Don't flush the cache if we are aborting<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>        int failedfFlushCount = 0;<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>        int flushCount = 0;<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>        long tmp = 0;<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>        while (remainingSize &gt; 0) {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>          try {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>            internalFlushcache(status);<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>            if(flushCount &gt;0) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>                  " (carrying snapshot?) " + this);<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>            }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>            flushCount++;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>            tmp = this.memstoreDataSize.get();<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>            if (tmp &gt;= remainingSize) {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>              failedfFlushCount++;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>            }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>            remainingSize = tmp;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>            if (failedfFlushCount &gt; 5) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>              // so we do not lose data<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>                  flushCount + " attempts on region: " +<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>            }<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>          } catch (IOException ioe) {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>            synchronized (writestate) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>              writestate.writesEnabled = true;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>            }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>            throw ioe;<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>          }<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>        }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      }<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span><a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>      if (!stores.isEmpty()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>            getRegionInfo().getRegionNameAsString());<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1648"></a>
+<span class="sourceLineNo">1603</span>    }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>    this.closing.set(true);<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>    status.setStatus("Disabling writes for close");<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    try {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      if (this.isClosed()) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>        status.abort("Already got closed by another process");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        // SplitTransaction handles the null<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>        return null;<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>      }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>      // Don't flush the cache if we are aborting<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>        int failedfFlushCount = 0;<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>        int flushCount = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>        long tmp = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>        while (remainingSize &gt; 0) {<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>          try {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>            internalFlushcache(status);<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>            if(flushCount &gt;0) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                  " (carrying snapshot?) " + this);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>            }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>            flushCount++;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>            tmp = this.memstoreDataSize.get();<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>            if (tmp &gt;= remainingSize) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>              failedfFlushCount++;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>            }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>            remainingSize = tmp;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>            if (failedfFlushCount &gt; 5) {<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>              // so we do not lose data<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                  flushCount + " attempts on region: " +<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>            }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>          } catch (IOException ioe) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>            synchronized (writestate) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>              writestate.writesEnabled = true;<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>            }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>            throw ioe;<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>          }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>      }<a name="line.1648"></a>
 <span class="sourceLineNo">1649</span><a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        // close each store in parallel<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        for (final Store store : stores.values()) {<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>            if (getRegionServerServices() != null) {<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>            }<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>          }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>          completionService<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>                @Override<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>                }<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>              });<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>        }<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        try {<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>            if (familyFiles == null) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>            }<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>          }<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>        } catch (InterruptedException e) {<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>        } catch (ExecutionException e) {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>          Throwable cause = e.getCause();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>          if (cause instanceof IOException) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>            throw (IOException) cause;<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>          }<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>          throw new IOException(cause);<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        } finally {<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>          storeCloserThreadPool.shutdownNow();<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>        }<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span><a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      status.setStatus("Writing region close event to WAL");<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>        writeRegionCloseMarker(wal);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>      }<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span><a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>      this.closed.set(true);<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      if (!canFlush) {<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>      }<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      if (coprocessorHost != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        this.coprocessorHost.postClose(abort);<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (this.metricsRegion != null) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        this.metricsRegion.close();<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      if (this.metricsRegionWrapper != null) {<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      }<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      status.markComplete("Closed");<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      LOG.info("Closed " + this);<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>      return result;<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    } finally {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      lock.writeLock().unlock();<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>  }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span><a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>  private long getMemstoreHeapSize() {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>    long size = 0;<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>    for (Store s : this.stores.values()) {<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>    }<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    return size;<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>  }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span><a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>  @Override<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>  public void waitForFlushesAndCompactions() {<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    synchronized (writestate) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      if (this.writestate.readOnly) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>        // region is a secondary replica).<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>        return;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      boolean interrupted = false;<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      try {<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>          try {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>            writestate.wait();<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          } catch (InterruptedException iex) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>            // essentially ignore and propagate the interrupt back up<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>            LOG.warn("Interrupted while waiting");<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>            interrupted = true;<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>          }<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>        }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      } finally {<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (interrupted) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          Thread.currentThread().interrupt();<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>        }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      }<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>    }<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>  }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>  @Override<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>  public void waitForFlushes() {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>    synchronized (writestate) {<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>      if (this.writestate.readOnly) {<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>        // region is a secondary replica).<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>        return;<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      }<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>      if (!writestate.flushing) return;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      long start = System.currentTimeMillis();<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>      boolean interrupted = false;<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      try {<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        while (writestate.flushing) {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>          try {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>            writestate.wait();<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          } catch (InterruptedException iex) {<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>            // essentially ignore and propagate the interrupt back up<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>            LOG.warn("Interrupted while waiting");<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            interrupted = true;<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          }<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>      } finally {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        if (interrupted) {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>          Thread.currentThread().interrupt();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>        }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>      }<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>      long duration = System.currentTimeMillis() - start;<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>    }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>  }<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>      final String threadNamePrefix) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    int maxThreads = Math.min(numStores,<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>  }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1800"></a>
+<span class="sourceLineNo">1650</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      if (!stores.isEmpty()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>            getRegionInfo().getRegionNameAsString());<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>        // close each store in parallel<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        for (final Store store : stores.values()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>            if (getRegionServerServices() != null) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>            }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>          }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>          completionService<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                @Override<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>              });<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>        try {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>            if (familyFiles == null) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>            }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>          }<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        } catch (InterruptedException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        } catch (ExecutionException e) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>          Throwable cause = e.getCause();<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>          if (cause instanceof IOException) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>            throw (IOException) cause;<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>          }<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>          throw new IOException(cause);<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        } finally {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>          storeCloserThreadPool.shutdownNow();<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>      }<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span><a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>      status.setStatus("Writing region close event to WAL");<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>        writeRegionCloseMarker(wal);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>      this.closed.set(true);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>      if (!canFlush) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>      }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>      if (coprocessorHost != null) {<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>        this.coprocessorHost.postClose(abort);<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>      }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>      if (this.metricsRegion != null) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>        this.metricsRegion.close();<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>      }<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>      if (this.metricsRegionWrapper != null) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>      }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>      status.markComplete("Closed");<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>      LOG.info("Closed " + this);<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>      return result;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>    } finally {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>      lock.writeLock().unlock();<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>    }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>  }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span><a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>  private long getMemstoreHeapSize() {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    long size = 0;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    for (Store s : this.stores.values()) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>    }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>    return size;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>  }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span><a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>  @Override<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>  public void waitForFlushesAndCompactions() {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    synchronized (writestate) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>      if (this.writestate.readOnly) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>        // region is a secondary replica).<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>        return;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>      }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>      boolean interrupted = false;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>      try {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>          try {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>            writestate.wait();<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>          } catch (InterruptedException iex) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>            // essentially ignore and propagate the interrupt back up<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>            LOG.warn("Interrupted while waiting");<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>            interrupted = true;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>          }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>      } finally {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        if (interrupted) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>          Thread.currentThread().interrupt();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>      }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>    }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>  }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>  @Override<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>  public void waitForFlushes() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>    synchronized (writestate) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>      if (this.writestate.readOnly) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>        // region is a secondary replica).<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>        return;<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>      if (!writestate.flushing) return;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      long start = System.currentTimeMillis();<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      boolean interrupted = false;<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>      try {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        while (writestate.flushing) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>          try {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>            writestate.wait();<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>          } catch (InterruptedException iex) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>            // essentially ignore and propagate the interrupt back up<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>            LOG.warn("Interrupted while waiting");<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>            interrupted = true;<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>          }<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        }<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>      } finally {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>        if (interrupted) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          Thread.currentThread().interrupt();<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>        }<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>      }<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>      long duration = System.currentTimeMillis() - start;<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>    }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>  }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1800"></a>
 <span class="sourceLineNo">1801</span>      final String threadNamePrefix) {<a name="line.1801"></a>
 <span class="sourceLineNo">1802</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    int maxThreads = Math.max(1,<a name="line.1803"></a>
+<span class="sourceLineNo">1803</span>    int maxThreads = Math.min(numStores,<a name="line.1803"></a>
 <span class="sourceLineNo">1804</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>            / numStores);<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>  }<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span><a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>      final String threadNamePrefix) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>      new ThreadFactory() {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        private int count = 1;<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span><a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>        @Override<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>        public Thread newThread(Runnable r) {<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>      });<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>  }<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>   /**<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    */<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>  private boolean worthPreFlushing() {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    return this.memstoreDataSize.get() &gt;<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>  }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span><a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>  // HRegion accessors<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>  @Override<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  public HTableDescriptor getTableDesc() {<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    return this.htableDescriptor;<a name="line.1837"></a>
+<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>  }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span><a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>      final String threadNamePrefix) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    int maxThreads = Math.max(1,<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>            / numStores);<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>  }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>      final String threadNamePrefix) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>      new ThreadFactory() {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>        private int count = 1;<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span><a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>        @Override<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>        public Thread newThread(Runnable r) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      });<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span><a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>   /**<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    */<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  private boolean worthPreFlushing() {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>    return this.memstoreDataSize.get() &gt;<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1837"></a>
 <span class="sourceLineNo">1838</span>  }<a name="line.1838"></a>
 <span class="sourceLineNo">1839</span><a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  /** @return WAL i

<TRUNCATED>

[24/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
index 959e3ef..ac32645 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockContext.html
@@ -1401,6821 +1401,6830 @@
 <span class="sourceLineNo">1393</span>  @Override<a name="line.1393"></a>
 <span class="sourceLineNo">1394</span>  public boolean isSplittable() {<a name="line.1394"></a>
 <span class="sourceLineNo">1395</span>    boolean result = isAvailable() &amp;&amp; !hasReferences();<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result, new Throwable("LOGGING"));<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    return result;<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  }<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span><a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  @Override<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>  public boolean isMergeable() {<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    if (!isAvailable()) {<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      LOG.debug("Region " + this<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>          + " is not mergeable because it is closing or closed");<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      return false;<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    }<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    if (hasReferences()) {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      LOG.debug("Region " + this<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>          + " is not mergeable because it has references");<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      return false;<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span><a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    return true;<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span><a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>  public boolean areWritesEnabled() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>    synchronized(this.writestate) {<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      return this.writestate.writesEnabled;<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>  }<a name="line.1420"></a>
+<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result + " " + getRegionInfo().getShortNameToLog(),<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>      new Throwable("LOGGING: REMOVE"));<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    // REMOVE BELOW!!!!<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>    LOG.info("DEBUG LIST ALL FILES");<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    for (Store store: this.stores.values()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>      LOG.info("store " + store.getColumnFamilyName());<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>      for (StoreFile sf: store.getStorefiles()) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        LOG.info(sf.toStringDetailed());<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>      }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>    }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return result;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>  public boolean isMergeable() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    if (!isAvailable()) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      LOG.debug("Region " + this<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>          + " is not mergeable because it is closing or closed");<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>      return false;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>    if (hasReferences()) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      LOG.debug("Region " + this<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>          + " is not mergeable because it has references");<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      return false;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
 <span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  @VisibleForTesting<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>    return mvcc;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>  }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>  @Override<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>  public long getMaxFlushedSeqId() {<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    return maxFlushedSeqId;<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  @Override<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      // This scan can read even uncommitted transactions<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      return Long.MAX_VALUE;<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>    }<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>    return mvcc.getReadPoint();<a name="line.1438"></a>
+<span class="sourceLineNo">1422</span>    return true;<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>  }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span><a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>  public boolean areWritesEnabled() {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>    synchronized(this.writestate) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>      return this.writestate.writesEnabled;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>    }<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>  }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span><a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>  @VisibleForTesting<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>    return mvcc;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>  }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  @Override<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>  public long getMaxFlushedSeqId() {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>    return maxFlushedSeqId;<a name="line.1438"></a>
 <span class="sourceLineNo">1439</span>  }<a name="line.1439"></a>
 <span class="sourceLineNo">1440</span><a name="line.1440"></a>
 <span class="sourceLineNo">1441</span>  @Override<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    return getReadPoint(isolationLevel);<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>  }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span><a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>  @Override<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  /**<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * service any more calls.<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   *<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>   * time-sensitive thread.<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>   *<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * vector if already closed and null if judged that it should not close.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   *<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * @throws IOException e<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>   * caller MUST abort after this.<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>   */<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    return close(false);<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>  private final Object closeLock = new Object();<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span><a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>  /** Conf key for the periodic flush interval */<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  /** Default interval for the memstore flush */<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  /** Default interval for System tables memstore flush */<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span><a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      "hbase.regionserver.flush.per.changes";<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  /**<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>   */<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   * Shut down each HStore, don't service any more calls.<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   *<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * This method could take some time to execute, so don't call it from a<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * time-sensitive thread.<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   *<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>   * @param abort true if server is aborting (only during testing)<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>   * we are not to close at this time or we are already closed.<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>   *<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>   * @throws IOException e<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>   * caller MUST abort after this.<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>   */<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>    // threads attempting to close will run up against each other.<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        "Closing region " + this +<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        (abort ? " due to abort" : ""));<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span><a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>    status.setStatus("Waiting for close lock");<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>    try {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>      synchronized (closeLock) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        return doClose(abort, status);<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      }<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>    } finally {<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      status.cleanup();<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  /**<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>   * Exposed for some very specific unit tests.<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>   */<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>  @VisibleForTesting<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>  public void setClosing(boolean closing) {<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>    this.closing.set(closing);<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>  }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>  /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>   */<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  @VisibleForTesting<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      justification="I think FindBugs is confused")<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      throws IOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    if (isClosed()) {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      LOG.warn("Region " + this + " already closed");<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      return null;<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1442</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      // This scan can read even uncommitted transactions<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>      return Long.MAX_VALUE;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>    return mvcc.getReadPoint();<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span><a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>  @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>    return getReadPoint(isolationLevel);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>  }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span><a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  @Override<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span><a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>  /**<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>   * service any more calls.<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>   *<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>   * time-sensitive thread.<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>   *<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>   * vector if already closed and null if judged that it should not close.<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>   *<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>   * @throws IOException e<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>   * caller MUST abort after this.<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>   */<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>    return close(false);<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>  }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span><a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>  private final Object closeLock = new Object();<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span><a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  /** Conf key for the periodic flush interval */<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>  /** Default interval for the memstore flush */<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>  /** Default interval for System tables memstore flush */<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      "hbase.regionserver.flush.per.changes";<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>  /**<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>   * Shut down each HStore, don't service any more calls.<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>   *<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>   * This method could take some time to execute, so don't call it from a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>   * time-sensitive thread.<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>   *<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>   * @param abort true if server is aborting (only during testing)<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>   * we are not to close at this time or we are already closed.<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>   *<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>   * @throws IOException e<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>   * caller MUST abort after this.<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>   */<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>    // threads attempting to close will run up against each other.<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        "Closing region " + this +<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        (abort ? " due to abort" : ""));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>    status.setStatus("Waiting for close lock");<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>    try {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      synchronized (closeLock) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>        return doClose(abort, status);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>    } finally {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      status.cleanup();<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span><a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>  /**<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>   * Exposed for some very specific unit tests.<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>   */<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>  @VisibleForTesting<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  public void setClosing(boolean closing) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>    this.closing.set(closing);<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span><a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>  /**<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  @VisibleForTesting<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
 <span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>    if (coprocessorHost != null) {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      this.coprocessorHost.preClose(abort);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    boolean canFlush = true;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    synchronized (writestate) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      // Disable compacting and flushing by background threads for this<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // region.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      canFlush = !writestate.readOnly;<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>      writestate.writesEnabled = false;<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      waitForFlushesAndCompactions();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>    }<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    // the close flag?<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      status.setStatus("Pre-flushing region before close");<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      LOG.info("Running close preflush of " + this);<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      try {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        internalFlushcache(status);<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      } catch (IOException ioe) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        // Failed to flush the region. Keep going.<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>    if (timeoutForWriteLock == null<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      // block waiting for the lock for closing<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    } else {<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      try {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>        if (!succeed) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        }<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      } catch (InterruptedException e) {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      }<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    }<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    this.closing.set(true);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    status.setStatus("Disabling writes for close");<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      if (this.isClosed()) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>        status.abort("Already got closed by another process");<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        // SplitTransaction handles the null<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>        return null;<a name="line.1601"></a>
+<span class="sourceLineNo">1553</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      justification="I think FindBugs is confused")<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      throws IOException {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>    if (isClosed()) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      LOG.warn("Region " + this + " already closed");<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      return null;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span><a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    if (coprocessorHost != null) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      this.coprocessorHost.preClose(abort);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>    boolean canFlush = true;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    synchronized (writestate) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      // Disable compacting and flushing by background threads for this<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>      // region.<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      canFlush = !writestate.readOnly;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      writestate.writesEnabled = false;<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      waitForFlushesAndCompactions();<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    }<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    // the close flag?<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      status.setStatus("Pre-flushing region before close");<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      LOG.info("Running close preflush of " + this);<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>      try {<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        internalFlushcache(status);<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>      } catch (IOException ioe) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        // Failed to flush the region. Keep going.<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>      }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span><a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>    if (timeoutForWriteLock == null<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      // block waiting for the lock for closing<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>    } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>      try {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>        if (!succeed) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>        }<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>      } catch (InterruptedException e) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1601"></a>
 <span class="sourceLineNo">1602</span>      }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // Don't flush the cache if we are aborting<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>        int failedfFlushCount = 0;<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>        int flushCount = 0;<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>        long tmp = 0;<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>        while (remainingSize &gt; 0) {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>          try {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>            internalFlushcache(status);<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>            if(flushCount &gt;0) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>                  " (carrying snapshot?) " + this);<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>            }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>            flushCount++;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>            tmp = this.memstoreDataSize.get();<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>            if (tmp &gt;= remainingSize) {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>              failedfFlushCount++;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>            }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>            remainingSize = tmp;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>            if (failedfFlushCount &gt; 5) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>              // so we do not lose data<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>                  flushCount + " attempts on region: " +<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>            }<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>          } catch (IOException ioe) {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>            synchronized (writestate) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>              writestate.writesEnabled = true;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>            }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>            throw ioe;<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>          }<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>        }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      }<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span><a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>      if (!stores.isEmpty()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>            getRegionInfo().getRegionNameAsString());<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1648"></a>
+<span class="sourceLineNo">1603</span>    }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>    this.closing.set(true);<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>    status.setStatus("Disabling writes for close");<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    try {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      if (this.isClosed()) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>        status.abort("Already got closed by another process");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        // SplitTransaction handles the null<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>        return null;<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>      }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>      // Don't flush the cache if we are aborting<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>        int failedfFlushCount = 0;<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>        int flushCount = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>        long tmp = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>        while (remainingSize &gt; 0) {<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>          try {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>            internalFlushcache(status);<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>            if(flushCount &gt;0) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                  " (carrying snapshot?) " + this);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>            }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>            flushCount++;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>            tmp = this.memstoreDataSize.get();<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>            if (tmp &gt;= remainingSize) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>              failedfFlushCount++;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>            }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>            remainingSize = tmp;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>            if (failedfFlushCount &gt; 5) {<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>              // so we do not lose data<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                  flushCount + " attempts on region: " +<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>            }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>          } catch (IOException ioe) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>            synchronized (writestate) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>              writestate.writesEnabled = true;<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>            }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>            throw ioe;<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>          }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>      }<a name="line.1648"></a>
 <span class="sourceLineNo">1649</span><a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        // close each store in parallel<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        for (final Store store : stores.values()) {<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>            if (getRegionServerServices() != null) {<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>            }<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>          }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>          completionService<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>                @Override<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>                }<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>              });<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>        }<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        try {<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>            if (familyFiles == null) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>            }<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>          }<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>        } catch (InterruptedException e) {<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>        } catch (ExecutionException e) {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>          Throwable cause = e.getCause();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>          if (cause instanceof IOException) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>            throw (IOException) cause;<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>          }<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>          throw new IOException(cause);<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        } finally {<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>          storeCloserThreadPool.shutdownNow();<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>        }<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span><a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      status.setStatus("Writing region close event to WAL");<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>        writeRegionCloseMarker(wal);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>      }<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span><a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>      this.closed.set(true);<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      if (!canFlush) {<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>      }<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      if (coprocessorHost != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        this.coprocessorHost.postClose(abort);<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (this.metricsRegion != null) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        this.metricsRegion.close();<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      if (this.metricsRegionWrapper != null) {<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      }<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      status.markComplete("Closed");<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      LOG.info("Closed " + this);<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>      return result;<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    } finally {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      lock.writeLock().unlock();<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>  }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span><a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>  private long getMemstoreHeapSize() {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>    long size = 0;<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>    for (Store s : this.stores.values()) {<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>    }<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    return size;<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>  }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span><a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>  @Override<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>  public void waitForFlushesAndCompactions() {<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    synchronized (writestate) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      if (this.writestate.readOnly) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>        // region is a secondary replica).<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>        return;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      boolean interrupted = false;<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      try {<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>          try {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>            writestate.wait();<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          } catch (InterruptedException iex) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>            // essentially ignore and propagate the interrupt back up<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>            LOG.warn("Interrupted while waiting");<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>            interrupted = true;<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>          }<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>        }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      } finally {<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (interrupted) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          Thread.currentThread().interrupt();<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>        }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      }<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>    }<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>  }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>  @Override<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>  public void waitForFlushes() {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>    synchronized (writestate) {<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>      if (this.writestate.readOnly) {<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>        // region is a secondary replica).<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>        return;<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      }<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>      if (!writestate.flushing) return;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      long start = System.currentTimeMillis();<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>      boolean interrupted = false;<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      try {<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        while (writestate.flushing) {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>          try {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>            writestate.wait();<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          } catch (InterruptedException iex) {<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>            // essentially ignore and propagate the interrupt back up<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>            LOG.warn("Interrupted while waiting");<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            interrupted = true;<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          }<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>      } finally {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        if (interrupted) {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>          Thread.currentThread().interrupt();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>        }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>      }<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>      long duration = System.currentTimeMillis() - start;<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>    }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>  }<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>      final String threadNamePrefix) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    int maxThreads = Math.min(numStores,<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>  }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1800"></a>
+<span class="sourceLineNo">1650</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      if (!stores.isEmpty()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>            getRegionInfo().getRegionNameAsString());<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>        // close each store in parallel<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        for (final Store store : stores.values()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>            if (getRegionServerServices() != null) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>            }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>          }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>          completionService<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                @Override<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>              });<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>        try {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>            if (familyFiles == null) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>            }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>          }<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        } catch (InterruptedException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        } catch (ExecutionException e) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>          Throwable cause = e.getCause();<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>          if (cause instanceof IOException) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>            throw (IOException) cause;<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>          }<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>          throw new IOException(cause);<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        } finally {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>          storeCloserThreadPool.shutdownNow();<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>      }<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span><a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>      status.setStatus("Writing region close event to WAL");<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>        writeRegionCloseMarker(wal);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>      this.closed.set(true);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>      if (!canFlush) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>      }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>      if (coprocessorHost != null) {<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>        this.coprocessorHost.postClose(abort);<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>      }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>      if (this.metricsRegion != null) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>        this.metricsRegion.close();<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>      }<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>      if (this.metricsRegionWrapper != null) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>      }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>      status.markComplete("Closed");<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>      LOG.info("Closed " + this);<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>      return result;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>    } finally {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>      lock.writeLock().unlock();<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>    }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>  }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span><a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>  private long getMemstoreHeapSize() {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    long size = 0;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    for (Store s : this.stores.values()) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>    }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>    return size;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>  }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span><a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>  @Override<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>  public void waitForFlushesAndCompactions() {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    synchronized (writestate) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>      if (this.writestate.readOnly) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>        // region is a secondary replica).<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>        return;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>      }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>      boolean interrupted = false;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>      try {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>          try {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>            writestate.wait();<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>          } catch (InterruptedException iex) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>            // essentially ignore and propagate the interrupt back up<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>            LOG.warn("Interrupted while waiting");<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>            interrupted = true;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>          }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>      } finally {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        if (interrupted) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>          Thread.currentThread().interrupt();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>      }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>    }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>  }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>  @Override<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>  public void waitForFlushes() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>    synchronized (writestate) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>      if (this.writestate.readOnly) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>        // region is a secondary replica).<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>        return;<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>      if (!writestate.flushing) return;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      long start = System.currentTimeMillis();<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      boolean interrupted = false;<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>      try {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        while (writestate.flushing) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>          try {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>            writestate.wait();<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>          } catch (InterruptedException iex) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>            // essentially ignore and propagate the interrupt back up<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>            LOG.warn("Interrupted while waiting");<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>            interrupted = true;<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>          }<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        }<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>      } finally {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>        if (interrupted) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          Thread.currentThread().interrupt();<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>        }<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>      }<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>      long duration = System.currentTimeMillis() - start;<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>    }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>  }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1800"></a>
 <span class="sourceLineNo">1801</span>      final String threadNamePrefix) {<a name="line.1801"></a>
 <span class="sourceLineNo">1802</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    int maxThreads = Math.max(1,<a name="line.1803"></a>
+<span class="sourceLineNo">1803</span>    int maxThreads = Math.min(numStores,<a name="line.1803"></a>
 <span class="sourceLineNo">1804</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>            / numStores);<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>  }<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span><a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>      final String threadNamePrefix) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>      new ThreadFactory() {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        private int count = 1;<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span><a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>        @Override<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>        public Thread newThread(Runnable r) {<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>      });<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>  }<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>   /**<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    */<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>  private boolean worthPreFlushing() {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    return this.memstoreDataSize.get() &gt;<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>  }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span><a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>  // HRegion accessors<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>  @Override<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  public HTableDescriptor getTableDesc() {<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    return this.htableDescriptor;<a name="line.1837"></a>
+<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>  }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span><a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>      final String threadNamePrefix) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    int maxThreads = Math.max(1,<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>            / numStores);<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>  }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>      final String threadNamePrefix) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>      new ThreadFactory() {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>        private int count = 1;<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span><a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>        @Override<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>        public Thread newThread(Runnable r) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      });<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span><a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>   /**<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    */<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  private boolean worthPreFlushing() {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>    return this.memstoreDataSize.get() &gt;<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1837"></a>
 <span class="sourceLineNo">1838</span>  }<a name="line.1838"></a>
 <span class="sourceLineNo">1839</span><a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  /** @return WAL in use for this regio

<TRUNCATED>

[09/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependency-management.html b/hbase-archetypes/dependency-management.html
index c0cf64f..d69dfd5 100644
--- a/hbase-archetypes/dependency-management.html
+++ b/hbase-archetypes/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>
@@ -158,9 +158,9 @@
 <tr class="b">
 <td>commons-cli</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">commons-cli</a></td>
-<td>1.3.1</td>
+<td>1.4</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-codec</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-codec/">commons-codec</a></td>
@@ -175,10 +175,10 @@
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-io</td>
-<td><a class="externalLink" href="http://commons.apache.org/io/">commons-io</a></td>
-<td>2.4</td>
+<td><a class="externalLink" href="http://commons.apache.org/proper/commons-io/">commons-io</a></td>
+<td>2.5</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="b">
 <td>commons-lang</td>
 <td><a class="externalLink" href="http://commons.apache.org/lang/">commons-lang</a></td>
@@ -192,411 +192,405 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
 <tr class="b">
-<td>commons-net</td>
-<td><a class="externalLink" href="http://commons.apache.org/net/">commons-net</a></td>
-<td>3.1</td>
-<td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
 <td>io.dropwizard.metrics</td>
 <td><a class="externalLink" href="http://metrics.codahale.com/metrics-core/">metrics-core</a></td>
-<td>3.1.2</td>
+<td>3.2.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>io.netty</td>
 <td><a class="externalLink" href="http://netty.io/netty-all/">netty-all</a></td>
-<td>4.1.1.Final</td>
+<td>4.1.9.Final</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>javax.servlet</td>
 <td><a class="externalLink" href="http://servlet-spec.java.net">javax.servlet-api</a></td>
 <td>3.1.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>javax.xml.bind</td>
-<td><a class="externalLink" href="https://jaxb.dev.java.net/">jaxb-api</a></td>
-<td>2.2.2</td>
+<td><a class="externalLink" href="http://jaxb.java.net/">jaxb-api</a></td>
+<td>2.2.12</td>
 <td>jar</td>
-<td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
-<tr class="a">
+<td><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
+<tr class="b">
 <td>junit</td>
 <td><a class="externalLink" href="http://junit.org">junit</a></td>
 <td>4.12</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>log4j</td>
 <td><a class="externalLink" href="http://logging.apache.org/log4j/1.2/">log4j</a></td>
 <td>1.2.17</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>net.spy</td>
 <td><a class="externalLink" href="http://www.couchbase.org/code/couchbase/java">spymemcached</a></td>
-<td>2.11.6</td>
+<td>2.12.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-crypto/">commons-crypto</a></td>
 <td>1.0.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math</a></td>
 <td>2.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-client">curator-client</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-framework">curator-framework</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-recipes">curator-recipes</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-auth</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-client</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-hdfs</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-core</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-jobclient</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-minicluster</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-client">hbase-client</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-common">hbase-common</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-endpoint">hbase-endpoint</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-examples">hbase-examples</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">hbase-external-blockcache</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop-compat">hbase-hadoop-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop2-compat">hbase-hadoop2-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics">hbase-metrics</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics-api">hbase-metrics-api</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol">hbase-protocol</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol-shaded">hbase-protocol-shaded</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-rsgroup">hbase-rsgroup</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-server">hbase-server</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-shell">hbase-shell</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">hbase-thrift</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.htrace</td>
 <td><a class="externalLink" href="http://incubator.apache.org/projects/htrace.html">htrace-core</a></td>
-<td>3.1.0-incubating</td>
+<td>3.2.0-incubating</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">httpclient</a></td>
-<td>4.5.2</td>
+<td>4.5.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">httpcore</a></td>
-<td>4.4.4</td>
+<td>4.4.6</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-client">kerb-client</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-simplekdc">kerb-simplekdc</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.thrift</td>
 <td><a class="externalLink" href="http://thrift.apache.org">libthrift</a></td>
 <td>0.9.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.zookeeper</td>
 <td>zookeeper</td>
-<td>3.4.8</td>
+<td>3.4.9</td>
 <td>jar</td>
-<td>-</td></tr>
-<tr class="b">
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-core-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-jaxrs</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-mapper-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-xc</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jettison</td>
-<td><a class="externalLink" href="http://codehaus.org/jettison/">jettison</a></td>
-<td>1.3.3</td>
+<td><a class="externalLink" href="https://github.com/jettison-json/jettison">jettison</a></td>
+<td>1.3.8</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jsp</a></td>
 <td>9.2.19.v20160908</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.jersey.containers</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">jersey-container-servlet-core</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.jersey.media</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-media-json-jackson1/">jersey-media-json-jackson1</a></td>
 <td>2.23.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
-<td>9.1.9.0</td>
+<td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
-<td>1.7.7</td>
+<td>1.7.24</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr></table></div>
 <div class="section">
@@ -724,7 +718,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr></table></div></div>
       </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependencies.html b/hbase-archetypes/hbase-archetype-builder/dependencies.html
index dd0b71e..ef494a2 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependencies.html
+++ b/hbase-archetypes/hbase-archetype-builder/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>
@@ -151,7 +151,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr></table></div></div><a name="Project_Transitive_Dependencies"></a>
 <div class="section">
@@ -243,7 +243,7 @@
 <p><b>Description: </b>This is the core API of hamcrest matcher framework to be used by third-party framework providers. This includes the a foundation set of matcher implementations for common operations.</p>
 <p><b>URL: </b><a class="externalLink" href="https://github.com/hamcrest/JavaHamcrest/hamcrest-core">https://github.com/hamcrest/JavaHamcrest/hamcrest-core</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/bsd-license.php">New BSD License</a></p></td></tr></table></div></li></ul></li>
-<li>org.mockito:mockito-all:jar:1.10.8 (test) <img id="_img11" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep10', '_img11' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep10" style="display:none">
+<li>org.mockito:mockito-all:jar:1.10.19 (test) <img id="_img11" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep10', '_img11' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep10" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Mockito</th></tr>
@@ -303,11 +303,11 @@
 <td>1.5</td>
 <td>debug</td></tr>
 <tr class="b">
-<td>mockito-all-1.10.8.jar</td>
-<td>1.16 MB</td>
-<td>1,183</td>
-<td>736</td>
-<td>77</td>
+<td>mockito-all-1.10.19.jar</td>
+<td>1.18 MB</td>
+<td>1,215</td>
+<td>752</td>
+<td>79</td>
 <td>1.5</td>
 <td>debug</td></tr>
 <tr class="a">
@@ -320,10 +320,10 @@
 <th>Debug</th></tr>
 <tr class="b">
 <td>5</td>
-<td>1.98 MB</td>
-<td>1,945</td>
-<td>1,403</td>
-<td>132</td>
+<td>2.00 MB</td>
+<td>1,977</td>
+<td>1,419</td>
+<td>134</td>
 <td>1.5</td>
 <td>5</td></tr>
 <tr class="a">
@@ -336,10 +336,10 @@
 <td>compile: 3</td></tr>
 <tr class="b">
 <td>test: 2</td>
-<td>test: 1.20 MB</td>
-<td>test: 1,235</td>
-<td>test: 781</td>
-<td>test: 80</td>
+<td>test: 1.22 MB</td>
+<td>test: 1,267</td>
+<td>test: 797</td>
+<td>test: 82</td>
 <td>-</td>
 <td>test: 2</td></tr></table></div>
       </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html b/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
index 7c2e2f5..b41e2b7 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
+++ b/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>
@@ -126,10 +126,10 @@
 <td>33</td></tr>
 <tr class="b">
 <th>Number of dependencies (NOD):</th>
-<td>93</td></tr>
+<td>92</td></tr>
 <tr class="a">
 <th>Number of unique artifacts (NOA):</th>
-<td>94</td></tr>
+<td>93</td></tr>
 <tr class="b">
 <th>Number of SNAPSHOT artifacts (NOS):</th>
 <td>0</td></tr>
@@ -263,7 +263,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.3.1</td>
+<td width="25%">1.4</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-it">org.apache.hbase:hbase-it</a></li>
@@ -306,7 +306,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.4</td>
+<td width="25%">2.5</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -363,18 +363,6 @@
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-spark">org.apache.hbase:hbase-spark</a></li>
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
 <div class="section">
-<h4><a name="commons-net:commons-net"></a>commons-net:commons-net</h4>
-<table border="0" class="bodyTable">
-<tr class="b">
-<td><img alt="success" src="images/icon_success_sml.gif" /></td>
-<td>
-<table border="0" class="bodyTable">
-<tr class="a">
-<td width="25%">3.1</td>
-<td>
-<ol style="list-style-type: lower-alpha">
-<li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
-<div class="section">
 <h4><a name="io.dropwizard.metrics:metrics-core"></a>io.dropwizard.metrics:metrics-core</h4>
 <table border="0" class="bodyTable">
 <tr class="b">
@@ -382,7 +370,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.1.2</td>
+<td width="25%">3.2.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -413,7 +401,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.1.1.Final</td>
+<td width="25%">4.1.9.Final</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -441,7 +429,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.2.2</td>
+<td width="25%">2.2.12</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li></ol></td></tr></table></td></tr></table></div>
@@ -553,7 +541,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.6</td>
+<td width="25%">2.12.2</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">org.apache.hbase:hbase-external-blockcache</a></li></ol></td></tr></table></td></tr></table></div>
@@ -605,7 +593,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -617,7 +605,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -629,7 +617,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1214,7 +1202,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.1.0-incubating</td>
+<td width="25%">3.2.0-incubating</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1232,7 +1220,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.5.2</td>
+<td width="25%">4.5.3</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1246,7 +1234,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.4.4</td>
+<td width="25%">4.4.6</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1334,7 +1322,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.4.8</td>
+<td width="25%">3.4.9</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1489,7 +1477,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.22.2</td>
+<td width="25%">2.25.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li>
@@ -1565,7 +1553,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">9.1.9.0</td>
+<td width="25%">9.1.10.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-shell">org.apache.hbase:hbase-shell</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1577,7 +1565,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.10.8</td>
+<td width="25%">1.10.19</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">org.apache.hbase:hbase-annotations</a></li>
@@ -1657,7 +1645,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1669,7 +1657,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-testing-util">org.apache.hbase:hbase-testing-util</a></li></ol></td></tr></table></td></tr></table></div></div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependency-info.html b/hbase-archetypes/hbase-archetype-builder/dependency-info.html
index d9852d1..80a2f4c 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependency-info.html
+++ b/hbase-archetypes/hbase-archetype-builder/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/dependency-management.html b/hbase-archetypes/hbase-archetype-builder/dependency-management.html
index 94438a8..58c52c1 100644
--- a/hbase-archetypes/hbase-archetype-builder/dependency-management.html
+++ b/hbase-archetypes/hbase-archetype-builder/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>
@@ -146,9 +146,9 @@
 <tr class="b">
 <td>commons-cli</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">commons-cli</a></td>
-<td>1.3.1</td>
+<td>1.4</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-codec</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-codec/">commons-codec</a></td>
@@ -163,10 +163,10 @@
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-io</td>
-<td><a class="externalLink" href="http://commons.apache.org/io/">commons-io</a></td>
-<td>2.4</td>
+<td><a class="externalLink" href="http://commons.apache.org/proper/commons-io/">commons-io</a></td>
+<td>2.5</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="b">
 <td>commons-lang</td>
 <td><a class="externalLink" href="http://commons.apache.org/lang/">commons-lang</a></td>
@@ -180,411 +180,405 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
 <tr class="b">
-<td>commons-net</td>
-<td><a class="externalLink" href="http://commons.apache.org/net/">commons-net</a></td>
-<td>3.1</td>
-<td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
 <td>io.dropwizard.metrics</td>
 <td><a class="externalLink" href="http://metrics.codahale.com/metrics-core/">metrics-core</a></td>
-<td>3.1.2</td>
+<td>3.2.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>io.netty</td>
 <td><a class="externalLink" href="http://netty.io/netty-all/">netty-all</a></td>
-<td>4.1.1.Final</td>
+<td>4.1.9.Final</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>javax.servlet</td>
 <td><a class="externalLink" href="http://servlet-spec.java.net">javax.servlet-api</a></td>
 <td>3.1.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>javax.xml.bind</td>
-<td><a class="externalLink" href="https://jaxb.dev.java.net/">jaxb-api</a></td>
-<td>2.2.2</td>
+<td><a class="externalLink" href="http://jaxb.java.net/">jaxb-api</a></td>
+<td>2.2.12</td>
 <td>jar</td>
-<td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
-<tr class="a">
+<td><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
+<tr class="b">
 <td>junit</td>
 <td><a class="externalLink" href="http://junit.org">junit</a></td>
 <td>4.12</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>log4j</td>
 <td><a class="externalLink" href="http://logging.apache.org/log4j/1.2/">log4j</a></td>
 <td>1.2.17</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>net.spy</td>
 <td><a class="externalLink" href="http://www.couchbase.org/code/couchbase/java">spymemcached</a></td>
-<td>2.11.6</td>
+<td>2.12.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-crypto/">commons-crypto</a></td>
 <td>1.0.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math</a></td>
 <td>2.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-client">curator-client</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-framework">curator-framework</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-recipes">curator-recipes</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-auth</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-client</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-hdfs</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-core</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-jobclient</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-minicluster</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-client">hbase-client</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-common">hbase-common</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-endpoint">hbase-endpoint</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-examples">hbase-examples</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">hbase-external-blockcache</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop-compat">hbase-hadoop-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop2-compat">hbase-hadoop2-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics">hbase-metrics</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics-api">hbase-metrics-api</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol">hbase-protocol</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol-shaded">hbase-protocol-shaded</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-rsgroup">hbase-rsgroup</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-server">hbase-server</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-shell">hbase-shell</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">hbase-thrift</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.htrace</td>
 <td><a class="externalLink" href="http://incubator.apache.org/projects/htrace.html">htrace-core</a></td>
-<td>3.1.0-incubating</td>
+<td>3.2.0-incubating</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">httpclient</a></td>
-<td>4.5.2</td>
+<td>4.5.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">httpcore</a></td>
-<td>4.4.4</td>
+<td>4.4.6</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-client">kerb-client</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-simplekdc">kerb-simplekdc</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.thrift</td>
 <td><a class="externalLink" href="http://thrift.apache.org">libthrift</a></td>
 <td>0.9.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.zookeeper</td>
 <td>zookeeper</td>
-<td>3.4.8</td>
+<td>3.4.9</td>
 <td>jar</td>
-<td>-</td></tr>
-<tr class="b">
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-core-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-jaxrs</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-mapper-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-xc</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jettison</td>
-<td><a class="externalLink" href="http://codehaus.org/jettison/">jettison</a></td>
-<td>1.3.3</td>
+<td><a class="externalLink" href="https://github.com/jettison-json/jettison">jettison</a></td>
+<td>1.3.8</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jsp</a></td>
 <td>9.2.19.v20160908</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.jersey.containers</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">jersey-container-servlet-core</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.jersey.media</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-media-json-jackson1/">jersey-media-json-jackson1</a></td>
 <td>2.23.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
-<td>9.1.9.0</td>
+<td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
-<td>1.7.7</td>
+<td>1.7.24</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr></table></div>
 <div class="section">
@@ -712,7 +706,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr></table></div></div>
       </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/index.html b/hbase-archetypes/hbase-archetype-builder/index.html
index 29097c9..0f1641f 100644
--- a/hbase-archetypes/hbase-archetype-builder/index.html
+++ b/hbase-archetypes/hbase-archetype-builder/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/integration.html b/hbase-archetypes/hbase-archetype-builder/integration.html
index dd4090d..c802ba4 100644
--- a/hbase-archetypes/hbase-archetype-builder/integration.html
+++ b/hbase-archetypes/hbase-archetype-builder/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/issue-tracking.html b/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
index ecf4279..914435f 100644
--- a/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
+++ b/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/license.html b/hbase-archetypes/hbase-archetype-builder/license.html
index 6e6a336..383c399 100644
--- a/hbase-archetypes/hbase-archetype-builder/license.html
+++ b/hbase-archetypes/hbase-archetype-builder/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/mail-lists.html b/hbase-archetypes/hbase-archetype-builder/mail-lists.html
index 2c31816..679ef35 100644
--- a/hbase-archetypes/hbase-archetype-builder/mail-lists.html
+++ b/hbase-archetypes/hbase-archetype-builder/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/plugin-management.html b/hbase-archetypes/hbase-archetype-builder/plugin-management.html
index 286f231..f36ed13 100644
--- a/hbase-archetypes/hbase-archetype-builder/plugin-management.html
+++ b/hbase-archetypes/hbase-archetype-builder/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/plugins.html b/hbase-archetypes/hbase-archetype-builder/plugins.html
index 5ccd8f3..8993e31 100644
--- a/hbase-archetypes/hbase-archetype-builder/plugins.html
+++ b/hbase-archetypes/hbase-archetype-builder/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/project-info.html b/hbase-archetypes/hbase-archetype-builder/project-info.html
index 8d6e7db..eb95b2c 100644
--- a/hbase-archetypes/hbase-archetype-builder/project-info.html
+++ b/hbase-archetypes/hbase-archetype-builder/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/project-summary.html b/hbase-archetypes/hbase-archetype-builder/project-summary.html
index c19f666..39e2aa1 100644
--- a/hbase-archetypes/hbase-archetype-builder/project-summary.html
+++ b/hbase-archetypes/hbase-archetype-builder/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/source-repository.html b/hbase-archetypes/hbase-archetype-builder/source-repository.html
index b802fad..0108a3c 100644
--- a/hbase-archetypes/hbase-archetype-builder/source-repository.html
+++ b/hbase-archetypes/hbase-archetype-builder/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-archetype-builder/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-archetype-builder/team-list.html b/hbase-archetypes/hbase-archetype-builder/team-list.html
index dfdfa5a..2e156ff 100644
--- a/hbase-archetypes/hbase-archetype-builder/team-list.html
+++ b/hbase-archetypes/hbase-archetype-builder/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetype builder">Apache HBase - Archetype builder</a>


[44/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html b/devapidocs/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html
index 8e861d5..14d6f49 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html
@@ -196,30 +196,34 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#pool">pool</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#regionReplication">regionReplication</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#replicaSwitched">replicaSwitched</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#retries">retries</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#scan">scan</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#scannerTimeout">scannerTimeout</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#someRPCcancelled">someRPCcancelled</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#tableName">tableName</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#timeBeforeReplicas">timeBeforeReplicas</a></span></code>&nbsp;</td>
 </tr>
@@ -267,13 +271,11 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 </tr>
 <tr id="i0" class="altColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForCurrentReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-">addCallsForCurrentReplica</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
-                         <a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;rl)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForCurrentReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-">addCallsForCurrentReplica</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs)</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForOtherReplicas-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-int-int-">addCallsForOtherReplicas</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
-                        <a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;rl,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForOtherReplicas-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-int-int-">addCallsForOtherReplicas</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
                         int&nbsp;min,
                         int&nbsp;max)</code>&nbsp;</td>
 </tr>
@@ -517,12 +519,21 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <a name="someRPCcancelled">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>someRPCcancelled</h4>
 <pre>private&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.74">someRPCcancelled</a></pre>
 </li>
 </ul>
+<a name="regionReplication">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>regionReplication</h4>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.75">regionReplication</a></pre>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -537,7 +548,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ScannerCallableWithReplicas</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.76">ScannerCallableWithReplicas</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.77">ScannerCallableWithReplicas</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                    <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>&nbsp;cConnection,
                                    <a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&nbsp;baseCallable,
                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool,
@@ -564,7 +575,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>setClose</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.95">setClose</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.96">setClose</a>()</pre>
 </li>
 </ul>
 <a name="setRenew-boolean-">
@@ -573,7 +584,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>setRenew</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.99">setRenew</a>(boolean&nbsp;val)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.100">setRenew</a>(boolean&nbsp;val)</pre>
 </li>
 </ul>
 <a name="setCaching-int-">
@@ -582,7 +593,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>setCaching</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.103">setCaching</a>(int&nbsp;caching)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.104">setCaching</a>(int&nbsp;caching)</pre>
 </li>
 </ul>
 <a name="getCaching--">
@@ -591,7 +602,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>getCaching</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.107">getCaching</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.108">getCaching</a>()</pre>
 </li>
 </ul>
 <a name="getHRegionInfo--">
@@ -600,7 +611,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>getHRegionInfo</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.111">getHRegionInfo</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.112">getHRegionInfo</a>()</pre>
 </li>
 </ul>
 <a name="moreResultsInRegion--">
@@ -609,7 +620,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>moreResultsInRegion</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client">ScannerCallable.MoreResults</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.115">moreResultsInRegion</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client">ScannerCallable.MoreResults</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.116">moreResultsInRegion</a>()</pre>
 </li>
 </ul>
 <a name="moreResultsForScan--">
@@ -618,7 +629,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>moreResultsForScan</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client">ScannerCallable.MoreResults</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.119">moreResultsForScan</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client">ScannerCallable.MoreResults</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.120">moreResultsForScan</a>()</pre>
 </li>
 </ul>
 <a name="call-int-">
@@ -627,7 +638,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>call</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.124">call</a>(int&nbsp;timeout)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.125">call</a>(int&nbsp;timeout)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallable.html#call-int-">RetryingCallable</a></code></span></div>
 <div class="block">Computes a result, or throws an exception if unable to do so.</div>
@@ -649,7 +660,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCurrentlyServingReplica</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.249">updateCurrentlyServingReplica</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&nbsp;scanner,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.256">updateCurrentlyServingReplica</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&nbsp;scanner,
                                            <a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[]&nbsp;result,
                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a>&nbsp;done,
                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;pool)</pre>
@@ -661,7 +672,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>switchedToADifferentReplica</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.291">switchedToADifferentReplica</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.298">switchedToADifferentReplica</a>()</pre>
 <div class="block">When a scanner switches in the middle of scanning (the 'next' call fails
  for example), the upper layer <a href="../../../../../org/apache/hadoop/hbase/client/ClientScanner.html" title="class in org.apache.hadoop.hbase.client"><code>ClientScanner</code></a> needs to know</div>
 </li>
@@ -672,7 +683,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>isHeartbeatMessage</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.301">isHeartbeatMessage</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.308">isHeartbeatMessage</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true when the most recent RPC response indicated that the response was a heartbeat
@@ -688,27 +699,25 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>getCursor</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Cursor.html" title="class in org.apache.hadoop.hbase.client">Cursor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.305">getCursor</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Cursor.html" title="class in org.apache.hadoop.hbase.client">Cursor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.312">getCursor</a>()</pre>
 </li>
 </ul>
-<a name="addCallsForCurrentReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-">
+<a name="addCallsForCurrentReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>addCallsForCurrentReplica</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.309">addCallsForCurrentReplica</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
-                                       <a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;rl)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.316">addCallsForCurrentReplica</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs)</pre>
 </li>
 </ul>
-<a name="addCallsForOtherReplicas-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-int-int-">
+<a name="addCallsForOtherReplicas-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-int-int-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>addCallsForOtherReplicas</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.316">addCallsForOtherReplicas</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
-                                      <a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;rl,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.323">addCallsForOtherReplicas</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
                                       int&nbsp;min,
                                       int&nbsp;max)</pre>
 </li>
@@ -719,7 +728,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>setStartRowForReplicaCallable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.336">setStartRowForReplicaCallable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&nbsp;callable)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.342">setStartRowForReplicaCallable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&nbsp;callable)</pre>
 <div class="block">Set the start row for the replica callable based on the state of the last result received.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -733,7 +742,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>isAnyRPCcancelled</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.351">isAnyRPCcancelled</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.357">isAnyRPCcancelled</a>()</pre>
 </li>
 </ul>
 <a name="prepare-boolean-">
@@ -742,7 +751,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>prepare</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.428">prepare</a>(boolean&nbsp;reload)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.434">prepare</a>(boolean&nbsp;reload)
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallable.html#prepare-boolean-">RetryingCallable</a></code></span></div>
 <div class="block">Prepare by setting up any connections to servers, etc., ahead of call invocation.
@@ -763,7 +772,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>throwable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.432">throwable</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.438">throwable</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t,
                       boolean&nbsp;retrying)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallable.html#throwable-java.lang.Throwable-boolean-">RetryingCallable</a></code></span></div>
 <div class="block">Called when call throws an exception and we are going to retry; take action to
@@ -785,7 +794,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>getExceptionMessageAdditionalDetail</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.437">getExceptionMessageAdditionalDetail</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.443">getExceptionMessageAdditionalDetail</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallable.html#getExceptionMessageAdditionalDetail--">getExceptionMessageAdditionalDetail</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallable.html" title="interface in org.apache.hadoop.hbase.client">RetryingCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[]&gt;</code></dd>
@@ -802,7 +811,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockListLast">
 <li class="blockList">
 <h4>sleep</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.442">sleep</a>(long&nbsp;pause,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.448">sleep</a>(long&nbsp;pause,
                   int&nbsp;tries)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/client/class-use/ResultBoundedCompletionService.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/ResultBoundedCompletionService.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/ResultBoundedCompletionService.html
index c19ad1b..6771a56 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/ResultBoundedCompletionService.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/ResultBoundedCompletionService.html
@@ -106,13 +106,11 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForCurrentReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-">addCallsForCurrentReplica</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
-                         <a href="../../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;rl)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForCurrentReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-">addCallsForCurrentReplica</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForOtherReplicas-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-int-int-">addCallsForOtherReplicas</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
-                        <a href="../../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;rl,
+<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForOtherReplicas-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-int-int-">addCallsForOtherReplicas</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
                         int&nbsp;min,
                         int&nbsp;max)</code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/client/class-use/Scan.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/Scan.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/Scan.html
index c8bb442..44be906 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/Scan.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/Scan.html
@@ -2178,12 +2178,13 @@ service.</div>
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#StoreScanner-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-boolean-">StoreScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#StoreScanner-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-boolean-org.apache.hadoop.hbase.regionserver.ScanType-">StoreScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
             <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
             <a href="../../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&nbsp;columns,
             long&nbsp;readPt,
-            boolean&nbsp;cacheBlocks)</code>
+            boolean&nbsp;cacheBlocks,
+            <a href="../../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver">ScanType</a>&nbsp;scanType)</code>
 <div class="block">An internal constructor.</div>
 </td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/client/class-use/ScannerCallable.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/class-use/ScannerCallable.html b/devapidocs/org/apache/hadoop/hbase/client/class-use/ScannerCallable.html
index 7802000..7e45cd9 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/class-use/ScannerCallable.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/class-use/ScannerCallable.html
@@ -213,13 +213,11 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForCurrentReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-">addCallsForCurrentReplica</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
-                         <a href="../../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;rl)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForCurrentReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-">addCallsForCurrentReplica</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForOtherReplicas-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-int-int-">addCallsForOtherReplicas</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
-                        <a href="../../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;rl,
+<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForOtherReplicas-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-int-int-">addCallsForOtherReplicas</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
                         int&nbsp;min,
                         int&nbsp;max)</code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/client/example/HttpProxyExample.RequestHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/example/HttpProxyExample.RequestHandler.html b/devapidocs/org/apache/hadoop/hbase/client/example/HttpProxyExample.RequestHandler.html
index a49f472..190dfee 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/example/HttpProxyExample.RequestHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/example/HttpProxyExample.RequestHandler.html
@@ -266,7 +266,7 @@ extends io.netty.channel.SimpleChannelInboundHandler&lt;io.netty.handler.codec.h
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index 1bbb5f4..0910081 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -528,25 +528,25 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/HBaseAdmin.ReplicationState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">HBaseAdmin.ReplicationState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index 4dce5c8..a6f18a5 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -175,14 +175,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.AckHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.AckHandler.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.AckHandler.html
index e29c3bc..d36a1bb 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.AckHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.AckHandler.html
@@ -243,7 +243,7 @@ extends io.netty.channel.SimpleChannelInboundHandler&lt;org.apache.hadoop.hdfs.p
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html
index e590a8b..95f0a4c 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.DecryptHandler.html
@@ -230,7 +230,7 @@ extends io.netty.channel.SimpleChannelInboundHandler&lt;io.netty.buffer.ByteBuf&
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html
index 5db8845..37277c3 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.EncryptHandler.html
@@ -223,7 +223,7 @@ extends io.netty.handler.codec.MessageToByteEncoder&lt;io.netty.buffer.ByteBuf&g
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.handler.codec.MessageToByteEncoder</h3>
-<code>acceptOutboundMessage, write</code></li>
+<code>acceptOutboundMessage, isPreferDirect, write</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.io.netty.channel.ChannelOutboundHandlerAdapter">
@@ -237,7 +237,7 @@ extends io.netty.handler.codec.MessageToByteEncoder&lt;io.netty.buffer.ByteBuf&g
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>exceptionCaught, handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, exceptionCaught, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html
index d66afdd..f361006 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslNegotiateHandler.html
@@ -321,7 +321,7 @@ extends io.netty.channel.ChannelDuplexHandler</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html
index 8ccca95..628e2aa 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslUnwrapHandler.html
@@ -232,7 +232,7 @@ extends io.netty.channel.SimpleChannelInboundHandler&lt;io.netty.buffer.ByteBuf&
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html
index e16016d..9495ef6 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.SaslWrapHandler.html
@@ -234,7 +234,7 @@ extends io.netty.channel.ChannelOutboundHandlerAdapter</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>exceptionCaught, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, exceptionCaught, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.SimpleReporter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.SimpleReporter.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.SimpleReporter.html
index bbe261f..94f5454 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.SimpleReporter.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/HFilePrettyPrinter.SimpleReporter.html
@@ -241,7 +241,7 @@ extends com.codahale.metrics.ScheduledReporter</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;com.codahale.metrics.ScheduledReporter</h3>
-<code>close, convertDuration, convertRate, getDurationUnit, getRateUnit, report, start, stop</code></li>
+<code>close, convertDuration, convertRate, getDisabledMetricAttributes, getDurationUnit, getRateUnit, isShutdownExecutorOnStop, report, start, start, stop</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index d09b3b4..6633b3d 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -273,11 +273,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.html b/devapidocs/org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.html
index 5f55424..7f0e2b0 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.html
@@ -252,7 +252,7 @@ extends io.netty.channel.ChannelDuplexHandler</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcDuplexHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcDuplexHandler.html b/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcDuplexHandler.html
index 7436a6d..2a1bffc 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcDuplexHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcDuplexHandler.html
@@ -285,7 +285,7 @@ extends io.netty.channel.ChannelDuplexHandler</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerPreambleHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerPreambleHandler.html b/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerPreambleHandler.html
index 98b77a1..907e868 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerPreambleHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerPreambleHandler.html
@@ -226,7 +226,7 @@ extends io.netty.channel.SimpleChannelInboundHandler&lt;io.netty.buffer.ByteBuf&
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerRequestDecoder.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerRequestDecoder.html b/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerRequestDecoder.html
index fe9545e..c9d3861 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerRequestDecoder.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerRequestDecoder.html
@@ -240,7 +240,7 @@ extends io.netty.channel.ChannelInboundHandlerAdapter</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerResponseEncoder.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerResponseEncoder.html b/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerResponseEncoder.html
index 0958e45..a3e0cb5 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerResponseEncoder.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/NettyRpcServerResponseEncoder.html
@@ -215,7 +215,7 @@ extends io.netty.channel.ChannelOutboundHandlerAdapter</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>exceptionCaught, handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, exceptionCaught, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index 6db317d..08990df 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -341,9 +341,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
index 69c816b..ee63631 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -288,9 +288,9 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/master/ClusterStatusPublisher.MulticastPublisher.ClusterStatusEncoder.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/ClusterStatusPublisher.MulticastPublisher.ClusterStatusEncoder.html b/devapidocs/org/apache/hadoop/hbase/master/ClusterStatusPublisher.MulticastPublisher.ClusterStatusEncoder.html
index 53173cc..33006b0 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/ClusterStatusPublisher.MulticastPublisher.ClusterStatusEncoder.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/ClusterStatusPublisher.MulticastPublisher.ClusterStatusEncoder.html
@@ -231,7 +231,7 @@ extends io.netty.handler.codec.MessageToMessageEncoder&lt;<a href="../../../../.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>exceptionCaught, handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, exceptionCaught, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
index e5228a2..a5fd83b 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.611">SplitTableRegionProcedure.StoreFileSplitter</a>
+<pre>private class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.627">SplitTableRegionProcedure.StoreFileSplitter</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&gt;</pre>
 <div class="block">Utility class used to do the file splitting / reference writing
@@ -220,7 +220,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>regionFs</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.612">regionFs</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.628">regionFs</a></pre>
 </li>
 </ul>
 <a name="family">
@@ -229,7 +229,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurren
 <ul class="blockList">
 <li class="blockList">
 <h4>family</h4>
-<pre>private final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.613">family</a></pre>
+<pre>private final&nbsp;byte[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.629">family</a></pre>
 </li>
 </ul>
 <a name="sf">
@@ -238,7 +238,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>sf</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.614">sf</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.630">sf</a></pre>
 </li>
 </ul>
 </li>
@@ -255,7 +255,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>StoreFileSplitter</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.622">StoreFileSplitter</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.638">StoreFileSplitter</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs,
                          byte[]&nbsp;family,
                          <a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&nbsp;sf)</pre>
 <div class="block">Constructor that takes what it needs to split</div>
@@ -281,7 +281,7 @@ implements <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurren
 <ul class="blockListLast">
 <li class="blockList">
 <h4>call</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.629">call</a>()
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html#line.645">call</a>()
                                                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>


[37/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/StoreScanner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/StoreScanner.html b/devapidocs/org/apache/hadoop/hbase/regionserver/StoreScanner.html
index b1dac9e..2f27639 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/StoreScanner.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/StoreScanner.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":10,"i5":10,"i6":9,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -443,12 +443,13 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected </code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#StoreScanner-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-boolean-">StoreScanner</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#StoreScanner-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-boolean-org.apache.hadoop.hbase.regionserver.ScanType-">StoreScanner</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
             <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
             <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&nbsp;columns,
             long&nbsp;readPt,
-            boolean&nbsp;cacheBlocks)</code>
+            boolean&nbsp;cacheBlocks,
+            <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver">ScanType</a>&nbsp;scanType)</code>
 <div class="block">An internal constructor.</div>
 </td>
 </tr>
@@ -532,77 +533,81 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 </td>
 </tr>
 <tr id="i13" class="rowColor">
+<td class="colFirst"><code>(package private) boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#isScanUsePread--">isScanUsePread</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i14" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/KeyValue.html" title="class in org.apache.hadoop.hbase">KeyValue</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next--">next</a></span>()</code>
 <div class="block">Return the next Cell in this scanner, iterating the scanner</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next-java.util.List-">next</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResult)</code>
 <div class="block">Grab the next row's worth of values.</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">next</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResult,
     <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)</code>
 <div class="block">Get the next row of values from this Store.</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#parallelSeek-java.util.List-org.apache.hadoop.hbase.Cell-">parallelSeek</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
             <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;kv)</code>
 <div class="block">Seek storefiles in parallel to optimize IO latency as much as possible</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#peek--">peek</a></span>()</code>
 <div class="block">Look at the next Cell in this scanner, but do not iterate scanner.</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#reopenAfterFlush--">reopenAfterFlush</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#reseek-org.apache.hadoop.hbase.Cell-">reseek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;kv)</code>
 <div class="block">Reseek the scanner at or after the specified KeyValue.</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#resetKVHeap-java.util.List-org.apache.hadoop.hbase.CellComparator-">resetKVHeap</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
            <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="class in org.apache.hadoop.hbase">CellComparator</a>&nbsp;comparator)</code>&nbsp;</td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#resetQueryMatcher-org.apache.hadoop.hbase.Cell-">resetQueryMatcher</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;lastTopKey)</code>&nbsp;</td>
 </tr>
-<tr id="i22" class="altColor">
+<tr id="i23" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seek-org.apache.hadoop.hbase.Cell-">seek</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key)</code>
 <div class="block">Seek the scanner at or after the specified KeyValue.</div>
 </td>
 </tr>
-<tr id="i23" class="rowColor">
+<tr id="i24" class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekAsDirection-org.apache.hadoop.hbase.Cell-">seekAsDirection</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;kv)</code>
 <div class="block">Do a reseek in a normal StoreScanner(scan forward)</div>
 </td>
 </tr>
-<tr id="i24" class="altColor">
+<tr id="i25" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekOrSkipToNextColumn-org.apache.hadoop.hbase.Cell-">seekOrSkipToNextColumn</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
-<tr id="i25" class="rowColor">
+<tr id="i26" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekOrSkipToNextRow-org.apache.hadoop.hbase.Cell-">seekOrSkipToNextRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>&nbsp;</td>
 </tr>
-<tr id="i26" class="altColor">
+<tr id="i27" class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekScanners-java.util.List-org.apache.hadoop.hbase.Cell-boolean-boolean-">seekScanners</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
             <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;seekKey,
@@ -611,40 +616,40 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <div class="block">Seek the specified scanners with the given key</div>
 </td>
 </tr>
-<tr id="i27" class="rowColor">
+<tr id="i28" class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekToNextRow-org.apache.hadoop.hbase.Cell-">seekToNextRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)</code>&nbsp;</td>
 </tr>
-<tr id="i28" class="altColor">
+<tr id="i29" class="rowColor">
 <td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#selectScannersFrom-java.util.List-">selectScannersFrom</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;allScanners)</code>
 <div class="block">Filters the given list of scanners using Bloom filter, time range, and
  TTL.</div>
 </td>
 </tr>
-<tr id="i29" class="rowColor">
+<tr id="i30" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#shipped--">shipped</a></span>()</code>
 <div class="block">Called after a batch of rows scanned and set to be returned to client.</div>
 </td>
 </tr>
-<tr id="i30" class="altColor">
+<tr id="i31" class="rowColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySkipToNextColumn-org.apache.hadoop.hbase.Cell-">trySkipToNextColumn</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>
 <div class="block">See <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySkipToNextRow-org.apache.hadoop.hbase.Cell-"><code>trySkipToNextRow(Cell)</code></a></div>
 </td>
 </tr>
-<tr id="i31" class="rowColor">
+<tr id="i32" class="altColor">
 <td class="colFirst"><code>protected boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySkipToNextRow-org.apache.hadoop.hbase.Cell-">trySkipToNextRow</a></span>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)</code>
 <div class="block">See if we should actually SEEK or rather just SKIP to the next Cell (see HBASE-13109).</div>
 </td>
 </tr>
-<tr id="i32" class="altColor">
+<tr id="i33" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySwitchToStreamRead--">trySwitchToStreamRead</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i33" class="rowColor">
+<tr id="i34" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#updateReaders-java.util.List-java.util.List-">updateReaders</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&gt;&nbsp;sfs,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;memStoreScanners)</code>
@@ -1085,7 +1090,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="StoreScanner-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-boolean-">
+<a name="StoreScanner-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-boolean-org.apache.hadoop.hbase.regionserver.ScanType-">
 <!--   -->
 </a>
 <ul class="blockList">
@@ -1096,7 +1101,8 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&nbsp;columns,
                        long&nbsp;readPt,
-                       boolean&nbsp;cacheBlocks)</pre>
+                       boolean&nbsp;cacheBlocks,
+                       <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver">ScanType</a>&nbsp;scanType)</pre>
 <div class="block">An internal constructor.</div>
 </li>
 </ul>
@@ -1106,7 +1112,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>StoreScanner</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.228">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.233">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
                     <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&nbsp;columns,
@@ -1130,7 +1136,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>StoreScanner</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.277">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.282">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
                     <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
@@ -1159,7 +1165,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>StoreScanner</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.294">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.299">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
                     <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
@@ -1190,7 +1196,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>StoreScanner</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.301">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.306">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
                      <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
                      <a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                      <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
@@ -1212,7 +1218,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>StoreScanner</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.331">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.336">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
              <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
              <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver">ScanType</a>&nbsp;scanType,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&nbsp;columns,
@@ -1230,7 +1236,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>StoreScanner</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.341">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.346">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
              <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
              <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver">ScanType</a>&nbsp;scanType,
              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&nbsp;columns,
@@ -1249,7 +1255,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockListLast">
 <li class="blockList">
 <h4>StoreScanner</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.350">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.355">StoreScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver">ScanType</a>&nbsp;scanType,
                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&nbsp;columns,
@@ -1277,7 +1283,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>addCurrentScanners</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.215">addCurrentScanners</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.220">addCurrentScanners</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners)</pre>
 </li>
 </ul>
 <a name="getScannersNoCompaction--">
@@ -1286,7 +1292,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>getScannersNoCompaction</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.382">getScannersNoCompaction</a>()
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.387">getScannersNoCompaction</a>()
                                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Get a filtered list of scanners. Assumes we are not in a compaction.</div>
 <dl>
@@ -1297,13 +1303,22 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 </dl>
 </li>
 </ul>
+<a name="isScanUsePread--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isScanUsePread</h4>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.394">isScanUsePread</a>()</pre>
+</li>
+</ul>
 <a name="seekScanners-java.util.List-org.apache.hadoop.hbase.Cell-boolean-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>seekScanners</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.396">seekScanners</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.405">seekScanners</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
                             <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;seekKey,
                             boolean&nbsp;isLazy,
                             boolean&nbsp;isParallelSeek)
@@ -1326,7 +1341,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>resetKVHeap</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.427">resetKVHeap</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.436">resetKVHeap</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
                            <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="class in org.apache.hadoop.hbase">CellComparator</a>&nbsp;comparator)
                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -1341,7 +1356,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>selectScannersFrom</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.440">selectScannersFrom</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;allScanners)</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.449">selectScannersFrom</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;allScanners)</pre>
 <div class="block">Filters the given list of scanners using Bloom filter, time range, and
  TTL.
  <p>
@@ -1354,7 +1369,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>peek</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.476">peek</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.485">peek</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#peek--">KeyValueScanner</a></code></span></div>
 <div class="block">Look at the next Cell in this scanner, but do not iterate scanner.
  NOTICE: The returned cell has not been passed into ScanQueryMatcher. So it may not be what the
@@ -1373,7 +1388,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>next</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/KeyValue.html" title="class in org.apache.hadoop.hbase">KeyValue</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.481">next</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/KeyValue.html" title="class in org.apache.hadoop.hbase">KeyValue</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.490">next</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#next--">KeyValueScanner</a></code></span></div>
 <div class="block">Return the next Cell in this scanner, iterating the scanner</div>
 <dl>
@@ -1390,7 +1405,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.487">close</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.496">close</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#close--">KeyValueScanner</a></code></span></div>
 <div class="block">Close the KeyValue scanner.</div>
 <dl>
@@ -1411,7 +1426,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.491">close</a>(boolean&nbsp;withDelayedScannersClose)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.500">close</a>(boolean&nbsp;withDelayedScannersClose)</pre>
 </li>
 </ul>
 <a name="seek-org.apache.hadoop.hbase.Cell-">
@@ -1420,7 +1435,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>seek</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.520">seek</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.529">seek</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;key)
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#seek-org.apache.hadoop.hbase.Cell-">KeyValueScanner</a></code></span></div>
 <div class="block">Seek the scanner at or after the specified KeyValue.</div>
@@ -1442,7 +1457,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>next</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.528">next</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResult)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.537">next</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResult)
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-">InternalScanner</a></code></span></div>
 <div class="block">Grab the next row's worth of values.</div>
@@ -1464,7 +1479,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>next</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.539">next</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResult,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.548">next</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;outResult,
                     <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext)
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Get the next row of values from this Store.</div>
@@ -1487,7 +1502,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>seekOrSkipToNextRow</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.719">seekOrSkipToNextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.728">seekOrSkipToNextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1501,7 +1516,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>seekOrSkipToNextColumn</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.730">seekOrSkipToNextColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.739">seekOrSkipToNextColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)
                              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1515,7 +1530,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>trySkipToNextRow</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.786">trySkipToNextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.795">trySkipToNextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)
                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">See if we should actually SEEK or rather just SKIP to the next Cell (see HBASE-13109).
  ScanQueryMatcher may issue SEEK hints, such as seek to next column, next row,
@@ -1578,7 +1593,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>trySkipToNextColumn</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.807">trySkipToNextColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.816">trySkipToNextColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">See <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySkipToNextRow-org.apache.hadoop.hbase.Cell-"><code>trySkipToNextRow(Cell)</code></a></div>
 <dl>
@@ -1597,7 +1612,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadPoint</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.823">getReadPoint</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.832">getReadPoint</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ChangedReadersObserver.html#getReadPoint--">getReadPoint</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ChangedReadersObserver.html" title="interface in org.apache.hadoop.hbase.regionserver">ChangedReadersObserver</a></code></dd>
@@ -1612,7 +1627,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>clearAndClose</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.827">clearAndClose</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners)</pre>
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.836">clearAndClose</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners)</pre>
 </li>
 </ul>
 <a name="updateReaders-java.util.List-java.util.List-">
@@ -1621,7 +1636,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>updateReaders</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.836">updateReaders</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&gt;&nbsp;sfs,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.845">updateReaders</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&gt;&nbsp;sfs,
                           <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;memStoreScanners)
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ChangedReadersObserver.html#updateReaders-java.util.List-java.util.List-">ChangedReadersObserver</a></code></span></div>
@@ -1643,7 +1658,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>reopenAfterFlush</h4>
-<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.858">reopenAfterFlush</a>()
+<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.867">reopenAfterFlush</a>()
                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1659,7 +1674,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>resetQueryMatcher</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.904">resetQueryMatcher</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;lastTopKey)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.913">resetQueryMatcher</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;lastTopKey)</pre>
 </li>
 </ul>
 <a name="checkScanOrder-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.CellComparator-">
@@ -1668,7 +1683,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>checkScanOrder</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.926">checkScanOrder</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;prevKV,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.935">checkScanOrder</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;prevKV,
                               <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;kv,
                               <a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="class in org.apache.hadoop.hbase">CellComparator</a>&nbsp;comparator)
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1689,7 +1704,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>seekToNextRow</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.934">seekToNextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.943">seekToNextRow</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;c)
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1703,7 +1718,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>seekAsDirection</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.944">seekAsDirection</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;kv)
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.953">seekAsDirection</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;kv)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Do a reseek in a normal StoreScanner(scan forward)</div>
 <dl>
@@ -1722,7 +1737,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>reseek</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.950">reseek</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;kv)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.959">reseek</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;kv)
                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#reseek-org.apache.hadoop.hbase.Cell-">KeyValueScanner</a></code></span></div>
 <div class="block">Reseek the scanner at or after the specified KeyValue.
@@ -1747,7 +1762,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>trySwitchToStreamRead</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.960">trySwitchToStreamRead</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.969">trySwitchToStreamRead</a>()</pre>
 </li>
 </ul>
 <a name="checkFlushed--">
@@ -1756,7 +1771,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>checkFlushed</h4>
-<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1018">checkFlushed</a>()</pre>
+<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1027">checkFlushed</a>()</pre>
 </li>
 </ul>
 <a name="getScannerOrder--">
@@ -1765,7 +1780,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>getScannerOrder</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1041">getScannerOrder</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1050">getScannerOrder</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#getScannerOrder--">KeyValueScanner</a></code></span></div>
 <div class="block">Get the order of this KeyValueScanner. This is only relevant for StoreFileScanners and
  MemStoreScanners (other scanners simply return 0). This is required for comparing multiple
@@ -1786,7 +1801,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>parallelSeek</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1051">parallelSeek</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1060">parallelSeek</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;scanners,
                           <a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;kv)
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Seek storefiles in parallel to optimize IO latency as much as possible</div>
@@ -1805,7 +1820,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>getAllScannersForTesting</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1087">getAllScannersForTesting</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1096">getAllScannersForTesting</a>()</pre>
 <div class="block">Used in testing.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1819,7 +1834,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>enableLazySeekGlobally</h4>
-<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1097">enableLazySeekGlobally</a>(boolean&nbsp;enable)</pre>
+<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1106">enableLazySeekGlobally</a>(boolean&nbsp;enable)</pre>
 </li>
 </ul>
 <a name="getEstimatedNumberOfKvsScanned--">
@@ -1828,7 +1843,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>getEstimatedNumberOfKvsScanned</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1104">getEstimatedNumberOfKvsScanned</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1113">getEstimatedNumberOfKvsScanned</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>The estimated number of KVs seen by this scanner (includes some skipped KVs).</dd>
@@ -1841,7 +1856,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockList">
 <li class="blockList">
 <h4>getNextIndexedKey</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1109">getNextIndexedKey</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1118">getNextIndexedKey</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html#getNextIndexedKey--">getNextIndexedKey</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a></code></dd>
@@ -1860,7 +1875,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <ul class="blockListLast">
 <li class="blockList">
 <h4>shipped</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1114">shipped</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html#line.1123">shipped</a>()
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html#shipped--">Shipper</a></code></span></div>
 <div class="block">Called after a batch of rows scanned and set to be returned to client. Any in between cleanup

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/ScanInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/ScanInfo.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/ScanInfo.html
index 20e0eb7..f6040b7 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/ScanInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/ScanInfo.html
@@ -273,12 +273,13 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#StoreScanner-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-boolean-">StoreScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#StoreScanner-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-boolean-org.apache.hadoop.hbase.regionserver.ScanType-">StoreScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
             <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
             <a href="../../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&nbsp;columns,
             long&nbsp;readPt,
-            boolean&nbsp;cacheBlocks)</code>
+            boolean&nbsp;cacheBlocks,
+            <a href="../../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver">ScanType</a>&nbsp;scanType)</code>
 <div class="block">An internal constructor.</div>
 </td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/ScanType.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/ScanType.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/ScanType.html
index 1716884..788851b 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/ScanType.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/ScanType.html
@@ -363,6 +363,17 @@ the order they are declared.</div>
             byte[]&nbsp;dropDeletesFromRow,
             byte[]&nbsp;dropDeletesToRow)</code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#StoreScanner-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-boolean-org.apache.hadoop.hbase.regionserver.ScanType-">StoreScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
+            <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+            <a href="../../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&nbsp;columns,
+            long&nbsp;readPt,
+            boolean&nbsp;cacheBlocks,
+            <a href="../../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver">ScanType</a>&nbsp;scanType)</code>
+<div class="block">An internal constructor.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/Store.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/Store.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/Store.html
index f35be72..79eba86 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/Store.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/Store.html
@@ -1084,12 +1084,13 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#StoreScanner-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-boolean-">StoreScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#StoreScanner-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-boolean-org.apache.hadoop.hbase.regionserver.ScanType-">StoreScanner</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
             <a href="../../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
             <a href="../../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo,
             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableSet.html?is-external=true" title="class or interface in java.util">NavigableSet</a>&lt;byte[]&gt;&nbsp;columns,
             long&nbsp;readPt,
-            boolean&nbsp;cacheBlocks)</code>
+            boolean&nbsp;cacheBlocks,
+            <a href="../../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver">ScanType</a>&nbsp;scanType)</code>
 <div class="block">An internal constructor.</div>
 </td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 295212a..bd1a64a 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -688,20 +688,20 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactor.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactor.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ImmutableSegment.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.StoreScannerCompactionRace.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">StoreScanner.StoreScannerCompactionRace</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionOpeningState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionOpeningState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ImmutableSegment.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ImmutableSegment.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.StoreScannerCompactionRace.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">StoreScanner.StoreScannerCompactionRace</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
index bab0558..6f94c94 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -125,10 +125,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteCompare.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteCompare</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteCompare.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteCompare</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
index 6a37356..6446202 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -210,8 +210,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipperThread.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipperThread.WorkerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/security/CryptoAESUnwrapHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/CryptoAESUnwrapHandler.html b/devapidocs/org/apache/hadoop/hbase/security/CryptoAESUnwrapHandler.html
index e3ebace..15287c7 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/CryptoAESUnwrapHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/CryptoAESUnwrapHandler.html
@@ -227,7 +227,7 @@ extends io.netty.channel.SimpleChannelInboundHandler&lt;io.netty.buffer.ByteBuf&
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/security/CryptoAESWrapHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/CryptoAESWrapHandler.html b/devapidocs/org/apache/hadoop/hbase/security/CryptoAESWrapHandler.html
index c13c730..e92e10f 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/CryptoAESWrapHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/CryptoAESWrapHandler.html
@@ -232,7 +232,7 @@ extends io.netty.channel.ChannelOutboundHandlerAdapter</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>exceptionCaught, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, exceptionCaught, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/security/NettyHBaseRpcConnectionHeaderHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/NettyHBaseRpcConnectionHeaderHandler.html b/devapidocs/org/apache/hadoop/hbase/security/NettyHBaseRpcConnectionHeaderHandler.html
index 1efad6f..abd4551 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/NettyHBaseRpcConnectionHeaderHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/NettyHBaseRpcConnectionHeaderHandler.html
@@ -252,7 +252,7 @@ extends io.netty.channel.SimpleChannelInboundHandler&lt;io.netty.buffer.ByteBuf&
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/security/NettyHBaseSaslRpcClientHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/NettyHBaseSaslRpcClientHandler.html b/devapidocs/org/apache/hadoop/hbase/security/NettyHBaseSaslRpcClientHandler.html
index 4445841..3b565ed 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/NettyHBaseSaslRpcClientHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/NettyHBaseSaslRpcClientHandler.html
@@ -282,7 +282,7 @@ extends io.netty.channel.SimpleChannelInboundHandler&lt;io.netty.buffer.ByteBuf&
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">


[41/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
index 39ed064..9f68ab4 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.html
@@ -3127,7 +3127,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>closeLock</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1471">closeLock</a></pre>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1480">closeLock</a></pre>
 </li>
 </ul>
 <a name="MEMSTORE_PERIODIC_FLUSH_INTERVAL">
@@ -3136,7 +3136,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>MEMSTORE_PERIODIC_FLUSH_INTERVAL</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1474">MEMSTORE_PERIODIC_FLUSH_INTERVAL</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1483">MEMSTORE_PERIODIC_FLUSH_INTERVAL</a></pre>
 <div class="block">Conf key for the periodic flush interval</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -3150,7 +3150,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_CACHE_FLUSH_INTERVAL</h4>
-<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1477">DEFAULT_CACHE_FLUSH_INTERVAL</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1486">DEFAULT_CACHE_FLUSH_INTERVAL</a></pre>
 <div class="block">Default interval for the memstore flush</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -3164,7 +3164,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>SYSTEM_CACHE_FLUSH_INTERVAL</h4>
-<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1479">SYSTEM_CACHE_FLUSH_INTERVAL</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1488">SYSTEM_CACHE_FLUSH_INTERVAL</a></pre>
 <div class="block">Default interval for System tables memstore flush</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -3178,7 +3178,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>MEMSTORE_FLUSH_PER_CHANGES</h4>
-<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1482">MEMSTORE_FLUSH_PER_CHANGES</a></pre>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1491">MEMSTORE_FLUSH_PER_CHANGES</a></pre>
 <div class="block">Conf key to force a flush if there are already enough changes for one region in memstore</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -3192,7 +3192,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_FLUSH_PER_CHANGES</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1484">DEFAULT_FLUSH_PER_CHANGES</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1493">DEFAULT_FLUSH_PER_CHANGES</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegion.DEFAULT_FLUSH_PER_CHANGES">Constant Field Values</a></dd>
@@ -3205,7 +3205,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>MAX_FLUSH_PER_CHANGES</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1489">MAX_FLUSH_PER_CHANGES</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1498">MAX_FLUSH_PER_CHANGES</a></pre>
 <div class="block">The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes
  overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region</div>
 <dl>
@@ -3220,7 +3220,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>FOR_UNIT_TESTS_ONLY</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2856">FOR_UNIT_TESTS_ONLY</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2865">FOR_UNIT_TESTS_ONLY</a></pre>
 <div class="block">Row needed by below method.</div>
 </li>
 </ul>
@@ -3230,7 +3230,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>FIXED_OVERHEAD</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7666">FIXED_OVERHEAD</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7675">FIXED_OVERHEAD</a></pre>
 </li>
 </ul>
 <a name="DEEP_OVERHEAD">
@@ -3239,7 +3239,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>DEEP_OVERHEAD</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7683">DEEP_OVERHEAD</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.7692">DEEP_OVERHEAD</a></pre>
 </li>
 </ul>
 <a name="MOCKED_LIST">
@@ -3248,7 +3248,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MOCKED_LIST</h4>
-<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8081">MOCKED_LIST</a></pre>
+<pre>private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.8090">MOCKED_LIST</a></pre>
 <div class="block">A mocked list implementation - discards all updates.</div>
 </li>
 </ul>
@@ -3954,7 +3954,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>isMergeable</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1401">isMergeable</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1410">isMergeable</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isMergeable--">isMergeable</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -3969,7 +3969,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>areWritesEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1416">areWritesEnabled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1425">areWritesEnabled</a>()</pre>
 </li>
 </ul>
 <a name="getMVCC--">
@@ -3978,7 +3978,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getMVCC</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1423">getMVCC</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.html" title="class in org.apache.hadoop.hbase.regionserver">MultiVersionConcurrencyControl</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1432">getMVCC</a>()</pre>
 </li>
 </ul>
 <a name="getMaxFlushedSeqId--">
@@ -3987,7 +3987,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaxFlushedSeqId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1428">getMaxFlushedSeqId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1437">getMaxFlushedSeqId</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getMaxFlushedSeqId--">getMaxFlushedSeqId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -4003,7 +4003,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadPoint</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1433">getReadPoint</a>(<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;isolationLevel)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1442">getReadPoint</a>(<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;isolationLevel)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getReadPoint-org.apache.hadoop.hbase.client.IsolationLevel-">getReadPoint</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -4018,7 +4018,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getReadpoint</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1442">getReadpoint</a>(<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;isolationLevel)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1451">getReadpoint</a>(<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client">IsolationLevel</a>&nbsp;isolationLevel)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getReadpoint-org.apache.hadoop.hbase.client.IsolationLevel-">getReadpoint</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -4033,7 +4033,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>isLoadingCfsOnDemandDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1447">isLoadingCfsOnDemandDefault</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1456">isLoadingCfsOnDemandDefault</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#isLoadingCfsOnDemandDefault--">isLoadingCfsOnDemandDefault</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -4048,7 +4048,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1467">close</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1476">close</a>()
                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Close down this HRegion.  Flush the cache, shut down each HStore, don't
  service any more calls.
@@ -4074,7 +4074,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1508">close</a>(boolean&nbsp;abort)
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1517">close</a>(boolean&nbsp;abort)
                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Close down this HRegion.  Flush the cache unless abort parameter is true,
  Shut down each HStore, don't service any more calls.
@@ -4102,7 +4102,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>setClosing</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1529">setClosing</a>(boolean&nbsp;closing)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1538">setClosing</a>(boolean&nbsp;closing)</pre>
 <div class="block">Exposed for some very specific unit tests.</div>
 </li>
 </ul>
@@ -4112,7 +4112,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>setTimeoutForWriteLock</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1539">setTimeoutForWriteLock</a>(long&nbsp;timeoutForWriteLock)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1548">setTimeoutForWriteLock</a>(long&nbsp;timeoutForWriteLock)</pre>
 <div class="block">The <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#doClose-boolean-org.apache.hadoop.hbase.monitoring.MonitoredTask-"><code>doClose(boolean, org.apache.hadoop.hbase.monitoring.MonitoredTask)</code></a> will block forever if someone tries proving the dead lock via the unit test.
  Instead of blocking, the <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#doClose-boolean-org.apache.hadoop.hbase.monitoring.MonitoredTask-"><code>doClose(boolean, org.apache.hadoop.hbase.monitoring.MonitoredTask)</code></a> will throw exception if you set the timeout.</div>
 <dl>
@@ -4127,7 +4127,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doClose</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1546">doClose</a>(boolean&nbsp;abort,
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1555">doClose</a>(boolean&nbsp;abort,
                                             <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -4142,7 +4142,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getMemstoreHeapSize</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1723">getMemstoreHeapSize</a>()</pre>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1732">getMemstoreHeapSize</a>()</pre>
 </li>
 </ul>
 <a name="waitForFlushesAndCompactions--">
@@ -4151,7 +4151,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForFlushesAndCompactions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1732">waitForFlushesAndCompactions</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1741">waitForFlushesAndCompactions</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#waitForFlushesAndCompactions--">Region</a></code></span></div>
 <div class="block">Wait for all current flushes and compactions of the region to complete</div>
 <dl>
@@ -4166,7 +4166,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForFlushes</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1761">waitForFlushes</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1770">waitForFlushes</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#waitForFlushes--">Region</a></code></span></div>
 <div class="block">Wait for all current flushes of the region to complete</div>
 <dl>
@@ -4181,7 +4181,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreOpenAndCloseThreadPool</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1791">getStoreOpenAndCloseThreadPool</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadNamePrefix)</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1800">getStoreOpenAndCloseThreadPool</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadNamePrefix)</pre>
 </li>
 </ul>
 <a name="getStoreFileOpenAndCloseThreadPool-java.lang.String-">
@@ -4190,7 +4190,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreFileOpenAndCloseThreadPool</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1800">getStoreFileOpenAndCloseThreadPool</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadNamePrefix)</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1809">getStoreFileOpenAndCloseThreadPool</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadNamePrefix)</pre>
 </li>
 </ul>
 <a name="getOpenAndCloseThreadPool-int-java.lang.String-">
@@ -4199,7 +4199,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getOpenAndCloseThreadPool</h4>
-<pre>static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1810">getOpenAndCloseThreadPool</a>(int&nbsp;maxThreads,
+<pre>static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html?is-external=true" title="class or interface in java.util.concurrent">ThreadPoolExecutor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1819">getOpenAndCloseThreadPool</a>(int&nbsp;maxThreads,
                                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadNamePrefix)</pre>
 </li>
 </ul>
@@ -4209,7 +4209,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>worthPreFlushing</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1826">worthPreFlushing</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1835">worthPreFlushing</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if its worth doing a flush before we put up the close flag.</dd>
@@ -4222,7 +4222,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableDesc</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1836">getTableDesc</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HTableDescriptor.html" title="class in org.apache.hadoop.hbase">HTableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1845">getTableDesc</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getTableDesc--">getTableDesc</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -4237,7 +4237,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getWAL</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1841">getWAL</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1850">getWAL</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>WAL in use for this region</dd>
@@ -4250,7 +4250,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getSplitPolicy</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">RegionSplitPolicy</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1848">getSplitPolicy</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">RegionSplitPolicy</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1857">getSplitPolicy</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>split policy for this region.</dd>
@@ -4263,7 +4263,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getBaseConf</h4>
-<pre>org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1859">getBaseConf</a>()</pre>
+<pre>org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1868">getBaseConf</a>()</pre>
 <div class="block">A split takes the config from the parent region & passes it to the daughter
  region's constructor. If 'conf' was passed, you would end up using the HTD
  of the parent region in addition to the new daughter HTD. Pass 'baseConf'
@@ -4280,7 +4280,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getFilesystem</h4>
-<pre>public&nbsp;org.apache.hadoop.fs.FileSystem&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1864">getFilesystem</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.fs.FileSystem&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1873">getFilesystem</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd><code>FileSystem</code> being used by this region</dd>
@@ -4293,7 +4293,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionFileSystem</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1869">getRegionFileSystem</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1878">getRegionFileSystem</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver"><code>HRegionFileSystem</code></a> used by this region</dd>
@@ -4306,7 +4306,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getEarliestFlushTimeForAllStores</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1874">getEarliestFlushTimeForAllStores</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1883">getEarliestFlushTimeForAllStores</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getEarliestFlushTimeForAllStores--">getEarliestFlushTimeForAllStores</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></code></dd>
@@ -4323,7 +4323,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getOldestHfileTs</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1879">getOldestHfileTs</a>(boolean&nbsp;majorCompactionOnly)
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1888">getOldestHfileTs</a>(boolean&nbsp;majorCompactionOnly)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getOldestHfileTs-boolean-">Region</a></code></span></div>
 <div class="block">This can be used to determine the last time all files of this region were major compacted.</div>
@@ -4345,7 +4345,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>setCompleteSequenceId</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1899">setCompleteSequenceId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder&nbsp;regionLoadBldr)</pre>
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1908">setCompleteSequenceId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder&nbsp;regionLoadBldr)</pre>
 </li>
 </ul>
 <a name="getLargestHStoreSize--">
@@ -4354,7 +4354,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getLargestHStoreSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1923">getLargestHStoreSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1932">getLargestHStoreSize</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>returns size of largest HStore.</dd>
@@ -4367,7 +4367,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doRegionCompactionPrep</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1938">doRegionCompactionPrep</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1947">doRegionCompactionPrep</a>()
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -4381,7 +4381,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>triggerMajorCompaction</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1942">triggerMajorCompaction</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1951">triggerMajorCompaction</a>()
                             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#triggerMajorCompaction--">Region</a></code></span></div>
 <div class="block">Trigger major compaction on all stores in the region.
@@ -4402,7 +4402,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>compact</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1949">compact</a>(boolean&nbsp;majorCompaction)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1958">compact</a>(boolean&nbsp;majorCompaction)
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#compact-boolean-">Region</a></code></span></div>
 <div class="block">Synchronously compact all stores in the region.
@@ -4429,7 +4429,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>compactStores</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1974">compactStores</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1983">compactStores</a>()
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This is a helper function that compact all the stores synchronously
  It is used by utilities and testing</div>
@@ -4445,7 +4445,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>compactStore</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1990">compactStore</a>(byte[]&nbsp;family,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.1999">compactStore</a>(byte[]&nbsp;family,
                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a>&nbsp;throughputController)
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This is a helper function that compact the given store
@@ -4462,7 +4462,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>compact</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2014">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&nbsp;compaction,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2023">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&nbsp;compaction,
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a>&nbsp;throughputController)
                 throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4478,7 +4478,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>compact</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2019">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&nbsp;compaction,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2028">compact</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&nbsp;compaction,
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store,
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle">ThroughputController</a>&nbsp;throughputController,
                        <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)
@@ -4495,7 +4495,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>flush</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2167">flush</a>(boolean&nbsp;force)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2176">flush</a>(boolean&nbsp;force)
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#flush-boolean-">Region</a></code></span></div>
 <div class="block">Flush the cache.
@@ -4530,7 +4530,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>flushcache</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2193">flushcache</a>(boolean&nbsp;forceFlushAllStores,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2202">flushcache</a>(boolean&nbsp;forceFlushAllStores,
                                      boolean&nbsp;writeFlushRequestWalMarker)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Flush the cache.
@@ -4565,7 +4565,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFlushStore</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2272">shouldFlushStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store)</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2281">shouldFlushStore</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&nbsp;store)</pre>
 <div class="block">Should the store be flushed because it is old enough.
  <p>
  Every FlushPolicy should call this to determine whether a store is old enough to flush (except
@@ -4579,7 +4579,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldFlush</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2301">shouldFlush</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</a>&nbsp;whyFlush)</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2310">shouldFlush</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuffer.html?is-external=true" title="class or interface in java.lang">StringBuffer</a>&nbsp;whyFlush)</pre>
 <div class="block">Should the memstore be flushed now</div>
 </li>
 </ul>
@@ -4589,7 +4589,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>internalFlushcache</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2339">internalFlushcache</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2348">internalFlushcache</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Flushing all stores.</div>
 <dl>
@@ -4606,7 +4606,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>internalFlushcache</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2349">internalFlushcache</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&gt;&nbsp;storesToFlush,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2358">internalFlushcache</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&gt;&nbsp;storesToFlush,
                                               <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status,
                                               boolean&nbsp;writeFlushWalMarker)
                                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4625,7 +4625,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>internalFlushcache</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2376">internalFlushcache</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2385">internalFlushcache</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                                 long&nbsp;myseqid,
                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&gt;&nbsp;storesToFlush,
                                                 <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status,
@@ -4662,7 +4662,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>internalPrepareFlushCache</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2390">internalPrepareFlushCache</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2399">internalPrepareFlushCache</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                                                long&nbsp;myseqid,
                                                                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&gt;&nbsp;storesToFlush,
                                                                <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status,
@@ -4680,7 +4680,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>logFatLineOnFlush</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2530">logFatLineOnFlush</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&gt;&nbsp;storesToFlush,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2539">logFatLineOnFlush</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&gt;&nbsp;storesToFlush,
                                long&nbsp;sequenceId)</pre>
 <div class="block">Utility method broken out of internalPrepareFlushCache so that method is smaller.</div>
 </li>
@@ -4691,7 +4691,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doAbortFlushToWAL</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2550">doAbortFlushToWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2559">doAbortFlushToWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                long&nbsp;flushOpSeqId,
                                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&gt;&nbsp;committedFiles)</pre>
 </li>
@@ -4702,7 +4702,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doSyncOfUnflushedWALChanges</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2570">doSyncOfUnflushedWALChanges</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2579">doSyncOfUnflushedWALChanges</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                                 <a href="../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri)
                                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Sync unflushed WAL changes. See HBASE-8208 for details</div>
@@ -4718,7 +4718,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>isAllFamilies</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2586">isAllFamilies</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&gt;&nbsp;families)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2595">isAllFamilies</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&gt;&nbsp;families)</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if passed Set is all families in the region.</dd>
@@ -4731,7 +4731,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>writeFlushRequestMarkerToWAL</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2596">writeFlushRequestMarkerToWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2605">writeFlushRequestMarkerToWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                              boolean&nbsp;writeFlushWalMarker)</pre>
 <div class="block">Writes a marker to WAL indicating a flush is requested but cannot be complete due to various
  reasons. Ignores exceptions from WAL. Returns whether the write succeeded.</div>
@@ -4749,7 +4749,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>internalFlushCacheAndCommit</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2614">internalFlushCacheAndCommit</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.FlushResult.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.FlushResult</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2623">internalFlushCacheAndCommit</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal,
                                                          <a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status,
                                                          <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.PrepareFlushResult.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.PrepareFlushResult</a>&nbsp;prepareResult,
                                                          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a>&gt;&nbsp;storesToFlush)
@@ -4766,7 +4766,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getNextSequenceId</h4>
-<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2762">getNextSequenceId</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal)
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2771">getNextSequenceId</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;wal)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Method to safely get the next sequence number.</div>
 <dl>
@@ -4783,7 +4783,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2773">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2782">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan)
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getScanner-org.apache.hadoop.hbase.client.Scan-">Region</a></code></span></div>
 <div class="block">Return an iterator that scans over the HRegion, returning the indicated
@@ -4808,7 +4808,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2778">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2787">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners)
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#getScanner-org.apache.hadoop.hbase.client.Scan-java.util.List-">Region</a></code></span></div>
@@ -4837,7 +4837,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2783">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2792">getScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners,
                                  long&nbsp;nonceGroup,
                                  long&nbsp;nonce)
@@ -4854,7 +4854,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>instantiateRegionScanner</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2804">instantiateRegionScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2813">instantiateRegionScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners)
                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -4869,7 +4869,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>instantiateRegionScanner</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2810">instantiateRegionScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2819">instantiateRegionScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Scan.html" title="class in org.apache.hadoop.hbase.client">Scan</a>&nbsp;scan,
                                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;&nbsp;additionalScanners,
                                                  long&nbsp;nonceGroup,
                                                  long&nbsp;nonce)
@@ -4886,7 +4886,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2822">prepareDelete</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2831">prepareDelete</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)
                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#prepareDelete-org.apache.hadoop.hbase.client.Delete-">Region</a></code></span></div>
 <div class="block">Prepare a delete for a row mutation processor</div>
@@ -4906,7 +4906,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2840">delete</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2849">delete</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete)
             throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#delete-org.apache.hadoop.hbase.client.Delete-">Region</a></code></span></div>
 <div class="block">Deletes the specified cells/row.</div>
@@ -4924,7 +4924,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>delete</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2863">delete</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2872">delete</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/NavigableMap.html?is-external=true" title="class or interface in java.util">NavigableMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap,
             <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;durability)
      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">This is used only by unit tests. Not required to be a public API.</div>
@@ -4942,7 +4942,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareDeleteTimestamps</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2872">prepareDeleteTimestamps</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2881">prepareDeleteTimestamps</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;mutation,
                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap,
                                     byte[]&nbsp;byteNow)
                              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4963,7 +4963,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>updateDeleteLatestVersionTimeStamp</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2916">updateDeleteLatestVersionTimeStamp</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2925">updateDeleteLatestVersionTimeStamp</a>(<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&nbsp;cell,
                                         <a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
                                         int&nbsp;count,
                                         byte[]&nbsp;byteNow)
@@ -4980,7 +4980,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>put</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2933">put</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2942">put</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put)
          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#put-org.apache.hadoop.hbase.client.Put-">Region</a></code></span></div>
 <div class="block">Puts some data in the table.</div>
@@ -4998,7 +4998,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>batchMutate</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3061">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;mutations,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3070">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;mutations,
                                      long&nbsp;nonceGroup,
                                      long&nbsp;nonce)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -5025,7 +5025,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>batchMutate</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3070">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;mutations)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3079">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;mutations)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -5039,7 +5039,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>batchReplay</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3075">batchReplay</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>[]&nbsp;mutations,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3084">batchReplay</a>(<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>[]&nbsp;mutations,
                                      long&nbsp;replaySeqId)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html#batchReplay-org.apache.hadoop.hbase.wal.WALSplitter.MutationReplay:A-long-">Region</a></code></span></div>
@@ -5063,7 +5063,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>batchMutate</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3107">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;?&gt;&nbsp;batchOp)
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3116">batchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;?&gt;&nbsp;batchOp)
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Perform a batch of mutations.
  It supports only Put and Delete mutations and will ignore other types passed.</div>
@@ -5084,7 +5084,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doPreBatchMutateHook</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3135">doPreBatchMutateHook</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;?&gt;&nbsp;batchOp)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3144">doPreBatchMutateHook</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;?&gt;&nbsp;batchOp)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -5098,7 +5098,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>doMiniBatchMutate</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3183">doMiniBatchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;?&gt;&nbsp;batchOp)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3192">doMiniBatchMutate</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;?&gt;&nbsp;batchOp)
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Called to do a piece of the batch that came in to <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html#batchMutate-org.apache.hadoop.hbase.client.Mutation:A-long-long-"><code>batchMutate(Mutation[], long, long)</code></a>
  In here we also handle replay of edits on region recover.</div>
@@ -5114,7 +5114,7 @@ public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/r
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeFamilyMaps</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3534">mergeFamilyMaps</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&gt;&nbsp;familyMap,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.3543">mergeFamilyMaps</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=

<TRUNCATED>

[38/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html b/devapidocs/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html
index f71a907..d035555 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html
@@ -133,7 +133,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.45">IncreasingToUpperBoundRegionSplitPolicy</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.46">IncreasingToUpperBoundRegionSplitPolicy</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ConstantSizeRegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">ConstantSizeRegionSplitPolicy</a></pre>
 <div class="block">Split size is the number of regions that are on this server that all are
  of the same table, cubed, times 2x the region flush size OR the maximum
@@ -279,7 +279,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ConstantSiz
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.47">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.48">LOG</a></pre>
 </li>
 </ul>
 <a name="initialSize">
@@ -288,7 +288,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ConstantSiz
 <ul class="blockListLast">
 <li class="blockList">
 <h4>initialSize</h4>
-<pre>protected&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.48">initialSize</a></pre>
+<pre>protected&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.49">initialSize</a></pre>
 </li>
 </ul>
 </li>
@@ -305,7 +305,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ConstantSiz
 <ul class="blockListLast">
 <li class="blockList">
 <h4>IncreasingToUpperBoundRegionSplitPolicy</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.45">IncreasingToUpperBoundRegionSplitPolicy</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.46">IncreasingToUpperBoundRegionSplitPolicy</a>()</pre>
 </li>
 </ul>
 </li>
@@ -322,7 +322,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ConstantSiz
 <ul class="blockList">
 <li class="blockList">
 <h4>configureForRegion</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.51">configureForRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.52">configureForRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html#configureForRegion-org.apache.hadoop.hbase.regionserver.HRegion-">RegionSplitPolicy</a></code></span></div>
 <div class="block">Upon construction, this method will be called with the region
  to be governed. It will be called once and only once.</div>
@@ -338,7 +338,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ConstantSiz
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldSplit</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.69">shouldSplit</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.70">shouldSplit</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ConstantSizeRegionSplitPolicy.html#shouldSplit--">shouldSplit</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/ConstantSizeRegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">ConstantSizeRegionSplitPolicy</a></code></dd>
@@ -353,7 +353,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ConstantSiz
 <ul class="blockList">
 <li class="blockList">
 <h4>getCountOfCommonTableRegions</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.101">getCountOfCommonTableRegions</a>()</pre>
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.103">getCountOfCommonTableRegions</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Count of regions on this server that share the table this.region
@@ -367,7 +367,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ConstantSiz
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getSizeToCheck</h4>
-<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.122">getSizeToCheck</a>(int&nbsp;tableRegionsCount)</pre>
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html#line.124">getSizeToCheck</a>(int&nbsp;tableRegionsCount)</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Region max size or <code>count of regions cubed * 2 * flushsize</code>,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/MobStoreScanner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MobStoreScanner.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MobStoreScanner.html
index aa9ee65..fb16c01 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MobStoreScanner.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MobStoreScanner.html
@@ -245,7 +245,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanne
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">StoreScanner</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#checkFlushed--">checkFlushed</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#checkScanOrder-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.CellComparator-">checkScanOrder</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#enableLazySeekGlobally-boolean-">enableLazySeekGlobally</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getAllScannersForTesting--">getAllScannersForTesting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getEstimatedNumberOfKvsScanned--">getEstimatedNumberOfKvsScanned</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getNextIndexedKey--">getNextIndexedKey</a>, <a href="../../..
 /../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getReadPoint--">getReadPoint</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getScannerOrder--">getScannerOrder</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next--">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next-java.util.List-">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#peek--">peek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#reopenAfterFlush--">reopenAfterFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#reseek-org.apache.hadoop.hbase.Cell-">reseek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#resetKVHeap-java.util.List-org.apache.hadoop.hbase.CellComparator-">resetKVHeap</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/St
 oreScanner.html#seek-org.apache.hadoop.hbase.Cell-">seek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekAsDirection-org.apache.hadoop.hbase.Cell-">seekAsDirection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekScanners-java.util.List-org.apache.hadoop.hbase.Cell-boolean-boolean-">seekScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekToNextRow-org.apache.hadoop.hbase.Cell-">seekToNextRow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#selectScannersFrom-java.util.List-">selectScannersFrom</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#shipped--">shipped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySkipToNextColumn-org.apache.hadoop.hbase.Cell-">trySkipToNextColumn</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.ht
 ml#trySkipToNextRow-org.apache.hadoop.hbase.Cell-">trySkipToNextRow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#updateReaders-java.util.List-java.util.List-">updateReaders</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#checkFlushed--">checkFlushed</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#checkScanOrder-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.CellComparator-">checkScanOrder</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#enableLazySeekGlobally-boolean-">enableLazySeekGlobally</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getAllScannersForTesting--">getAllScannersForTesting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getEstimatedNumberOfKvsScanned--">getEstimatedNumberOfKvsScanned</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getNextIndexedKey--">getNextIndexedKey</a>, <a href="../../..
 /../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getReadPoint--">getReadPoint</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getScannerOrder--">getScannerOrder</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#isScanUsePread--">isScanUsePread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next--">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next-java.util.List-">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#peek--">peek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#reopenAfterFlush--">reopenAfterFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#reseek-org.apache.hadoop.hbase.Cell-">reseek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#resetKVHeap-java.util.List-org.
 apache.hadoop.hbase.CellComparator-">resetKVHeap</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seek-org.apache.hadoop.hbase.Cell-">seek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekAsDirection-org.apache.hadoop.hbase.Cell-">seekAsDirection</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekScanners-java.util.List-org.apache.hadoop.hbase.Cell-boolean-boolean-">seekScanners</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#seekToNextRow-org.apache.hadoop.hbase.Cell-">seekToNextRow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#selectScannersFrom-java.util.List-">selectScannersFrom</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#shipped--">shipped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySkipToNextColumn-org.apache.hado
 op.hbase.Cell-">trySkipToNextColumn</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySkipToNextRow-org.apache.hadoop.hbase.Cell-">trySkipToNextRow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#updateReaders-java.util.List-java.util.List-">updateReaders</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/ReversedMobStoreScanner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/ReversedMobStoreScanner.html b/devapidocs/org/apache/hadoop/hbase/regionserver/ReversedMobStoreScanner.html
index 9f8ed7f..d6fb11d 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/ReversedMobStoreScanner.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/ReversedMobStoreScanner.html
@@ -257,7 +257,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedSto
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">StoreScanner</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#checkFlushed--">checkFlushed</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#enableLazySeekGlobally-boolean-">enableLazySeekGlobally</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getAllScannersForTesting--">getAllScannersForTesting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getEstimatedNumberOfKvsScanned--">getEstimatedNumberOfKvsScanned</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getNextIndexedKey--">getNextIndexedKey</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getReadPoint--">getReadPoint</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getScannerOrder--">getScannerOrder</a>
 , <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next--">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next-java.util.List-">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#peek--">peek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#reopenAfterFlush--">reopenAfterFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#selectScannersFrom-java.util.List-">selectScannersFrom</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#shipped--">shipped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySkipToNextColumn-org.apache.hadoop.hbase.Cell-">trySkipToNextColumn</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySkipToNextRow-org.apache.hadoop.hbase.Cell-">trySkipToNextRow</a>, <a href="../../../../..
 /org/apache/hadoop/hbase/regionserver/StoreScanner.html#updateReaders-java.util.List-java.util.List-">updateReaders</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#checkFlushed--">checkFlushed</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#enableLazySeekGlobally-boolean-">enableLazySeekGlobally</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getAllScannersForTesting--">getAllScannersForTesting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getEstimatedNumberOfKvsScanned--">getEstimatedNumberOfKvsScanned</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getNextIndexedKey--">getNextIndexedKey</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getReadPoint--">getReadPoint</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getScannerOrder--">getScannerOrder</a>
 , <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#isScanUsePread--">isScanUsePread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next--">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next-java.util.List-">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#peek--">peek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#reopenAfterFlush--">reopenAfterFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#selectScannersFrom-java.util.List-">selectScannersFrom</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#shipped--">shipped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySkipToNextColumn-org.apache.hadoop.hbase.Cell-">trySkipToNextColumn</a>, <a href="../../../../../org/apache/hadoop/hbase/regions
 erver/StoreScanner.html#trySkipToNextRow-org.apache.hadoop.hbase.Cell-">trySkipToNextRow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#updateReaders-java.util.List-java.util.List-">updateReaders</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.html b/devapidocs/org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.html
index 80c3b5b..aa72676 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.html
@@ -292,7 +292,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/KeyValue
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">StoreScanner</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#checkFlushed--">checkFlushed</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#enableLazySeekGlobally-boolean-">enableLazySeekGlobally</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getAllScannersForTesting--">getAllScannersForTesting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getEstimatedNumberOfKvsScanned--">getEstimatedNumberOfKvsScanned</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getNextIndexedKey--">getNextIndexedKey</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getReadPoint--">getReadPoint</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getScannerOrder--">getScannerOrder</a>
 , <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next--">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next-java.util.List-">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#peek--">peek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#reopenAfterFlush--">reopenAfterFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#selectScannersFrom-java.util.List-">selectScannersFrom</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#shipped--">shipped</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySkipToNextColumn-org.apache.hadoop.hbase.Cell-">trySkipToNextColumn</a>, <a href="
 ../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySkipToNextRow-org.apache.hadoop.hbase.Cell-">trySkipToNextRow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#updateReaders-java.util.List-java.util.List-">updateReaders</a></code></li>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#checkFlushed--">checkFlushed</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#close--">close</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#enableLazySeekGlobally-boolean-">enableLazySeekGlobally</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getAllScannersForTesting--">getAllScannersForTesting</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getEstimatedNumberOfKvsScanned--">getEstimatedNumberOfKvsScanned</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getNextIndexedKey--">getNextIndexedKey</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getReadPoint--">getReadPoint</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#getScannerOrder--">getScannerOrder</a>
 , <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#isScanUsePread--">isScanUsePread</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next--">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next-java.util.List-">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#next-java.util.List-org.apache.hadoop.hbase.regionserver.ScannerContext-">next</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#peek--">peek</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#reopenAfterFlush--">reopenAfterFlush</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#selectScannersFrom-java.util.List-">selectScannersFrom</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#shipped--">shipped</a>, <a href="../../../../../org/apache/hadoop/hbase
 /regionserver/StoreScanner.html#trySkipToNextColumn-org.apache.hadoop.hbase.Cell-">trySkipToNextColumn</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#trySkipToNextRow-org.apache.hadoop.hbase.Cell-">trySkipToNextRow</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html#updateReaders-java.util.List-java.util.List-">updateReaders</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner">


[07/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependencies.html b/hbase-archetypes/hbase-client-project/dependencies.html
index 0450270..3351144 100644
--- a/hbase-archetypes/hbase-client-project/dependencies.html
+++ b/hbase-archetypes/hbase-client-project/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>
@@ -166,7 +166,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr></table></div></div><a name="Project_Transitive_Dependencies"></a>
 <div class="section">
@@ -293,9 +293,9 @@
 <tr class="b">
 <td>commons-cli</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">commons-cli</a></td>
-<td>1.3.1</td>
+<td>1.4</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-codec</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-codec/">commons-codec</a></td>
@@ -328,10 +328,10 @@
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License</a></td></tr>
 <tr class="b">
 <td>commons-io</td>
-<td><a class="externalLink" href="http://commons.apache.org/io/">commons-io</a></td>
-<td>2.4</td>
+<td><a class="externalLink" href="http://commons.apache.org/proper/commons-io/">commons-io</a></td>
+<td>2.5</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-lang</td>
 <td><a class="externalLink" href="http://commons.apache.org/lang/">commons-lang</a></td>
@@ -353,298 +353,292 @@
 <tr class="b">
 <td>io.dropwizard.metrics</td>
 <td><a class="externalLink" href="http://metrics.codahale.com/metrics-core/">metrics-core</a></td>
-<td>3.1.2</td>
+<td>3.2.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a></td></tr>
 <tr class="a">
 <td>io.netty</td>
 <td><a class="externalLink" href="http://netty.io/netty-all/">netty-all</a></td>
-<td>4.1.1.Final</td>
+<td>4.1.9.Final</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
 <tr class="b">
-<td>javax.activation</td>
-<td><a class="externalLink" href="http://java.sun.com/products/javabeans/jaf/index.jsp">activation</a></td>
-<td>1.1</td>
-<td>jar</td>
-<td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDLv1.0.html">Common Development and Distribution License (CDDL) v1.0</a></td></tr>
-<tr class="a">
 <td>javax.inject</td>
 <td><a class="externalLink" href="http://code.google.com/p/atinject/">javax.inject</a></td>
 <td>1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>javax.xml.bind</td>
-<td><a class="externalLink" href="https://jaxb.dev.java.net/">jaxb-api</a></td>
-<td>2.2.2</td>
+<td><a class="externalLink" href="http://jaxb.java.net/">jaxb-api</a></td>
+<td>2.2.12</td>
 <td>jar</td>
-<td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>-<a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
-<tr class="a">
+<td><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>-<a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
+<tr class="b">
 <td>net.java.dev.jets3t</td>
 <td><a class="externalLink" href="http://www.jets3t.org">jets3t</a></td>
 <td>0.9.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.avro</td>
 <td><a class="externalLink" href="http://avro.apache.org">avro</a></td>
 <td>1.7.4</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/compress/">commons-compress</a></td>
 <td>1.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-crypto/">commons-crypto</a></td>
 <td>1.0.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math</a></td>
 <td>2.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math3</a></td>
 <td>3.1.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-client">curator-client</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-framework">curator-framework</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-recipes">curator-recipes</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.directory.api</td>
 <td><a class="externalLink" href="http://directory.apache.org/api-parent/api-asn1-parent/api-asn1-api/">api-asn1-api</a></td>
 <td>1.0.0-M20</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.directory.api</td>
 <td><a class="externalLink" href="http://directory.apache.org/api-parent/api-util/">api-util</a></td>
 <td>1.0.0-M20</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.directory.server</td>
 <td><a class="externalLink" href="http://directory.apache.org/apacheds/1.5/apacheds-i18n">apacheds-i18n</a></td>
 <td>2.0.0-M15</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.directory.server</td>
 <td><a class="externalLink" href="http://directory.apache.org/apacheds/1.5/apacheds-kerberos-codec">apacheds-kerberos-codec</a></td>
 <td>2.0.0-M15</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-annotations</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-auth</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-core</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-yarn-api</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-yarn-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-common">hbase-common</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop-compat">hbase-hadoop-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop2-compat">hbase-hadoop2-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics">hbase-metrics</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics-api">hbase-metrics-api</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol">hbase-protocol</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol-shaded">hbase-protocol-shaded</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.htrace</td>
 <td><a class="externalLink" href="http://incubator.apache.org/projects/htrace.html">htrace-core</a></td>
-<td>3.1.0-incubating</td>
+<td>3.2.0-incubating</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">httpclient</a></td>
-<td>4.5.2</td>
+<td>4.5.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">httpcore</a></td>
-<td>4.4.4</td>
+<td>4.4.6</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.zookeeper</td>
 <td>zookeeper</td>
-<td>3.4.8</td>
+<td>3.4.9</td>
 <td>jar</td>
-<td>-</td></tr>
-<tr class="b">
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-core-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-jaxrs</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>-<a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-mapper-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-xc</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>-<a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jettison</td>
-<td><a class="externalLink" href="http://codehaus.org/jettison/">jettison</a></td>
-<td>1.3.3</td>
+<td><a class="externalLink" href="https://github.com/jettison-json/jettison">jettison</a></td>
+<td>1.3.8</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.mortbay.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-parent/project/modules/jetty">jetty</a></td>
 <td>6.1.26</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.mortbay.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-parent/project/jetty-util">jetty-util</a></td>
 <td>6.1.26</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
-<td>1.7.7</td>
+<td>1.7.24</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-log4j12</a></td>
-<td>1.7.7</td>
+<td>1.7.24</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.tukaani</td>
 <td><a class="externalLink" href="http://tukaani.org/xz/java.html">xz</a></td>
 <td>1.0</td>
 <td>jar</td>
 <td>Public Domain</td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.xerial.snappy</td>
 <td><a class="externalLink" href="http://code.google.com/p/snappy-java/">snappy-java</a></td>
 <td>1.0.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>xmlenc</td>
 <td><a class="externalLink" href="http://xmlenc.sourceforge.net">xmlenc</a></td>
 <td>0.52</td>
@@ -1023,21 +1017,21 @@
 <tr class="a">
 <td>org.glassfish.hk2</td>
 <td><a class="externalLink" href="https://hk2.java.net/hk2-api">hk2-api</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
 <tr class="b">
 <td>org.glassfish.hk2</td>
 <td><a class="externalLink" href="https://hk2.java.net/hk2-locator">hk2-locator</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
 <tr class="a">
 <td>org.glassfish.hk2</td>
 <td><a class="externalLink" href="https://hk2.java.net/hk2-utils">hk2-utils</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
@@ -1051,56 +1045,56 @@
 <tr class="a">
 <td>org.glassfish.hk2.external</td>
 <td><a class="externalLink" href="https://hk2.java.net/external/aopalliance-repackaged">aopalliance-repackaged</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
 <tr class="b">
 <td>org.glassfish.hk2.external</td>
 <td><a class="externalLink" href="https://hk2.java.net/external/javax.inject">javax.inject</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
 <tr class="a">
 <td>org.glassfish.jersey.bundles.repackaged</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/project/jersey-guava/">jersey-guava</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
 <td>org.glassfish.jersey.containers</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">jersey-container-servlet-core</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="a">
 <td>org.glassfish.jersey.core</td>
 <td><a class="externalLink" href="https://jersey.java.net/jersey-client/">jersey-client</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
 <td>org.glassfish.jersey.core</td>
 <td><a class="externalLink" href="https://jersey.java.net/jersey-common/">jersey-common</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="a">
 <td>org.glassfish.jersey.core</td>
 <td><a class="externalLink" href="https://jersey.java.net/jersey-server/">jersey-server</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
 <td>org.glassfish.jersey.media</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-media-jaxb/">jersey-media-jaxb</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
@@ -1142,7 +1136,7 @@
 <tr class="b">
 <td>org.javassist</td>
 <td><a class="externalLink" href="http://www.javassist.org/">javassist</a></td>
-<td>3.18.1-GA</td>
+<td>3.20.0-GA</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/MPL-1.1.html">MPL 1.1</a>-<a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1.html">LGPL 2.1</a>-<a class="externalLink" href="http://www.apache.org/licenses/">Apache License 2.0</a></td></tr></table></div><a name="Project_Transitive_Dependencies_system"></a>
@@ -1517,7 +1511,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>The jetty xml utilities.</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a><a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.22.2 (test) <img id="_img63" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep62', '_img63' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep62" style="display:none">
+<li>org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1 (test) <img id="_img63" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep62', '_img63' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep62" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-container-servlet-core</th></tr>
@@ -1527,7 +1521,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">https://jersey.java.net/project/jersey-container-servlet-core/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.hk2.external:javax.inject:jar:2.4.0-b34 (test) <img id="_img65" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep64', '_img65' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep64" style="display:none">
+<li>org.glassfish.hk2.external:javax.inject:jar:2.5.0-b32 (test) <img id="_img65" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep64', '_img65' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep64" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>javax.inject:1 as OSGi bundle</th></tr>
@@ -1536,7 +1530,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Injection API (JSR 330) version ${javax.inject.version} repackaged as OSGi bundle</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/external/javax.inject">https://hk2.java.net/external/javax.inject</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.core:jersey-common:jar:2.22.2 (test) <img id="_img67" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep66', '_img67' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep66" style="display:none">
+<li>org.glassfish.jersey.core:jersey-common:jar:2.25.1 (test) <img id="_img67" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep66', '_img67' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep66" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-core-common</th></tr>
@@ -1555,7 +1549,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Common Annotations for the JavaTM Platform API</p>
 <p><b>URL: </b><a class="externalLink" href="http://jcp.org/en/jsr/detail?id=250">http://jcp.org/en/jsr/detail?id=250</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.22.2 (test) <img id="_img71" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep70', '_img71' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep70" style="display:none">
+<li>org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.25.1 (test) <img id="_img71" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep70', '_img71' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep70" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-repackaged-guava</th></tr>
@@ -1564,7 +1558,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Jersey Guava Repackaged</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/project/jersey-guava/">https://jersey.java.net/project/project/jersey-guava/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
-<li>org.glassfish.hk2:hk2-api:jar:2.4.0-b34 (test) <img id="_img73" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep72', '_img73' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep72" style="display:none">
+<li>org.glassfish.hk2:hk2-api:jar:2.5.0-b32 (test) <img id="_img73" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep72', '_img73' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep72" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>HK2 API module</th></tr>
@@ -1574,7 +1568,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-api">https://hk2.java.net/hk2-api</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.hk2:hk2-utils:jar:2.4.0-b34 (test) <img id="_img75" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep74', '_img75' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep74" style="display:none">
+<li>org.glassfish.hk2:hk2-utils:jar:2.5.0-b32 (test) <img id="_img75" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep74', '_img75' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep74" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>HK2 Implementation Utilities</th></tr>
@@ -1583,7 +1577,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>HK2 Implementation Utilities</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-utils">https://hk2.java.net/hk2-utils</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.hk2.external:aopalliance-repackaged:jar:2.4.0-b34 (test) <img id="_img77" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep76', '_img77' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep76" style="display:none">
+<li>org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b32 (test) <img id="_img77" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep76', '_img77' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep76" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>aopalliance version 1.0 repackaged as a module</th></tr>
@@ -1592,7 +1586,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Dependency Injection Kernel</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/external/aopalliance-repackaged">https://hk2.java.net/external/aopalliance-repackaged</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.hk2:hk2-locator:jar:2.4.0-b34 (test) <img id="_img79" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep78', '_img79' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep78" style="display:none">
+<li>org.glassfish.hk2:hk2-locator:jar:2.5.0-b32 (test) <img id="_img79" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep78', '_img79' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep78" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>ServiceLocator Default Implementation</th></tr>
@@ -1602,7 +1596,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-locator">https://hk2.java.net/hk2-locator</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div>
 <ul>
-<li>org.javassist:javassist:jar:3.18.1-GA (test) <img id="_img81" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep80', '_img81' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep80" style="display:none">
+<li>org.javassist:javassist:jar:3.20.0-GA (test) <img id="_img81" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep80', '_img81' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep80" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Javassist</th></tr>
@@ -1621,7 +1615,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>See http://wiki.glassfish.java.net/Wiki.jsp?page=JdkSpiOsgi for more information</p>
 <p><b>URL: </b><a class="externalLink" href="http://glassfish.org/osgi-resource-locator/">http://glassfish.org/osgi-resource-locator/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.jersey.core:jersey-server:jar:2.22.2 (test) <img id="_img85" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep84', '_img85' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep84" style="display:none">
+<li>org.glassfish.jersey.core:jersey-server:jar:2.25.1 (test) <img id="_img85" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep84', '_img85' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep84" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-core-server</th></tr>
@@ -1631,7 +1625,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-server/">https://jersey.java.net/jersey-server/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.jersey.core:jersey-client:jar:2.22.2 (test) <img id="_img87" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep86', '_img87' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep86" style="display:none">
+<li>org.glassfish.jersey.core:jersey-client:jar:2.25.1 (test) <img id="_img87" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep86', '_img87' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep86" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-core-client</th></tr>
@@ -1640,7 +1634,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Jersey core client implementation</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-client/">https://jersey.java.net/jersey-client/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.media:jersey-media-jaxb:jar:2.22.2 (test) <img id="_img89" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep88', '_img89' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep88" style="display:none">
+<li>org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1 (test) <img id="_img89" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep88', '_img89' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep88" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-media-jaxb</th></tr>
@@ -1697,7 +1691,7 @@ Jackson JSON processor's data binding functionality.</p>
 Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a><a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></p></td></tr></table></div></li></ul></li>
-<li>commons-cli:commons-cli:jar:1.3.1 (compile) <img id="_img101" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep100', '_img101' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep100" style="display:none">
+<li>commons-cli:commons-cli:jar:1.4 (compile) <img id="_img101" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep100', '_img101' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep100" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Commons CLI</th></tr>
@@ -1705,7 +1699,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>
 <p><b>Description: </b>Apache Commons CLI provides a simple API for presenting, processing and validating a command line interface.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">http://commons.apache.org/proper/commons-cli/</a></p>
-<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
+<p><b>Project License: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
 <li>org.apache.commons:commons-math:jar:2.2 (compile) <img id="_img103" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep102', '_img103' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep102" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
@@ -1790,7 +1784,7 @@ Jackson JSON processor's data binding functionality.</p>
         over hadoop version differences</p>
 <p><b>URL: </b><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop2-compat">http://hbase.apache.org/hbase-hadoop2-compat</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.slf4j:slf4j-log4j12:jar:1.7.7 (compile) <img id="_img121" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep120', '_img121' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep120" style="display:none">
+<li>org.slf4j:slf4j-log4j12:jar:1.7.24 (compile) <img id="_img121" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep120', '_img121' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep120" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>SLF4J LOG4J-12 Binding</th></tr>
@@ -1800,7 +1794,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.slf4j.org">http://www.slf4j.org</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></p></td></tr></table></div>
 <ul>
-<li>org.slf4j:slf4j-api:jar:1.7.7 (compile) <img id="_img123" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep122', '_img123' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep122" style="display:none">
+<li>org.slf4j:slf4j-api:jar:1.7.24 (compile) <img id="_img123" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep122', '_img123' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep122" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>SLF4J API Module</th></tr>
@@ -1912,14 +1906,14 @@ Supported protocols include: Echo, Finger, FTP, NNTP, NTP, POP3(S), SMTP(S), Tel
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-json/">https://jersey.java.net/jersey-json/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div>
 <ul>
-<li>org.codehaus.jettison:jettison:jar:1.3.3 (compile) <img id="_img147" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep146', '_img147' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep146" style="display:none">
+<li>org.codehaus.jettison:jettison:jar:1.3.8 (compile) <img id="_img147" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep146', '_img147' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep146" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Jettison</th></tr>
 <tr class="b">
 <td>
 <p><b>Description: </b>A StAX implementation for JSON.</p>
-<p><b>URL: </b><a class="externalLink" href="http://codehaus.org/jettison/">http://codehaus.org/jettison/</a></p>
+<p><b>URL: </b><a class="externalLink" href="https://github.com/jettison-json/jettison">https://github.com/jettison-json/jettison</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p></td></tr></table></div></li>
 <li>com.sun.xml.bind:jaxb-impl:jar:2.2.3-1 (compile) <img id="_img149" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep148', '_img149' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep148" style="display:none">
 <table border="0" class="bodyTable">
@@ -1961,7 +1955,7 @@ Supported protocols include: Echo, Finger, FTP, NNTP, NTP, POP3(S), SMTP(S), Tel
 <p><b>URL: </b><a class="externalLink" href="http://www.jets3t.org">http://www.jets3t.org</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.httpcomponents:httpcore:jar:4.4.4 (compile) <img id="_img157" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep156', '_img157' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep156" style="display:none">
+<li>org.apache.httpcomponents:httpcore:jar:4.4.6 (compile) <img id="_img157" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep156', '_img157' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep156" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache HttpCore</th></tr>
@@ -2107,7 +2101,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Auth - Java HTTP SPNEGO</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.httpcomponents:httpclient:jar:4.5.2 (compile) <img id="_img187" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep186', '_img187' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep186" style="display:none">
+<li>org.apache.httpcomponents:httpclient:jar:4.5.3 (compile) <img id="_img187" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep186', '_img187' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep186" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache HttpClient</th></tr>
@@ -2196,26 +2190,16 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>javax.xml.bind:jaxb-api:jar:2.2.2 (compile) <img id="_img207" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep206', '_img207' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep206" style="display:none">
+<li>javax.xml.bind:jaxb-api:jar:2.2.12 (compile) <img id="_img207" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep206', '_img207' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep206" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
-<th>JAXB API bundle for GlassFish V3</th></tr>
+<th>Java Architecture for XML Binding</th></tr>
 <tr class="b">
 <td>
 <p><b>Description: </b>JAXB (JSR 222) API</p>
-<p><b>URL: </b><a class="externalLink" href="https://jaxb.dev.java.net/">https://jaxb.dev.java.net/</a></p>
-<p><b>Project License: </b><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div>
-<ul>
-<li>javax.activation:activation:jar:1.1 (compile) <img id="_img209" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep208', '_img209' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep208" style="display:none">
-<table border="0" class="bodyTable">
-<tr class="a">
-<th>JavaBeans Activation Framework (JAF)</th></tr>
-<tr class="b">
-<td>
-<p><b>Description: </b>JavaBeans Activation Framework (JAF) is a standard extension to the Java platform that lets you take advantage of standard services to: determine the type of an arbitrary piece of data; encapsulate access to it; discover the operations available on it; and instantiate the appropriate bean to perform the operation(s).</p>
-<p><b>URL: </b><a class="externalLink" href="http://java.sun.com/products/javabeans/jaf/index.jsp">http://java.sun.com/products/javabeans/jaf/index.jsp</a></p>
-<p><b>Project License: </b><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDLv1.0.html">Common Development and Distribution License (CDDL) v1.0</a></p></td></tr></table></div></li></ul></li>
-<li>com.sun.jersey:jersey-client:jar:1.9 (compile) <img id="_img211" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep210', '_img211' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep210" style="display:none">
+<p><b>URL: </b><a class="externalLink" href="http://jaxb.java.net/">http://jaxb.java.net/</a></p>
+<p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div></li>
+<li>com.sun.jersey:jersey-client:jar:1.9 (compile) <img id="_img209" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep208', '_img209' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep208" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-client</th></tr>
@@ -2226,7 +2210,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
         RESTful Web services.</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-client/">https://jersey.java.net/jersey-client/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div></li>
-<li>com.google.inject:guice:jar:3.0 (compile) <img id="_img213" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep212', '_img213' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep212" style="display:none">
+<li>com.google.inject:guice:jar:3.0 (compile) <img id="_img211" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep210', '_img211' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep210" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Google Guice - Core Library</th></tr>
@@ -2236,7 +2220,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/google-guice/guice/">http://code.google.com/p/google-guice/guice/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>javax.inject:javax.inject:jar:1 (compile) <img id="_img215" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep214', '_img215' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep214" style="display:none">
+<li>javax.inject:javax.inject:jar:1 (compile) <img id="_img213" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep212', '_img213' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep212" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>javax.inject</th></tr>
@@ -2245,7 +2229,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>The javax.inject API</p>
 <p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/atinject/">http://code.google.com/p/atinject/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>aopalliance:aopalliance:jar:1.0 (compile) <img id="_img217" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep216', '_img217' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep216" style="display:none">
+<li>aopalliance:aopalliance:jar:1.0 (compile) <img id="_img215" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep214', '_img215' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep214" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>AOP alliance</th></tr>
@@ -2254,7 +2238,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>AOP Alliance</p>
 <p><b>URL: </b><a class="externalLink" href="http://aopalliance.sourceforge.net">http://aopalliance.sourceforge.net</a></p>
 <p><b>Project License: </b>Public Domain</p></td></tr></table></div></li></ul></li>
-<li>com.sun.jersey.contribs:jersey-guice:jar:1.9 (compile) <img id="_img219" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep218', '_img219' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep218" style="display:none">
+<li>com.sun.jersey.contribs:jersey-guice:jar:1.9 (compile) <img id="_img217" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep216', '_img217' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep216" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-guice</th></tr>
@@ -2264,7 +2248,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
         with other projects/frameworks.</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-contribs/jersey-guice/">https://jersey.java.net/jersey-contribs/jersey-guice/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div></li></ul></li>
-<li>com.google.inject.extensions:guice-servlet:jar:3.0 (compile) <img id="_img221" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep220', '_img221' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep220" style="display:none">
+<li>com.google.inject.extensions:guice-servlet:jar:3.0 (compile) <img id="_img219" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep218', '_img219' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep218" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Google Guice - Extensions - Servlet</th></tr>
@@ -2273,7 +2257,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Guice is a lightweight dependency injection framework for Java 5 and above</p>
 <p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/google-guice/extensions-parent/guice-servlet/">http://code.google.com/p/google-guice/extensions-parent/guice-servlet/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.7.1 (test) <img id="_img223" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep222', '_img223' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep222" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.7.1 (test) <img id="_img221" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep220', '_img221' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep220" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-mapreduce-client-jobclient</th></tr>
@@ -2282,7 +2266,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.7.1 (test) <img id="_img225" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep224', '_img225' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep224" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.7.1 (test) <img id="_img223" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep222', '_img223' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep222" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-mapreduce-client-common</th></tr>
@@ -2291,7 +2275,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-yarn-client:jar:2.7.1 (test) <img id="_img227" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep226', '_img227' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep226" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-client:jar:2.7.1 (test) <img id="_img225" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep224', '_img225' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep224" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-client</th></tr>
@@ -2299,7 +2283,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-yarn-server-common:jar:2.7.1 (test) <img id="_img229" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep228', '_img229' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep228" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-server-common:jar:2.7.1 (test) <img id="_img227" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep226', '_img227' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep226" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-server-common</th></tr>
@@ -2307,7 +2291,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.7.1 (test) <img id="_img231" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep230', '_img231' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep230" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.7.1 (test) <img id="_img229" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep228', '_img229' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep228" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-mapreduce-client-shuffle</th></tr>
@@ -2316,7 +2300,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.7.1 (test) <img id="_img233" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep232', '_img233' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep232" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.7.1 (test) <img id="_img231" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep230', '_img231' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep230" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-server-nodemanager</th></tr>
@@ -2324,7 +2308,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li></ul></li></ul></li>
-<li>org.apache.hadoop:hadoop-hdfs:jar:2.7.1 (test) <img id="_img235" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep234', '_img235' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep234" style="display:none">
+<li>org.apache.hadoop:hadoop-hdfs:jar:2.7.1 (test) <img id="_img233" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep232', '_img233' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep232" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Hadoop HDFS</th></tr>
@@ -2333,7 +2317,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop HDFS</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>commons-daemon:commons-daemon:jar:1.0.13 (test) <img id="_img237" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep236', '_img237' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep236" style="display:none">
+<li>commons-daemon:commons-daemon:jar:1.0.13 (test) <img id="_img235" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep234', '_img235' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep234" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Commons Daemon</th></tr>
@@ -2342,7 +2326,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Commons Daemon software provides an alternative invocation mechanism for unix-daemon-like Java code.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/daemon/">http://commons.apache.org/daemon/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.fusesource.leveldbjni:leveldbjni-all:jar:1.8 (test) <img id="_img239" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep238', '_img239' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep238" style="display:none">
+<li>org.fusesource.leveldbjni:leveldbjni-all:jar:1.8 (test) <img id="_img237" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep236', '_img237' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep236" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>leveldbjni-all</th></tr>
@@ -2351,7 +2335,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>An uber jar which contains all the leveldbjni platform libraries and dependencies</p>
 <p><b>URL: </b><a class="externalLink" href="http://leveldbjni.fusesource.org/leveldbjni-all">http://leveldbjni.fusesource.org/leveldbjni-all</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/BSD-3-Clause">The BSD 3-Clause License</a></p></td></tr></table></div></li></ul></li>
-<li>org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.7.1 (test) <img id="_img241" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep240', '_img241' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep240" style="display:none">
+<li>org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.7.1 (test) <img id="_img239" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep238', '_img239' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep238" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Hadoop HDFS</th></tr>
@@ -2359,7 +2343,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop HDFS</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-minicluster:jar:2.7.1 (test) <img id="_img243" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep242', '_img243' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep242" style="display:none">
+<li>org.apache.hadoop:hadoop-minicluster:jar:2.7.1 (test) <img id="_img241" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep240', '_img241' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep240" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Hadoop Mini-Cluster</th></tr>
@@ -2368,7 +2352,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Mini-Cluster</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-common:test-jar:tests:2.7.1 (test) <img id="_img245" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep244', '_img245' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep244" style="display:none">
+<li>org.apache.hadoop:hadoop-common:test-jar:tests:2.7.1 (test) <img id="_img243" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep242', '_img243' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep242" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Hadoop Common</th></tr>
@@ -2376,7 +2360,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Common</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.7.1 (test) <img id="_img247" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep246', '_img247' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep246" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.7.1 (test) <img id="_img245" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep244', '_img245' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep244" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-server-tests</th></tr>
@@ -2385,7 +2369,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.7.1 (test) <img id="_img249" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep248', '_img249' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep248" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.7.1 (test) <img id="_img247" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep246', '_img247' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep246" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-server-resourcemanager</th></tr>
@@ -2394,7 +2378,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.7.1 (test) <img id="_img251" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep250', '_img251' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep250" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.7.1 (test) <img id="_img249" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep248', '_img249' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep248" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-server-applicationhistoryservice</th></tr>
@@ -2402,7 +2386,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.7.1 (test) <img id="_img253" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep252', '_img253' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep252" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.7.1 (test) <img id="_img251" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep250', '_img251' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep250" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-server-web-proxy</th></tr>
@@ -2410,7 +2394,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.zookeeper:zookeeper:test-jar:tests:3.4.6 (test) <img id="_img255" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep254', '_img255' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep254" style="display:none">
+<li>org.apache.zookeeper:zookeeper:test-jar:tests:3.4.6 (test) <img id="_img253" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep252', '_img253' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep252" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>zookeeper</th></tr>
@@ -2418,7 +2402,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>There is currently no description associated with this project.</p>
 <p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li></ul></li></ul></li>
-<li>org.apache.hadoop:hadoop-mapreduce-client-jobclient:test-jar:tests:2.7.1 (test) <img id="_img257" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep256', '_img257' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep256" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-jobclient:test-jar:tests:2.7.1 (test) <img id="_img255" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep254', '_img255' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep254" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-mapreduce-client-jobclient</th></tr>
@@ -2426,7 +2410,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-mapreduce-client-hs:jar:2.7.1 (test) <img id="_img259" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep258', '_img259' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep258" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-hs:jar:2.7.1 (test) <img id="_img257" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep256', '_img257' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep256" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-mapreduce-client-hs</th></tr>
@@ -2434,7 +2418,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li></ul></li></ul></li>
-<li>org.apache.hbase:hbase-client:jar:3.0.0-SNAPSHOT (compile) <img id="_img261" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep260', '_img261' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep260" style="display:none">
+<li>org.apache.hbase:hbase-client:jar:3.0.0-SNAPSHOT (compile) <img id="_img259" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep258', '_img259' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep258" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache HBase - Client</th></tr>
@@ -2444,7 +2428,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>URL: </b><a class="externalLink" href="http://hbase.apache.org/hbase-client">http://hbase.apache.org/hbase-client</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hbase:hbase-annotations:jar:3.0.0-SNAPSHOT (compile) <img id="_img263" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep262', '_img263' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep262" style="display:none">
+<li>org.apache.hbase:hbase-annotations:jar:3.0.0-SNAPSHOT (compile) <img id="_img261" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep260', '_img261' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep260" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache HBase - Annotations</th></tr>
@@ -2453,7 +2437,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Copy of Hadoop's annotations for HBase</p>
 <p><b>URL: </b><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">http://hbase.apache.org/hbase-annotations</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hbase:hbase-protocol-shaded:jar:3.0.0-SNAPSHOT (compile) <img id="_img265" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep264', '_img265' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep264" style="display:none">
+<li>org.apache.hbase:hbase-protocol-shaded:jar:3.0.0-SNAPSHOT (compile) <img id="_img263" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep262', '_img263' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep262" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache HBase - Shaded Protocol</th></tr>
@@ -2462,7 +2446,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Shaded protobuf protocol classes used by HBase internally.</p>
 <p><b>URL: </b><a class="externalLink" href="http://hbase.apache.org/hbase-protocol-shaded">http://hbase.apache.org/hbase-protocol-shaded</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>commons-codec:commons-codec:jar:1.9 (compile) <img id="_img267" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep266', '_img267' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep266" style="display:none">
+<li>commons-codec:commons-codec:jar:1.9 (compile) <img id="_img265" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep264', '_img265' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep264" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Commons Codec</th></tr>
@@ -2474,17 +2458,17 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
      collection of phonetic encoding utilities.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/proper/commons-codec/">http://commons.apache.org/proper/commons-codec/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>commons-io:commons-io:jar:2.4 (compile) <img id="_img269" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep268', '_img269' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep268" style="display:none">
+<li>commons-io:commons-io:jar:2.5 (compile) <img id="_img267" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep266', '_img267' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep266" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
-<th>Commons IO</th></tr>
+<th>Apache Commons IO</th></tr>
 <tr class="b">
 <td>
-<p><b>Description: </b>The Commons IO library contains utility classes, stream implementations, file filters, 
+<p><b>Description: </b>The Apache Commons IO library contains utility classes, stream implementations, file filters, 
 file comparators, endian transformation classes, and much more.</p>
-<p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/io/">http://commons.apache.org/io/</a></p>
-<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>commons-lang:commons-lang:jar:2.6 (compile) <img id="_img271" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep270', '_img271' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep270" style="display:none">
+<p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/proper/commons-io/">http://commons.apache.org/proper/commons-io/</a></p>
+<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
+<li>commons-lang:commons-lang:jar:2.6 (compile) <img id="_img269" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep268', '_img269' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep268" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Commons Lang</th></tr>
@@ -2495,7 +2479,7 @@ file comparators, endian transformation classes, and much more.</p>
         standard as to justify existence in java.lang.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/lang/">http://commons.apache.org/lang/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>commons-logging:commons-logging:jar:1.2 (compile) <img id="_img273" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep272', '_img273' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep272" style="display:none">
+<li>commons-logging:commons-logging:jar:1.2 (compile) <img id="_img271" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep270', '_img271' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep270" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Commons Logging</th></tr>
@@ -2505,7 +2489,7 @@ file comparators, endian transformation classes, and much more.</p>
     well known logging systems.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/proper/commons-logging/">http://commons.apache.org/proper/commons-logging/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>com.google.guava:guava:jar:12.0.1 (compile) <img id="_img275" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep274', '_img275' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep274" style="display:none">
+<li>com.google.guava:guava:jar:12.0.1 (compile) <img id="_img273" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep272', '_img273' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep272" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Guava: Google Core Libraries for Java</th></tr>
@@ -2519,7 +2503,7 @@ file comparators, endian transformation classes, and much more.</p>
     per the JSR-305 spec.</p>
 <p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/guava-libraries/guava">http://code.google.com/p/guava-libraries/guava</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>com.google.protobuf:protobuf-java:jar:2.5.0 (compile) <img id="_img277" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep276', '_img277' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep276" style="display:none">
+<li>com.google.protobuf:protobuf-java:jar:2.5.0 (compile) <img id="_img275" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep274', '_img275' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep274" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Protocol Buffer Java API</th></tr>
@@ -2529,7 +2513,7 @@ file comparators, endian transformation classes, and much more.</p>
     extensible format.</p>
 <p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/protobuf">http://code.google.com/p/protobuf</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/bsd-license.php">New BSD license</a></p></td></tr></table></div></li>
-<li>io.netty:netty-all:jar:4.1.1.Final (compile) <img id="_img279" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep278', '_img279' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep278" style="display:none">
+<li>io.netty:netty-all:jar:4.1.9.Final (compile) <img id="_img277" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep276', '_img277' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep276" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Netty/All-in-One</th></tr>
@@ -2540,15 +2524,15 @@ file comparators, endian transformation classes, and much more.</p>
     clients.</p>
 <p><b>URL: </b><a class="externalLink" href="http://netty.io/netty-all/">http://netty.io/netty-all/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.zookeeper:zookeeper:jar:3.4.8 (compile) <img id="_img281" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep280', '_img281' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep280" style="display:none">
+<li>org.apache.zookeeper:zookeeper:jar:3.4.9 (compile) <img id="_img279" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep278', '_img279' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep278" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>zookeeper</th></tr>
 <tr class="b">
 <td>
 <p><b>Description: </b>There is currently no description associated with this project.</p>
-<p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li>
-<li>org.apache.htrace:htrace-core:jar:3.1.0-incubating (compile) <img id="_img283" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep282', '_img283' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep282" style="display:none">
+<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
+<li>org.apache.htrace:htrace-core:jar:3.2.0-incubating (compile) <img id="_img281" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep280', '_img281' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep280" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>htrace-core</th></tr>
@@ -2557,7 +2541,7 @@ file comparators, endian transformation classes, and much more.</p>
 <p><b>Description: </b>A tracing framework for use with distributed systems written in java</p>
 <p><b>URL: </b><a class="externalLink" href="http://incubator.apache.org/projects/htrace.html">http://incubator.apache.org/projects/htrace.html</a></p>
 <p><b>Proj

<TRUNCATED>

[40/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
index 63be4b9..d270580 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1720">HRegionServer.CompactionChecker</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1719">HRegionServer.CompactionChecker</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></pre>
 </li>
 </ul>
@@ -233,7 +233,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>instance</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1721">instance</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1720">instance</a></pre>
 </li>
 </ul>
 <a name="majorCompactPriority">
@@ -242,7 +242,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactPriority</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1722">majorCompactPriority</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1721">majorCompactPriority</a></pre>
 </li>
 </ul>
 <a name="DEFAULT_PRIORITY">
@@ -251,7 +251,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_PRIORITY</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1723">DEFAULT_PRIORITY</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1722">DEFAULT_PRIORITY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.CompactionChecker.DEFAULT_PRIORITY">Constant Field Values</a></dd>
@@ -264,7 +264,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>iteration</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1726">iteration</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1725">iteration</a></pre>
 </li>
 </ul>
 </li>
@@ -281,7 +281,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CompactionChecker</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1728">CompactionChecker</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;h,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1727">CompactionChecker</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;h,
                   int&nbsp;sleepTime,
                   <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stopper)</pre>
 </li>
@@ -300,7 +300,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1743">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1742">chore</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
index b50ec54..076495d 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3347">HRegionServer.MovedRegionInfo</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3346">HRegionServer.MovedRegionInfo</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -218,7 +218,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>serverName</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3348">serverName</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3347">serverName</a></pre>
 </li>
 </ul>
 <a name="seqNum">
@@ -227,7 +227,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>seqNum</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3349">seqNum</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3348">seqNum</a></pre>
 </li>
 </ul>
 <a name="ts">
@@ -236,7 +236,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ts</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3350">ts</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3349">ts</a></pre>
 </li>
 </ul>
 </li>
@@ -253,7 +253,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MovedRegionInfo</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3352">MovedRegionInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3351">MovedRegionInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                        long&nbsp;closeSeqNum)</pre>
 </li>
 </ul>
@@ -271,7 +271,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3358">getServerName</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3357">getServerName</a>()</pre>
 </li>
 </ul>
 <a name="getSeqNum--">
@@ -280,7 +280,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3362">getSeqNum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3361">getSeqNum</a>()</pre>
 </li>
 </ul>
 <a name="getMoveTime--">
@@ -289,7 +289,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getMoveTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3366">getMoveTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3365">getMoveTime</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
index 997dcc7..92b6e8f 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>protected static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3436">HRegionServer.MovedRegionsCleaner</a>
+<pre>protected static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3435">HRegionServer.MovedRegionsCleaner</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></pre>
 <div class="block">Creates a Chore thread to clean the moved region cache.</div>
@@ -242,7 +242,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServer</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3437">regionServer</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3436">regionServer</a></pre>
 </li>
 </ul>
 <a name="stoppable">
@@ -251,7 +251,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stoppable</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3438">stoppable</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3437">stoppable</a></pre>
 </li>
 </ul>
 </li>
@@ -268,7 +268,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MovedRegionsCleaner</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3440">MovedRegionsCleaner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;regionServer,
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3439">MovedRegionsCleaner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;regionServer,
                             <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stoppable)</pre>
 </li>
 </ul>
@@ -286,7 +286,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>create</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionsCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3448">create</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs)</pre>
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionsCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3447">create</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs)</pre>
 </li>
 </ul>
 <a name="chore--">
@@ -295,7 +295,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3459">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3458">chore</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 <dl>
@@ -310,7 +310,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3464">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3463">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">Stoppable</a></code></span></div>
 <div class="block">Stop this service.
  Implementers should favor logging errors over throwing RuntimeExceptions.</div>
@@ -328,7 +328,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isStopped</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3469">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3468">isStopped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html
index 4bc043f..0a21107 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1777">HRegionServer.PeriodicMemstoreFlusher</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1776">HRegionServer.PeriodicMemstoreFlusher</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></pre>
 </li>
 </ul>
@@ -228,7 +228,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>server</h4>
-<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html#line.1778">server</a></pre>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html#line.1777">server</a></pre>
 </li>
 </ul>
 <a name="RANGE_OF_DELAY">
@@ -237,7 +237,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>RANGE_OF_DELAY</h4>
-<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html#line.1779">RANGE_OF_DELAY</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html#line.1778">RANGE_OF_DELAY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.PeriodicMemstoreFlusher.RANGE_OF_DELAY">Constant Field Values</a></dd>
@@ -250,7 +250,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MIN_DELAY_TIME</h4>
-<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html#line.1780">MIN_DELAY_TIME</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html#line.1779">MIN_DELAY_TIME</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.PeriodicMemstoreFlusher.MIN_DELAY_TIME">Constant Field Values</a></dd>
@@ -271,7 +271,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>PeriodicMemstoreFlusher</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html#line.1781">PeriodicMemstoreFlusher</a>(int&nbsp;cacheFlushInterval,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html#line.1780">PeriodicMemstoreFlusher</a>(int&nbsp;cacheFlushInterval,
                                <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;server)</pre>
 </li>
 </ul>
@@ -289,7 +289,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html#line.1787">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html#line.1786">chore</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 <dl>


[13/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html
index eda63e0..b2b7ff9 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.html
@@ -176,7 +176,7 @@
 <span class="sourceLineNo">168</span><a name="line.168"></a>
 <span class="sourceLineNo">169</span>  /** An internal constructor. */<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  protected StoreScanner(Store store, Scan scan, final ScanInfo scanInfo,<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      final NavigableSet&lt;byte[]&gt; columns, long readPt, boolean cacheBlocks) {<a name="line.171"></a>
+<span class="sourceLineNo">171</span>      final NavigableSet&lt;byte[]&gt; columns, long readPt, boolean cacheBlocks, ScanType scanType) {<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    this.readPt = readPt;<a name="line.172"></a>
 <span class="sourceLineNo">173</span>    this.store = store;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    this.cacheBlocks = cacheBlocks;<a name="line.174"></a>
@@ -198,952 +198,961 @@
 <span class="sourceLineNo">190</span>    if (get) {<a name="line.190"></a>
 <span class="sourceLineNo">191</span>      this.readType = Scan.ReadType.PREAD;<a name="line.191"></a>
 <span class="sourceLineNo">192</span>      this.scanUsePread = true;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    } else {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      if (scan.getReadType() == Scan.ReadType.DEFAULT) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>        this.readType = scanInfo.isUsePread() ? Scan.ReadType.PREAD : Scan.ReadType.DEFAULT;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      } else {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>        this.readType = scan.getReadType();<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      }<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      // Always start with pread unless user specific stream. Will change to stream later if<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      // readType is default if the scan keeps running for a long time.<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      this.scanUsePread = this.readType != Scan.ReadType.STREAM;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    }<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    this.preadMaxBytes = scanInfo.getPreadMaxBytes();<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    this.cellsPerHeartbeatCheck = scanInfo.getCellsPerTimeoutCheck();<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    // Parallel seeking is on if the config allows and more there is more than one store file.<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    if (this.store != null &amp;&amp; this.store.getStorefilesCount() &gt; 1) {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      RegionServerServices rsService = ((HStore) store).getHRegion().getRegionServerServices();<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      if (rsService != null &amp;&amp; scanInfo.isParallelSeekEnabled()) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        this.parallelSeekEnabled = true;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        this.executor = rsService.getExecutorService();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      }<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private void addCurrentScanners(List&lt;? extends KeyValueScanner&gt; scanners) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    this.currentScanners.addAll(scanners);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  }<a name="line.217"></a>
-<span class="sourceLineNo">218</span><a name="line.218"></a>
-<span class="sourceLineNo">219</span>  /**<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   * Opens a scanner across memstore, snapshot, and all StoreFiles. Assumes we<a name="line.220"></a>
-<span class="sourceLineNo">221</span>   * are not in a compaction.<a name="line.221"></a>
-<span class="sourceLineNo">222</span>   *<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   * @param store who we scan<a name="line.223"></a>
-<span class="sourceLineNo">224</span>   * @param scan the spec<a name="line.224"></a>
-<span class="sourceLineNo">225</span>   * @param columns which columns we are scanning<a name="line.225"></a>
-<span class="sourceLineNo">226</span>   * @throws IOException<a name="line.226"></a>
-<span class="sourceLineNo">227</span>   */<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public StoreScanner(Store store, ScanInfo scanInfo, Scan scan, final NavigableSet&lt;byte[]&gt; columns,<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      long readPt)<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  throws IOException {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    this(store, scan, scanInfo, columns, readPt, scan.getCacheBlocks());<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    if (columns != null &amp;&amp; scan.isRaw()) {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      throw new DoNotRetryIOException("Cannot specify any column for a raw scan");<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    }<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    matcher = UserScanQueryMatcher.create(scan, scanInfo, columns, oldestUnexpiredTS, now,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      store.getCoprocessorHost());<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>    this.store.addChangedReaderObserver(this);<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    try {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      // Pass columns to try to filter out unnecessary StoreFiles.<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      List&lt;KeyValueScanner&gt; scanners = getScannersNoCompaction();<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>      // Seek all scanners to the start of the Row (or if the exact matching row<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      // key does not exist, then to the start of the next matching Row).<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      // Always check bloom filter to optimize the top row seek for delete<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      // family marker.<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      seekScanners(scanners, matcher.getStartKey(), explicitColumnQuery &amp;&amp; lazySeekEnabledGlobally,<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        parallelSeekEnabled);<a name="line.249"></a>
-<span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>      // set storeLimit<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      this.storeLimit = scan.getMaxResultsPerColumnFamily();<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>      // set rowOffset<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      this.storeOffset = scan.getRowOffsetPerColumnFamily();<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      addCurrentScanners(scanners);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      // Combine all seeked scanners with a heap<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      resetKVHeap(scanners, store.getComparator());<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    } catch (IOException e) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      // remove us from the HStore#changedReaderObservers here or we'll have no chance to<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      // and might cause memory leak<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      this.store.deleteChangedReaderObserver(this);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      throw e;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  }<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  /**<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   * Used for compactions.&lt;p&gt;<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   *<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * Opens a scanner across specified StoreFiles.<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param store who we scan<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @param scan the spec<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * @param scanners ancillary scanners<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * @param smallestReadPoint the readPoint that we should use for tracking<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   *          versions<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   */<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  public StoreScanner(Store store, ScanInfo scanInfo, Scan scan,<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      List&lt;? extends KeyValueScanner&gt; scanners, ScanType scanType,<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      long smallestReadPoint, long earliestPutTs) throws IOException {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    this(store, scanInfo, scan, scanners, scanType, smallestReadPoint, earliestPutTs, null, null);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  }<a name="line.281"></a>
-<span class="sourceLineNo">282</span><a name="line.282"></a>
-<span class="sourceLineNo">283</span>  /**<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * Used for compactions that drop deletes from a limited range of rows.&lt;p&gt;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   *<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * Opens a scanner across specified StoreFiles.<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   * @param store who we scan<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * @param scan the spec<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * @param scanners ancillary scanners<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   * @param smallestReadPoint the readPoint that we should use for tracking versions<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   * @param dropDeletesFromRow The inclusive left bound of the range; can be EMPTY_START_ROW.<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * @param dropDeletesToRow The exclusive right bound of the range; can be EMPTY_END_ROW.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   */<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  public StoreScanner(Store store, ScanInfo scanInfo, Scan scan,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      List&lt;? extends KeyValueScanner&gt; scanners, long smallestReadPoint, long earliestPutTs,<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      byte[] dropDeletesFromRow, byte[] dropDeletesToRow) throws IOException {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    this(store, scanInfo, scan, scanners, ScanType.COMPACT_RETAIN_DELETES, smallestReadPoint,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        earliestPutTs, dropDeletesFromRow, dropDeletesToRow);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  }<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span>  private StoreScanner(Store store, ScanInfo scanInfo, Scan scan,<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      List&lt;? extends KeyValueScanner&gt; scanners, ScanType scanType, long smallestReadPoint,<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      long earliestPutTs, byte[] dropDeletesFromRow, byte[] dropDeletesToRow) throws IOException {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    this(store, scan, scanInfo, null,<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        ((HStore) store).getHRegion().getReadPoint(IsolationLevel.READ_COMMITTED), false);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    if (scan.hasFilter() || (scan.getStartRow() != null &amp;&amp; scan.getStartRow().length &gt; 0)<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        || (scan.getStopRow() != null &amp;&amp; scan.getStopRow().length &gt; 0)<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        || !scan.getTimeRange().isAllTime()) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      // use legacy query matcher since we do not consider the scan object in our code. Only used to<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      // keep compatibility for coprocessor.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      matcher = LegacyScanQueryMatcher.create(scan, scanInfo, null, scanType, smallestReadPoint,<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        earliestPutTs, oldestUnexpiredTS, now, dropDeletesFromRow, dropDeletesToRow,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        store.getCoprocessorHost());<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    } else {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      matcher = CompactionScanQueryMatcher.create(scanInfo, scanType, smallestReadPoint,<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        earliestPutTs, oldestUnexpiredTS, now, dropDeletesFromRow, dropDeletesToRow,<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        store.getCoprocessorHost());<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>    // Filter the list of scanners using Bloom filters, time range, TTL, etc.<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    scanners = selectScannersFrom(scanners);<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>    // Seek all scanners to the initial key<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    seekScanners(scanners, matcher.getStartKey(), false, parallelSeekEnabled);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    addCurrentScanners(scanners);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    // Combine all seeked scanners with a heap<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    resetKVHeap(scanners, store.getComparator());<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  }<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span>  @VisibleForTesting<a name="line.330"></a>
-<span class="sourceLineNo">331</span>  StoreScanner(final Scan scan, ScanInfo scanInfo,<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      ScanType scanType, final NavigableSet&lt;byte[]&gt; columns,<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      final List&lt;? extends KeyValueScanner&gt; scanners) throws IOException {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    this(scan, scanInfo, scanType, columns, scanners,<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        HConstants.LATEST_TIMESTAMP,<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        // 0 is passed as readpoint because the test bypasses Store<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        0);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  @VisibleForTesting<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  StoreScanner(final Scan scan, ScanInfo scanInfo,<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    ScanType scanType, final NavigableSet&lt;byte[]&gt; columns,<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    final List&lt;? extends KeyValueScanner&gt; scanners, long earliestPutTs)<a name="line.343"></a>
-<span class="sourceLineNo">344</span>        throws IOException {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    this(scan, scanInfo, scanType, columns, scanners, earliestPutTs,<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      // 0 is passed as readpoint because the test bypasses Store<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      0);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>  public StoreScanner(final Scan scan, ScanInfo scanInfo, ScanType scanType,<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      final NavigableSet&lt;byte[]&gt; columns, final List&lt;? extends KeyValueScanner&gt; scanners, long earliestPutTs,<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      long readPt) throws IOException {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    this(null, scan, scanInfo, columns, readPt,<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        scanType == ScanType.USER_SCAN ? scan.getCacheBlocks() : false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    if (scanType == ScanType.USER_SCAN) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      this.matcher = UserScanQueryMatcher.create(scan, scanInfo, columns, oldestUnexpiredTS, now,<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        null);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    } else {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      if (scan.hasFilter() || (scan.getStartRow() != null &amp;&amp; scan.getStartRow().length &gt; 0)<a name="line.359"></a>
-<span class="sourceLineNo">360</span>          || (scan.getStopRow() != null &amp;&amp; scan.getStopRow().length &gt; 0)<a name="line.360"></a>
-<span class="sourceLineNo">361</span>          || !scan.getTimeRange().isAllTime() || columns != null) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>        // use legacy query matcher since we do not consider the scan object in our code. Only used<a name="line.362"></a>
-<span class="sourceLineNo">363</span>        // to keep compatibility for coprocessor.<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        matcher = LegacyScanQueryMatcher.create(scan, scanInfo, columns, scanType, Long.MAX_VALUE,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>          earliestPutTs, oldestUnexpiredTS, now, null, null, store.getCoprocessorHost());<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      } else {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        this.matcher = CompactionScanQueryMatcher.create(scanInfo, scanType, Long.MAX_VALUE,<a name="line.367"></a>
-<span class="sourceLineNo">368</span>          earliestPutTs, oldestUnexpiredTS, now, null, null, null);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>    // Seek all scanners to the initial key<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    seekScanners(scanners, matcher.getStartKey(), false, parallelSeekEnabled);<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    addCurrentScanners(scanners);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    resetKVHeap(scanners, scanInfo.getComparator());<a name="line.375"></a>
-<span class="sourceLineNo">376</span>  }<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>  /**<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   * Get a filtered list of scanners. Assumes we are not in a compaction.<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   * @return list of scanners to seek<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   */<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  private List&lt;KeyValueScanner&gt; getScannersNoCompaction() throws IOException {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    return selectScannersFrom(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      store.getScanners(cacheBlocks, scanUsePread, false, matcher, scan.getStartRow(),<a name="line.384"></a>
-<span class="sourceLineNo">385</span>        scan.includeStartRow(), scan.getStopRow(), scan.includeStopRow(), this.readPt));<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  /**<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   * Seek the specified scanners with the given key<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   * @param scanners<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   * @param seekKey<a name="line.391"></a>
-<span class="sourceLineNo">392</span>   * @param isLazy true if using lazy seek<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * @param isParallelSeek true if using parallel seek<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * @throws IOException<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  protected void seekScanners(List&lt;? extends KeyValueScanner&gt; scanners,<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      Cell seekKey, boolean isLazy, boolean isParallelSeek)<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      throws IOException {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    // Seek all scanners to the start of the Row (or if the exact matching row<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    // key does not exist, then to the start of the next matching Row).<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    // Always check bloom filter to optimize the top row seek for delete<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    // family marker.<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    if (isLazy) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      for (KeyValueScanner scanner : scanners) {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        scanner.requestSeek(seekKey, false, true);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      if (!isParallelSeek) {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>        long totalScannersSoughtBytes = 0;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        for (KeyValueScanner scanner : scanners) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          if (matcher.isUserScan() &amp;&amp; totalScannersSoughtBytes &gt;= maxRowSize) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>            throw new RowTooBigException("Max row size allowed: " + maxRowSize<a name="line.412"></a>
-<span class="sourceLineNo">413</span>              + ", but row is bigger than that");<a name="line.413"></a>
-<span class="sourceLineNo">414</span>          }<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          scanner.seek(seekKey);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>          Cell c = scanner.peek();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>          if (c != null) {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>            totalScannersSoughtBytes += CellUtil.estimatedSerializedSizeOf(c);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          }<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        }<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      } else {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        parallelSeek(scanners, seekKey);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>  protected void resetKVHeap(List&lt;? extends KeyValueScanner&gt; scanners,<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      CellComparator comparator) throws IOException {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    // Combine all seeked scanners with a heap<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    heap = new KeyValueHeap(scanners, comparator);<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
-<span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>  /**<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   * Filters the given list of scanners using Bloom filter, time range, and<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   * TTL.<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * &lt;p&gt;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * Will be overridden by testcase so declared as protected.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  @VisibleForTesting<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  protected List&lt;KeyValueScanner&gt; selectScannersFrom(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      final List&lt;? extends KeyValueScanner&gt; allScanners) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    boolean memOnly;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    boolean filesOnly;<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    if (scan instanceof InternalScan) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      InternalScan iscan = (InternalScan)scan;<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      memOnly = iscan.isCheckOnlyMemStore();<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      filesOnly = iscan.isCheckOnlyStoreFiles();<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    } else {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      memOnly = false;<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      filesOnly = false;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>    List&lt;KeyValueScanner&gt; scanners = new ArrayList&lt;&gt;(allScanners.size());<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span>    // We can only exclude store files based on TTL if minVersions is set to 0.<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    // Otherwise, we might have to return KVs that have technically expired.<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    long expiredTimestampCutoff = minVersions == 0 ? oldestUnexpiredTS: Long.MIN_VALUE;<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>    // include only those scan files which pass all filters<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    for (KeyValueScanner kvs : allScanners) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      boolean isFile = kvs.isFileScanner();<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      if ((!isFile &amp;&amp; filesOnly) || (isFile &amp;&amp; memOnly)) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        continue;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>      if (kvs.shouldUseScanner(scan, store, expiredTimestampCutoff)) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        scanners.add(kvs);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      } else {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>        kvs.close();<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      }<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    return scanners;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>  }<a name="line.473"></a>
+<span class="sourceLineNo">193</span>    } else if(scanType != scanType.USER_SCAN) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      // For compaction scanners never use Pread as already we have stream based scanners on the<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      // store files to be compacted<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      this.readType = Scan.ReadType.STREAM;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      this.scanUsePread = false;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    } else {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      if (scan.getReadType() == Scan.ReadType.DEFAULT) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        this.readType = scanInfo.isUsePread() ? Scan.ReadType.PREAD : Scan.ReadType.DEFAULT;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      } else {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        this.readType = scan.getReadType();<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      // Always start with pread unless user specific stream. Will change to stream later if<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      // readType is default if the scan keeps running for a long time.<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      this.scanUsePread = this.readType != Scan.ReadType.STREAM;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    this.preadMaxBytes = scanInfo.getPreadMaxBytes();<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    this.cellsPerHeartbeatCheck = scanInfo.getCellsPerTimeoutCheck();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // Parallel seeking is on if the config allows and more there is more than one store file.<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    if (this.store != null &amp;&amp; this.store.getStorefilesCount() &gt; 1) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      RegionServerServices rsService = ((HStore) store).getHRegion().getRegionServerServices();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      if (rsService != null &amp;&amp; scanInfo.isParallelSeekEnabled()) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        this.parallelSeekEnabled = true;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        this.executor = rsService.getExecutorService();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      }<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>  private void addCurrentScanners(List&lt;? extends KeyValueScanner&gt; scanners) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.currentScanners.addAll(scanners);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  }<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  /**<a name="line.224"></a>
+<span class="sourceLineNo">225</span>   * Opens a scanner across memstore, snapshot, and all StoreFiles. Assumes we<a name="line.225"></a>
+<span class="sourceLineNo">226</span>   * are not in a compaction.<a name="line.226"></a>
+<span class="sourceLineNo">227</span>   *<a name="line.227"></a>
+<span class="sourceLineNo">228</span>   * @param store who we scan<a name="line.228"></a>
+<span class="sourceLineNo">229</span>   * @param scan the spec<a name="line.229"></a>
+<span class="sourceLineNo">230</span>   * @param columns which columns we are scanning<a name="line.230"></a>
+<span class="sourceLineNo">231</span>   * @throws IOException<a name="line.231"></a>
+<span class="sourceLineNo">232</span>   */<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public StoreScanner(Store store, ScanInfo scanInfo, Scan scan, final NavigableSet&lt;byte[]&gt; columns,<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      long readPt)<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    this(store, scan, scanInfo, columns, readPt, scan.getCacheBlocks(), ScanType.USER_SCAN);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    if (columns != null &amp;&amp; scan.isRaw()) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      throw new DoNotRetryIOException("Cannot specify any column for a raw scan");<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    }<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    matcher = UserScanQueryMatcher.create(scan, scanInfo, columns, oldestUnexpiredTS, now,<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      store.getCoprocessorHost());<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>    this.store.addChangedReaderObserver(this);<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    try {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      // Pass columns to try to filter out unnecessary StoreFiles.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      List&lt;KeyValueScanner&gt; scanners = getScannersNoCompaction();<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>      // Seek all scanners to the start of the Row (or if the exact matching row<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      // key does not exist, then to the start of the next matching Row).<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      // Always check bloom filter to optimize the top row seek for delete<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      // family marker.<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      seekScanners(scanners, matcher.getStartKey(), explicitColumnQuery &amp;&amp; lazySeekEnabledGlobally,<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        parallelSeekEnabled);<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>      // set storeLimit<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      this.storeLimit = scan.getMaxResultsPerColumnFamily();<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>      // set rowOffset<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      this.storeOffset = scan.getRowOffsetPerColumnFamily();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      addCurrentScanners(scanners);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      // Combine all seeked scanners with a heap<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      resetKVHeap(scanners, store.getComparator());<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    } catch (IOException e) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      // remove us from the HStore#changedReaderObservers here or we'll have no chance to<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      // and might cause memory leak<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      this.store.deleteChangedReaderObserver(this);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      throw e;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  }<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>  /**<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   * Used for compactions.&lt;p&gt;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   *<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   * Opens a scanner across specified StoreFiles.<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   * @param store who we scan<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   * @param scan the spec<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   * @param scanners ancillary scanners<a name="line.278"></a>
+<span class="sourceLineNo">279</span>   * @param smallestReadPoint the readPoint that we should use for tracking<a name="line.279"></a>
+<span class="sourceLineNo">280</span>   *          versions<a name="line.280"></a>
+<span class="sourceLineNo">281</span>   */<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  public StoreScanner(Store store, ScanInfo scanInfo, Scan scan,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      List&lt;? extends KeyValueScanner&gt; scanners, ScanType scanType,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      long smallestReadPoint, long earliestPutTs) throws IOException {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    this(store, scanInfo, scan, scanners, scanType, smallestReadPoint, earliestPutTs, null, null);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  /**<a name="line.288"></a>
+<span class="sourceLineNo">289</span>   * Used for compactions that drop deletes from a limited range of rows.&lt;p&gt;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>   *<a name="line.290"></a>
+<span class="sourceLineNo">291</span>   * Opens a scanner across specified StoreFiles.<a name="line.291"></a>
+<span class="sourceLineNo">292</span>   * @param store who we scan<a name="line.292"></a>
+<span class="sourceLineNo">293</span>   * @param scan the spec<a name="line.293"></a>
+<span class="sourceLineNo">294</span>   * @param scanners ancillary scanners<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * @param smallestReadPoint the readPoint that we should use for tracking versions<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   * @param dropDeletesFromRow The inclusive left bound of the range; can be EMPTY_START_ROW.<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   * @param dropDeletesToRow The exclusive right bound of the range; can be EMPTY_END_ROW.<a name="line.297"></a>
+<span class="sourceLineNo">298</span>   */<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public StoreScanner(Store store, ScanInfo scanInfo, Scan scan,<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      List&lt;? extends KeyValueScanner&gt; scanners, long smallestReadPoint, long earliestPutTs,<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      byte[] dropDeletesFromRow, byte[] dropDeletesToRow) throws IOException {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    this(store, scanInfo, scan, scanners, ScanType.COMPACT_RETAIN_DELETES, smallestReadPoint,<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        earliestPutTs, dropDeletesFromRow, dropDeletesToRow);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>  }<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span>  private StoreScanner(Store store, ScanInfo scanInfo, Scan scan,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      List&lt;? extends KeyValueScanner&gt; scanners, ScanType scanType, long smallestReadPoint,<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      long earliestPutTs, byte[] dropDeletesFromRow, byte[] dropDeletesToRow) throws IOException {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    this(store, scan, scanInfo, null,<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        ((HStore) store).getHRegion().getReadPoint(IsolationLevel.READ_COMMITTED), false, scanType);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    if (scan.hasFilter() || (scan.getStartRow() != null &amp;&amp; scan.getStartRow().length &gt; 0)<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        || (scan.getStopRow() != null &amp;&amp; scan.getStopRow().length &gt; 0)<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        || !scan.getTimeRange().isAllTime()) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      // use legacy query matcher since we do not consider the scan object in our code. Only used to<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      // keep compatibility for coprocessor.<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      matcher = LegacyScanQueryMatcher.create(scan, scanInfo, null, scanType, smallestReadPoint,<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        earliestPutTs, oldestUnexpiredTS, now, dropDeletesFromRow, dropDeletesToRow,<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        store.getCoprocessorHost());<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    } else {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      matcher = CompactionScanQueryMatcher.create(scanInfo, scanType, smallestReadPoint,<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        earliestPutTs, oldestUnexpiredTS, now, dropDeletesFromRow, dropDeletesToRow,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        store.getCoprocessorHost());<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span>    // Filter the list of scanners using Bloom filters, time range, TTL, etc.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    scanners = selectScannersFrom(scanners);<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>    // Seek all scanners to the initial key<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    seekScanners(scanners, matcher.getStartKey(), false, parallelSeekEnabled);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    addCurrentScanners(scanners);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    // Combine all seeked scanners with a heap<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    resetKVHeap(scanners, store.getComparator());<a name="line.332"></a>
+<span class="sourceLineNo">333</span>  }<a name="line.333"></a>
+<span class="sourceLineNo">334</span><a name="line.334"></a>
+<span class="sourceLineNo">335</span>  @VisibleForTesting<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  StoreScanner(final Scan scan, ScanInfo scanInfo,<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      ScanType scanType, final NavigableSet&lt;byte[]&gt; columns,<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      final List&lt;? extends KeyValueScanner&gt; scanners) throws IOException {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    this(scan, scanInfo, scanType, columns, scanners,<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        HConstants.LATEST_TIMESTAMP,<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        // 0 is passed as readpoint because the test bypasses Store<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        0);<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>  @VisibleForTesting<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  StoreScanner(final Scan scan, ScanInfo scanInfo,<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    ScanType scanType, final NavigableSet&lt;byte[]&gt; columns,<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    final List&lt;? extends KeyValueScanner&gt; scanners, long earliestPutTs)<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        throws IOException {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    this(scan, scanInfo, scanType, columns, scanners, earliestPutTs,<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      // 0 is passed as readpoint because the test bypasses Store<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      0);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  public StoreScanner(final Scan scan, ScanInfo scanInfo, ScanType scanType,<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      final NavigableSet&lt;byte[]&gt; columns, final List&lt;? extends KeyValueScanner&gt; scanners, long earliestPutTs,<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      long readPt) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    this(null, scan, scanInfo, columns, readPt,<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        scanType == ScanType.USER_SCAN ? scan.getCacheBlocks() : false, scanType);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    if (scanType == ScanType.USER_SCAN) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      this.matcher = UserScanQueryMatcher.create(scan, scanInfo, columns, oldestUnexpiredTS, now,<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        null);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    } else {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      if (scan.hasFilter() || (scan.getStartRow() != null &amp;&amp; scan.getStartRow().length &gt; 0)<a name="line.364"></a>
+<span class="sourceLineNo">365</span>          || (scan.getStopRow() != null &amp;&amp; scan.getStopRow().length &gt; 0)<a name="line.365"></a>
+<span class="sourceLineNo">366</span>          || !scan.getTimeRange().isAllTime() || columns != null) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        // use legacy query matcher since we do not consider the scan object in our code. Only used<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        // to keep compatibility for coprocessor.<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        matcher = LegacyScanQueryMatcher.create(scan, scanInfo, columns, scanType, Long.MAX_VALUE,<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          earliestPutTs, oldestUnexpiredTS, now, null, null, store.getCoprocessorHost());<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      } else {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        this.matcher = CompactionScanQueryMatcher.create(scanInfo, scanType, Long.MAX_VALUE,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>          earliestPutTs, oldestUnexpiredTS, now, null, null, null);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>    // Seek all scanners to the initial key<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    seekScanners(scanners, matcher.getStartKey(), false, parallelSeekEnabled);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    addCurrentScanners(scanners);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    resetKVHeap(scanners, scanInfo.getComparator());<a name="line.380"></a>
+<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>  /**<a name="line.383"></a>
+<span class="sourceLineNo">384</span>   * Get a filtered list of scanners. Assumes we are not in a compaction.<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   * @return list of scanners to seek<a name="line.385"></a>
+<span class="sourceLineNo">386</span>   */<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  private List&lt;KeyValueScanner&gt; getScannersNoCompaction() throws IOException {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    return selectScannersFrom(<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      store.getScanners(cacheBlocks, scanUsePread, false, matcher, scan.getStartRow(),<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        scan.includeStartRow(), scan.getStopRow(), scan.includeStopRow(), this.readPt));<a name="line.390"></a>
+<span class="sourceLineNo">391</span>  }<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>  @VisibleForTesting<a name="line.393"></a>
+<span class="sourceLineNo">394</span>  boolean isScanUsePread() {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    return this.scanUsePread;<a name="line.395"></a>
+<span class="sourceLineNo">396</span>  }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  /**<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   * Seek the specified scanners with the given key<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * @param scanners<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   * @param seekKey<a name="line.400"></a>
+<span class="sourceLineNo">401</span>   * @param isLazy true if using lazy seek<a name="line.401"></a>
+<span class="sourceLineNo">402</span>   * @param isParallelSeek true if using parallel seek<a name="line.402"></a>
+<span class="sourceLineNo">403</span>   * @throws IOException<a name="line.403"></a>
+<span class="sourceLineNo">404</span>   */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>  protected void seekScanners(List&lt;? extends KeyValueScanner&gt; scanners,<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      Cell seekKey, boolean isLazy, boolean isParallelSeek)<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      throws IOException {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    // Seek all scanners to the start of the Row (or if the exact matching row<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    // key does not exist, then to the start of the next matching Row).<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    // Always check bloom filter to optimize the top row seek for delete<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    // family marker.<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    if (isLazy) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      for (KeyValueScanner scanner : scanners) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        scanner.requestSeek(seekKey, false, true);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      }<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    } else {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      if (!isParallelSeek) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        long totalScannersSoughtBytes = 0;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        for (KeyValueScanner scanner : scanners) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>          if (matcher.isUserScan() &amp;&amp; totalScannersSoughtBytes &gt;= maxRowSize) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>            throw new RowTooBigException("Max row size allowed: " + maxRowSize<a name="line.421"></a>
+<span class="sourceLineNo">422</span>              + ", but row is bigger than that");<a name="line.422"></a>
+<span class="sourceLineNo">423</span>          }<a name="line.423"></a>
+<span class="sourceLineNo">424</span>          scanner.seek(seekKey);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>          Cell c = scanner.peek();<a name="line.425"></a>
+<span class="sourceLineNo">426</span>          if (c != null) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>            totalScannersSoughtBytes += CellUtil.estimatedSerializedSizeOf(c);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>          }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      } else {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        parallelSeek(scanners, seekKey);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      }<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>  protected void resetKVHeap(List&lt;? extends KeyValueScanner&gt; scanners,<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      CellComparator comparator) throws IOException {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    // Combine all seeked scanners with a heap<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    heap = new KeyValueHeap(scanners, comparator);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>  }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>  /**<a name="line.442"></a>
+<span class="sourceLineNo">443</span>   * Filters the given list of scanners using Bloom filter, time range, and<a name="line.443"></a>
+<span class="sourceLineNo">444</span>   * TTL.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   * &lt;p&gt;<a name="line.445"></a>
+<span class="sourceLineNo">446</span>   * Will be overridden by testcase so declared as protected.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>   */<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  @VisibleForTesting<a name="line.448"></a>
+<span class="sourceLineNo">449</span>  protected List&lt;KeyValueScanner&gt; selectScannersFrom(<a name="line.449"></a>
+<span class="sourceLineNo">450</span>      final List&lt;? extends KeyValueScanner&gt; allScanners) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>    boolean memOnly;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    boolean filesOnly;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    if (scan instanceof InternalScan) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      InternalScan iscan = (InternalScan)scan;<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      memOnly = iscan.isCheckOnlyMemStore();<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      filesOnly = iscan.isCheckOnlyStoreFiles();<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    } else {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      memOnly = false;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>      filesOnly = false;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>    }<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>    List&lt;KeyValueScanner&gt; scanners = new ArrayList&lt;&gt;(allScanners.size());<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>    // We can only exclude store files based on TTL if minVersions is set to 0.<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    // Otherwise, we might have to return KVs that have technically expired.<a name="line.465"></a>
+<span class="sourceLineNo">466</span>    long expiredTimestampCutoff = minVersions == 0 ? oldestUnexpiredTS: Long.MIN_VALUE;<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>    // include only those scan files which pass all filters<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    for (KeyValueScanner kvs : allScanners) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      boolean isFile = kvs.isFileScanner();<a name="line.470"></a>
+<span class="sourceLineNo">471</span>      if ((!isFile &amp;&amp; filesOnly) || (isFile &amp;&amp; memOnly)) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        continue;<a name="line.472"></a>
+<span class="sourceLineNo">473</span>      }<a name="line.473"></a>
 <span class="sourceLineNo">474</span><a name="line.474"></a>
-<span class="sourceLineNo">475</span>  @Override<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  public Cell peek() {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    return heap != null ? heap.peek() : null;<a name="line.477"></a>
-<span class="sourceLineNo">478</span>  }<a name="line.478"></a>
-<span class="sourceLineNo">479</span><a name="line.479"></a>
-<span class="sourceLineNo">480</span>  @Override<a name="line.480"></a>
-<span class="sourceLineNo">481</span>  public KeyValue next() {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    // throw runtime exception perhaps?<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    throw new RuntimeException("Never call StoreScanner.next()");<a name="line.483"></a>
-<span class="sourceLineNo">484</span>  }<a name="line.484"></a>
-<span class="sourceLineNo">485</span><a name="line.485"></a>
-<span class="sourceLineNo">486</span>  @Override<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  public void close() {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    close(true);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  }<a name="line.489"></a>
-<span class="sourceLineNo">490</span><a name="line.490"></a>
-<span class="sourceLineNo">491</span>  private void close(boolean withDelayedScannersClose) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    if (this.closing) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      return;<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    if (withDelayedScannersClose) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      this.closing = true;<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    }<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // Under test, we dont have a this.store<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    if (this.store != null) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      this.store.deleteChangedReaderObserver(this);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    }<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    if (withDelayedScannersClose) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      clearAndClose(scannersForDelayedClose);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      clearAndClose(memStoreScannersAfterFlush);<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      if (this.heap != null) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        this.heap.close();<a name="line.506"></a>
-<span class="sourceLineNo">507</span>        this.currentScanners.clear();<a name="line.507"></a>
-<span class="sourceLineNo">508</span>        this.heap = null; // CLOSED!<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      }<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    } else {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      if (this.heap != null) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        this.scannersForDelayedClose.add(this.heap);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        this.currentScanners.clear();<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        this.heap = null;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span>    }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>  @Override<a name="line.519"></a>
-<span class="sourceLineNo">520</span>  public boolean seek(Cell key) throws IOException {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    if (checkFlushed()) {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      reopenAfterFlush();<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    }<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    return this.heap.seek(key);<a name="line.524"></a>
-<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span>  @Override<a name="line.527"></a>
-<span class="sourceLineNo">528</span>  public boolean next(List&lt;Cell&gt; outResult) throws IOException {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    return next(outResult, NoLimitScannerContext.getInstance());<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>  /**<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * Get the next row of values from this Store.<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @param outResult<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * @param scannerContext<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   * @return true if there are more rows, false if scanner is done<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   */<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  @Override<a name="line.538"></a>
-<span class="sourceLineNo">539</span>  public boolean next(List&lt;Cell&gt; outResult, ScannerContext scannerContext) throws IOException {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    if (scannerContext == null) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      throw new IllegalArgumentException("Scanner context cannot be null");<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    }<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    if (checkFlushed() &amp;&amp; reopenAfterFlush()) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      return scannerContext.setScannerState(NextState.MORE_VALUES).hasMoreValues();<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    }<a name="line.545"></a>
-<span class="sourceLineNo">546</span><a name="line.546"></a>
-<span class="sourceLineNo">547</span>    // if the heap was left null, then the scanners had previously run out anyways, close and<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    // return.<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    if (this.heap == null) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      // By this time partial close should happened because already heap is null<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      close(false);// Do all cleanup except heap.close()<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    }<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
-<span class="sourceLineNo">555</span>    Cell cell = this.heap.peek();<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    if (cell == null) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      close(false);// Do all cleanup except heap.close()<a name="line.557"></a>
-<span class="sourceLineNo">558</span>      return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    }<a name="line.559"></a>
-<span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>    // only call setRow if the row changes; avoids confusing the query matcher<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    // if scanning intra-row<a name="line.562"></a>
+<span class="sourceLineNo">475</span>      if (kvs.shouldUseScanner(scan, store, expiredTimestampCutoff)) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        scanners.add(kvs);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      } else {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        kvs.close();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    }<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    return scanners;<a name="line.481"></a>
+<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
+<span class="sourceLineNo">483</span><a name="line.483"></a>
+<span class="sourceLineNo">484</span>  @Override<a name="line.484"></a>
+<span class="sourceLineNo">485</span>  public Cell peek() {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    return heap != null ? heap.peek() : null;<a name="line.486"></a>
+<span class="sourceLineNo">487</span>  }<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>  @Override<a name="line.489"></a>
+<span class="sourceLineNo">490</span>  public KeyValue next() {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    // throw runtime exception perhaps?<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    throw new RuntimeException("Never call StoreScanner.next()");<a name="line.492"></a>
+<span class="sourceLineNo">493</span>  }<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span>  @Override<a name="line.495"></a>
+<span class="sourceLineNo">496</span>  public void close() {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    close(true);<a name="line.497"></a>
+<span class="sourceLineNo">498</span>  }<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>  private void close(boolean withDelayedScannersClose) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    if (this.closing) {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      return;<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    }<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    if (withDelayedScannersClose) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      this.closing = true;<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
+<span class="sourceLineNo">507</span>    // Under test, we dont have a this.store<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    if (this.store != null) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>      this.store.deleteChangedReaderObserver(this);<a name="line.509"></a>
+<span class="sourceLineNo">510</span>    }<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    if (withDelayedScannersClose) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>      clearAndClose(scannersForDelayedClose);<a name="line.512"></a>
+<span class="sourceLineNo">513</span>      clearAndClose(memStoreScannersAfterFlush);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>      if (this.heap != null) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        this.heap.close();<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        this.currentScanners.clear();<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        this.heap = null; // CLOSED!<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      }<a name="line.518"></a>
+<span class="sourceLineNo">519</span>    } else {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      if (this.heap != null) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>        this.scannersForDelayedClose.add(this.heap);<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        this.currentScanners.clear();<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        this.heap = null;<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    }<a name="line.525"></a>
+<span class="sourceLineNo">526</span>  }<a name="line.526"></a>
+<span class="sourceLineNo">527</span><a name="line.527"></a>
+<span class="sourceLineNo">528</span>  @Override<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  public boolean seek(Cell key) throws IOException {<a name="line.529"></a>
+<span class="sourceLineNo">530</span>    if (checkFlushed()) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>      reopenAfterFlush();<a name="line.531"></a>
+<span class="sourceLineNo">532</span>    }<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    return this.heap.seek(key);<a name="line.533"></a>
+<span class="sourceLineNo">534</span>  }<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>  @Override<a name="line.536"></a>
+<span class="sourceLineNo">537</span>  public boolean next(List&lt;Cell&gt; outResult) throws IOException {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    return next(outResult, NoLimitScannerContext.getInstance());<a name="line.538"></a>
+<span class="sourceLineNo">539</span>  }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>  /**<a name="line.541"></a>
+<span class="sourceLineNo">542</span>   * Get the next row of values from this Store.<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   * @param outResult<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   * @param scannerContext<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * @return true if there are more rows, false if scanner is done<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   */<a name="line.546"></a>
+<span class="sourceLineNo">547</span>  @Override<a name="line.547"></a>
+<span class="sourceLineNo">548</span>  public boolean next(List&lt;Cell&gt; outResult, ScannerContext scannerContext) throws IOException {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>    if (scannerContext == null) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>      throw new IllegalArgumentException("Scanner context cannot be null");<a name="line.550"></a>
+<span class="sourceLineNo">551</span>    }<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    if (checkFlushed() &amp;&amp; reopenAfterFlush()) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      return scannerContext.setScannerState(NextState.MORE_VALUES).hasMoreValues();<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>    // if the heap was left null, then the scanners had previously run out anyways, close and<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    // return.<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    if (this.heap == null) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>      // By this time partial close should happened because already heap is null<a name="line.559"></a>
+<span class="sourceLineNo">560</span>      close(false);// Do all cleanup except heap.close()<a name="line.560"></a>
+<span class="sourceLineNo">561</span>      return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    }<a name="line.562"></a>
 <span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>    // If no limits exists in the scope LimitScope.Between_Cells then we are sure we are changing<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    // rows. Else it is possible we are still traversing the same row so we must perform the row<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    // comparison.<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    if (!scannerContext.hasAnyLimit(LimitScope.BETWEEN_CELLS) || matcher.currentRow() == null) {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      this.countPerRow = 0;<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      matcher.setToNewRow(cell);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    }<a name="line.570"></a>
-<span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span>    // Clear progress away unless invoker has indicated it should be kept.<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    if (!scannerContext.getKeepProgress()) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      scannerContext.clearProgress();<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    }<a name="line.575"></a>
-<span class="sourceLineNo">576</span><a name="line.576"></a>
-<span class="sourceLineNo">577</span>    // Only do a sanity-check if store and comparator are available.<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    CellComparator comparator = store != null ? store.getComparator() : null;<a name="line.578"></a>
-<span class="sourceLineNo">579</span><a name="line.579"></a>
-<span class="sourceLineNo">580</span>    int count = 0;<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    long totalBytesRead = 0;<a name="line.581"></a>
-<span class="sourceLineNo">582</span><a name="line.582"></a>
-<span class="sourceLineNo">583</span>    LOOP: do {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>      // Update and check the time limit based on the configured value of cellsPerTimeoutCheck<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      if ((kvsScanned % cellsPerHeartbeatCheck == 0)) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>        scannerContext.updateTimeProgress();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        if (scannerContext.checkTimeLimit(LimitScope.BETWEEN_CELLS)) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          scannerContext.setPeekedCellInHeartbeat(prevCell);<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          return scannerContext.setScannerState(NextState.TIME_LIMIT_REACHED).hasMoreValues();<a name="line.589"></a>
-<span class="sourceLineNo">590</span>        }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      }<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      // Do object compare - we set prevKV from the same heap.<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      if (prevCell != cell) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>        ++kvsScanned;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      }<a name="line.595"></a>
-<span class="sourceLineNo">596</span>      checkScanOrder(prevCell, cell, comparator);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      int cellSize = CellUtil.estimatedSerializedSizeOf(cell);<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      bytesRead += cellSize;<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      prevCell = cell;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      ScanQueryMatcher.MatchCode qcode = matcher.match(cell);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      switch (qcode) {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>        case INCLUDE:<a name="line.602"></a>
-<span class="sourceLineNo">603</span>        case INCLUDE_AND_SEEK_NEXT_ROW:<a name="line.603"></a>
-<span class="sourceLineNo">604</span>        case INCLUDE_AND_SEEK_NEXT_COL:<a name="line.604"></a>
-<span class="sourceLineNo">605</span><a name="line.605"></a>
-<span class="sourceLineNo">606</span>          Filter f = matcher.getFilter();<a name="line.606"></a>
-<span class="sourceLineNo">607</span>          if (f != null) {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>            cell = f.transformCell(cell);<a name="line.608"></a>
-<span class="sourceLineNo">609</span>          }<a name="line.609"></a>
-<span class="sourceLineNo">610</span><a name="line.610"></a>
-<span class="sourceLineNo">611</span>          this.countPerRow++;<a name="line.611"></a>
-<span class="sourceLineNo">612</span>          if (storeLimit &gt; -1 &amp;&amp; this.countPerRow &gt; (storeLimit + storeOffset)) {<a name="line.612"></a>
-<span class="sourceLineNo">613</span>            // do what SEEK_NEXT_ROW does.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>            if (!matcher.moreRowsMayExistAfter(cell)) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>              close(false);// Do all cleanup except heap.close()<a name="line.615"></a>
-<span class="sourceLineNo">616</span>              return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();<a name="line.616"></a>
-<span class="sourceLineNo">617</span>            }<a name="line.617"></a>
-<span class="sourceLineNo">618</span>            matcher.clearCurrentRow();<a name="line.618"></a>
-<span class="sourceLineNo">619</span>            seekToNextRow(cell);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>            break LOOP;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>          }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>          // add to results only if we have skipped #storeOffset kvs<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          // also update metric accordingly<a name="line.624"></a>
-<span class="sourceLineNo">625</span>          if (this.countPerRow &gt; storeOffset) {<a name="line.625"></a>
-<span class="sourceLineNo">626</span>            outResult.add(cell);<a name="line.626"></a>
-<span class="sourceLineNo">627</span><a name="line.627"></a>
-<span class="sourceLineNo">628</span>            // Update local tracking information<a name="line.628"></a>
-<span class="sourceLineNo">629</span>            count++;<a name="line.629"></a>
-<span class="sourceLineNo">630</span>            totalBytesRead += cellSize;<a name="line.630"></a>
+<span class="sourceLineNo">564</span>    Cell cell = this.heap.peek();<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    if (cell == null) {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>      close(false);// Do all cleanup except heap.close()<a name="line.566"></a>
+<span class="sourceLineNo">567</span>      return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    }<a name="line.568"></a>
+<span class="sourceLineNo">569</span><a name="line.569"></a>
+<span class="sourceLineNo">570</span>    // only call setRow if the row changes; avoids confusing the query matcher<a name="line.570"></a>
+<span class="sourceLineNo">571</span>    // if scanning intra-row<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>    // If no limits exists in the scope LimitScope.Between_Cells then we are sure we are changing<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    // rows. Else it is possible we are still traversing the same row so we must perform the row<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    // comparison.<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    if (!scannerContext.hasAnyLimit(LimitScope.BETWEEN_CELLS) || matcher.currentRow() == null) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>      this.countPerRow = 0;<a name="line.577"></a>
+<span class="sourceLineNo">578</span>      matcher.setToNewRow(cell);<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
+<span class="sourceLineNo">580</span><a name="line.580"></a>
+<span class="sourceLineNo">581</span>    // Clear progress away unless invoker has indicated it should be kept.<a name="line.581"></a>
+<span class="sourceLineNo">582</span>    if (!scannerContext.getKeepProgress()) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>      scannerContext.clearProgress();<a name="line.583"></a>
+<span class="sourceLineNo">584</span>    }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>    // Only do a sanity-check if store and comparator are available.<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    CellComparator comparator = store != null ? store.getComparator() : null;<a name="line.587"></a>
+<span class="sourceLineNo">588</span><a name="line.588"></a>
+<span class="sourceLineNo">589</span>    int count = 0;<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    long totalBytesRead = 0;<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>    LOOP: do {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>      // Update and check the time limit based on the configured value of cellsPerTimeoutCheck<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      if ((kvsScanned % cellsPerHeartbeatCheck == 0)) {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        scannerContext.updateTimeProgress();<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        if (scannerContext.checkTimeLimit(LimitScope.BETWEEN_CELLS)) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>          scannerContext.setPeekedCellInHeartbeat(prevCell);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>          return scannerContext.setScannerState(NextState.TIME_LIMIT_REACHED).hasMoreValues();<a name="line.598"></a>
+<span class="sourceLineNo">599</span>        }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      }<a name="line.600"></a>
+<span class="sourceLineNo">601</span>      // Do object compare - we set prevKV from the same heap.<a name="line.601"></a>
+<span class="sourceLineNo">602</span>      if (prevCell != cell) {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        ++kvsScanned;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      }<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      checkScanOrder(prevCell, cell, comparator);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      int cellSize = CellUtil.estimatedSerializedSizeOf(cell);<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      bytesRead += cellSize;<a name="line.607"></a>
+<span class="sourceLineNo">608</span>      prevCell = cell;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      ScanQueryMatcher.MatchCode qcode = matcher.match(cell);<a name="line.609"></a>
+<span class="sourceLineNo">610</span>      switch (qcode) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        case INCLUDE:<a name="line.611"></a>
+<span class="sourceLineNo">612</span>        case INCLUDE_AND_SEEK_NEXT_ROW:<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        case INCLUDE_AND_SEEK_NEXT_COL:<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>          Filter f = matcher.getFilter();<a name="line.615"></a>
+<span class="sourceLineNo">616</span>          if (f != null) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>            cell = f.transformCell(cell);<a name="line.617"></a>
+<span class="sourceLineNo">618</span>          }<a name="line.618"></a>
+<span class="sourceLineNo">619</span><a name="line.619"></a>
+<span class="sourceLineNo">620</span>          this.countPerRow++;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>          if (storeLimit &gt; -1 &amp;&amp; this.countPerRow &gt; (storeLimit + storeOffset)) {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>            // do what SEEK_NEXT_ROW does.<a name="line.622"></a>
+<span class="sourceLineNo">623</span>            if (!matcher.moreRowsMayExistAfter(cell)) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>              close(false);// Do all cleanup except heap.close()<a name="line.624"></a>
+<span class="sourceLineNo">625</span>              return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();<a name="line.625"></a>
+<span class="sourceLineNo">626</span>            }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>            matcher.clearCurrentRow();<a name="line.627"></a>
+<span class="sourceLineNo">628</span>            seekToNextRow(cell);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>            break LOOP;<a name="line.629"></a>
+<span class="sourceLineNo">630</span>          }<a name="line.630"></a>
 <span class="sourceLineNo">

<TRUNCATED>

[18/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
index 38500dd..e1e4110 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
@@ -35,3706 +35,3705 @@
 <span class="sourceLineNo">027</span>import java.net.BindException;<a name="line.27"></a>
 <span class="sourceLineNo">028</span>import java.net.InetAddress;<a name="line.28"></a>
 <span class="sourceLineNo">029</span>import java.net.InetSocketAddress;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.security.PrivilegedExceptionAction;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.ArrayList;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.Collection;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.Collections;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.util.Comparator;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import java.util.HashMap;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import java.util.HashSet;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import java.util.Iterator;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import java.util.List;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import java.util.Map;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import java.util.Objects;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import java.util.Map.Entry;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import java.util.Set;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import java.util.SortedMap;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import java.util.TreeMap;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import java.util.TreeSet;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import java.util.concurrent.ConcurrentMap;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.util.concurrent.ConcurrentSkipListMap;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.util.concurrent.CountDownLatch;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.util.concurrent.TimeUnit;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.util.concurrent.locks.ReentrantReadWriteLock;<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>import javax.management.MalformedObjectNameException;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import javax.management.ObjectName;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import javax.servlet.http.HttpServlet;<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.commons.lang.SystemUtils;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.commons.lang.math.RandomUtils;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.commons.logging.Log;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.commons.logging.LogFactory;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.conf.Configuration;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.fs.FileSystem;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.fs.Path;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.Abortable;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.ChoreService;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.ClockOutOfSyncException;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.CoordinatedStateManager;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.CoordinatedStateManagerFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.HConstants;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.HealthCheckChore;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.PleaseHoldException;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.ScheduledChore;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.ServerName;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.Stoppable;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.TableDescriptors;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.TableName;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.YouAreDeadException;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.ZNodeClearer;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.client.ConnectionUtils;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.client.Put;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.client.RpcRetryingCallerFactory;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.client.locking.EntityLock;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.client.locking.LockServiceClient;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.conf.ConfigurationManager;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.coordination.SplitLogWorkerCoordination;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.exceptions.UnknownProtocolException;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.executor.ExecutorService;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.fs.HFileSystem;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.io.hfile.HFile;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.io.util.MemorySizeUtil;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.ipc.RpcCallContext;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.ipc.RpcServerInterface;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.ipc.ServerRpcController;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.HMaster;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.mob.MobCacheConfig;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.procedure.RegionServerProcedureManagerHost;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.quotas.FileSystemUtilizationChore;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.quotas.QuotaUtil;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.quotas.RegionServerRpcQuotaManager;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.quotas.RegionServerSpaceQuotaManager;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionConfiguration;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionProgress;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.regionserver.handler.CloseMetaHandler;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.regionserver.handler.CloseRegionHandler;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.regionserver.handler.RegionReplicaFlushHandler;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.regionserver.throttle.FlushThroughputControllerFactory;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.regionserver.throttle.ThroughputController;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.regionserver.wal.MetricsWAL;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.regionserver.wal.WALActionsListener;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.replication.regionserver.Replication;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.replication.regionserver.ReplicationLoad;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.security.User;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.*;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceCall;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionStoreSequenceIds;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.Coprocessor;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.Coprocessor.Builder;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionServerInfo;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier.RegionSpecifierType;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUse;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportRequest;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRSFatalErrorRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.trace.SpanReceiverHost;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.util.Addressing;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.util.CompressionTest;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.FSTableDescriptors;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.HasThread;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.util.JSONBean;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.ServerRegionReplicaUtil;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.Sleeper;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.wal.WAL;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.wal.WALFactory;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.zookeeper.ClusterStatusTracker;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.zookeeper.RecoveringRegionWatcher;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.zookeeper.ZKClusterId;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.zookeeper.ZKSplitLog;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hadoop.metrics2.util.MBeans;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hadoop.util.ReflectionUtils;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hadoop.util.StringUtils;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>import org.apache.zookeeper.KeeperException;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.zookeeper.KeeperException.NoNodeException;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.zookeeper.data.Stat;<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>import com.google.common.annotations.VisibleForTesting;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import com.google.common.base.Preconditions;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import com.google.common.collect.Maps;<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>import sun.misc.Signal;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>import sun.misc.SignalHandler;<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>/**<a name="line.215"></a>
-<span class="sourceLineNo">216</span> * HRegionServer makes a set of HRegions available to clients. It checks in with<a name="line.216"></a>
-<span class="sourceLineNo">217</span> * the HMaster. There are many HRegionServers in a single HBase deployment.<a name="line.217"></a>
-<span class="sourceLineNo">218</span> */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.219"></a>
-<span class="sourceLineNo">220</span>@SuppressWarnings({ "deprecation"})<a name="line.220"></a>
-<span class="sourceLineNo">221</span>public class HRegionServer extends HasThread implements<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    RegionServerServices, LastSequenceId, ConfigurationObserver {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  // Time to pause if master says 'please hold'. Make configurable if needed.<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  private static final int INIT_PAUSE_TIME_MS = 1000;<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  public static final String REGION_LOCK_AWAIT_TIME_SEC =<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      "hbase.regionserver.region.lock.await.time.sec";<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public static final int DEFAULT_REGION_LOCK_AWAIT_TIME_SEC = 300;  // 5 min<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  private static final Log LOG = LogFactory.getLog(HRegionServer.class);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * For testing only!  Set to true to skip notifying region assignment to master .<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="MS_SHOULD_BE_FINAL")<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  public static boolean TEST_SKIP_REPORTING_TRANSITION = false;<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>  /*<a name="line.237"></a>
-<span class="sourceLineNo">238</span>   * Strings to be used in forming the exception message for<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * RegionsAlreadyInTransitionException.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   */<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  protected static final String OPEN = "OPEN";<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  protected static final String CLOSE = "CLOSE";<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  //RegionName vs current action in progress<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  //true - if open region action in progress<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  //false - if close region action in progress<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  protected final ConcurrentMap&lt;byte[], Boolean&gt; regionsInTransitionInRS =<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    new ConcurrentSkipListMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  // Cache flushing<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  protected MemStoreFlusher cacheFlusher;<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>  protected HeapMemoryManager hMemManager;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected CountDownLatch initLatch = null;<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>  /**<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * Cluster connection to be shared by services.<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * Initialized at server startup and closed when server shuts down.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * Clients must never close it explicitly.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   */<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  protected ClusterConnection clusterConnection;<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /*<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   * Long-living meta table locator, which is created when the server is started and stopped<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   * when server shuts down. References to this locator shall be used to perform according<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * operations in EventHandlers. Primary reason for this decision is to make it mockable<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * for tests.<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   */<a name="line.268"></a>
-<span class="sourceLineNo">269</span>  protected MetaTableLocator metaTableLocator;<a name="line.269"></a>
-<span class="sourceLineNo">270</span><a name="line.270"></a>
-<span class="sourceLineNo">271</span>  // Watch if a region is out of recovering state from ZooKeeper<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  @SuppressWarnings("unused")<a name="line.272"></a>
-<span class="sourceLineNo">273</span>  private RecoveringRegionWatcher recoveringRegionWatcher;<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>  /**<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * Go here to get table descriptors.<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   */<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  protected TableDescriptors tableDescriptors;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  // Replication services. If no replication, this handler will be null.<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  protected ReplicationSourceService replicationSourceHandler;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  protected ReplicationSinkService replicationSinkHandler;<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  // Compactions<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public CompactSplit compactSplitThread;<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>  /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * Map of regions currently being served by this region server. Key is the<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * encoded region name.  All access should be synchronized.<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   */<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected final Map&lt;String, Region&gt; onlineRegions = new ConcurrentHashMap&lt;&gt;();<a name="line.291"></a>
-<span class="sourceLineNo">292</span><a name="line.292"></a>
-<span class="sourceLineNo">293</span>  /**<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   * Map of encoded region names to the DataNode locations they should be hosted on<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   * We store the value as InetSocketAddress since this is used only in HDFS<a name="line.295"></a>
-<span class="sourceLineNo">296</span>   * API (create() that takes favored nodes as hints for placing file blocks).<a name="line.296"></a>
-<span class="sourceLineNo">297</span>   * We could have used ServerName here as the value class, but we'd need to<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   * convert it to InetSocketAddress at some point before the HDFS API call, and<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   * it seems a bit weird to store ServerName since ServerName refers to RegionServers<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   * and here we really mean DataNode locations.<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   */<a name="line.301"></a>
-<span class="sourceLineNo">302</span>  protected final Map&lt;String, InetSocketAddress[]&gt; regionFavoredNodesMap =<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      new ConcurrentHashMap&lt;&gt;();<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>  /**<a name="line.305"></a>
-<span class="sourceLineNo">306</span>   * Set of regions currently being in recovering state which means it can accept writes(edits from<a name="line.306"></a>
-<span class="sourceLineNo">307</span>   * previous failed region server) but not reads. A recovering region is also an online region.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>   */<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  protected final Map&lt;String, Region&gt; recoveringRegions = Collections<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      .synchronizedMap(new HashMap&lt;String, Region&gt;());<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  // Leases<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  protected Leases leases;<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>  // Instance of the hbase executor service.<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  protected ExecutorService service;<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>  // If false, the file system has become unavailable<a name="line.318"></a>
-<span class="sourceLineNo">319</span>  protected volatile boolean fsOk;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  protected HFileSystem fs;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  protected HFileSystem walFs;<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  // Set when a report to the master comes back with a message asking us to<a name="line.323"></a>
-<span class="sourceLineNo">324</span>  // shutdown. Also set by call to stop when debugging or running unit tests<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  // of HRegionServer in isolation.<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  private volatile boolean stopped = false;<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  // Go down hard. Used if file system becomes unavailable and also in<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  // debugging and unit tests.<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  private volatile boolean abortRequested;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  ConcurrentMap&lt;String, Integer&gt; rowlocks = new ConcurrentHashMap&lt;&gt;();<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>  // A state before we go into stopped state.  At this stage we're closing user<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  // space regions.<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  private boolean stopping = false;<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>  volatile boolean killed = false;<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  protected final Configuration conf;<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  private Path rootDir;<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  private Path walRootDir;<a name="line.343"></a>
-<span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>  protected final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  final int numRetries;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  protected final int threadWakeFrequency;<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  protected final int msgInterval;<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  protected final int numRegionsToReport;<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>  // Stub to do region server status calls against the master.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>  private volatile RegionServerStatusService.BlockingInterface rssStub;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  private volatile LockService.BlockingInterface lockStub;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  // RPC client. Used to make the stub above that does region server status checking.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  RpcClient rpcClient;<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  private RpcRetryingCallerFactory rpcRetryingCallerFactory;<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>  private UncaughtExceptionHandler uncaughtExceptionHandler;<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  // Info server. Default access so can be used by unit tests. REGIONSERVER<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  // is name of the webapp and the attribute name used stuffing this instance<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  // into web context.<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  protected InfoServer infoServer;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  private JvmPauseMonitor pauseMonitor;<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  /** region server process name */<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  public static final String REGIONSERVER = "regionserver";<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>  MetricsRegionServer metricsRegionServer;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  MetricsTable metricsTable;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  private SpanReceiverHost spanReceiverHost;<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  /**<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * ChoreService used to schedule tasks that we want to run periodically<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   */<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  private final ChoreService choreService;<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  /*<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * Check for compactions requests.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  ScheduledChore compactionChecker;<a name="line.385"></a>
-<span class="sourceLineNo">386</span><a name="line.386"></a>
-<span class="sourceLineNo">387</span>  /*<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   * Check for flushes<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   */<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  ScheduledChore periodicFlusher;<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  protected volatile WALFactory walFactory;<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  // WAL roller. log is protected rather than private to avoid<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  // eclipse warning when accessed by inner classes<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  protected final LogRoller walRoller;<a name="line.396"></a>
-<span class="sourceLineNo">397</span><a name="line.397"></a>
-<span class="sourceLineNo">398</span>  // flag set after we're done setting up server threads<a name="line.398"></a>
-<span class="sourceLineNo">399</span>  final AtomicBoolean online = new AtomicBoolean(false);<a name="line.399"></a>
-<span class="sourceLineNo">400</span><a name="line.400"></a>
-<span class="sourceLineNo">401</span>  // zookeeper connection and watcher<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  protected ZooKeeperWatcher zooKeeper;<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  // master address tracker<a name="line.404"></a>
-<span class="sourceLineNo">405</span>  private MasterAddressTracker masterAddressTracker;<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>  // Cluster Status Tracker<a name="line.407"></a>
-<span class="sourceLineNo">408</span>  protected ClusterStatusTracker clusterStatusTracker;<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>  // Log Splitting Worker<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  private SplitLogWorker splitLogWorker;<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  // A sleeper that sleeps for msgInterval.<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  protected final Sleeper sleeper;<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  private final int operationTimeout;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private final int shortOperationTimeout;<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  private final RegionServerAccounting regionServerAccounting;<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>  // Cache configuration and block cache reference<a name="line.421"></a>
-<span class="sourceLineNo">422</span>  protected CacheConfig cacheConfig;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  // Cache configuration for mob<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  final MobCacheConfig mobCacheConfig;<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>  /** The health check chore. */<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  private HealthCheckChore healthCheckChore;<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  /** The nonce manager chore. */<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  private ScheduledChore nonceManagerChore;<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>  private Map&lt;String, com.google.protobuf.Service&gt; coprocessorServiceHandlers = Maps.newHashMap();<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>  /**<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   * The server name the Master sees us as.  Its made from the hostname the<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * master passes us, port, and server startcode. Gets set after registration<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * against  Master.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  protected ServerName serverName;<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>  /*<a name="line.441"></a>
-<span class="sourceLineNo">442</span>   * hostname specified by hostname config<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   */<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  protected String useThisHostnameInstead;<a name="line.444"></a>
-<span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>  // key to the config parameter of server hostname<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  // the specification of server hostname is optional. The hostname should be resolvable from<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  // both master and region server<a name="line.448"></a>
-<span class="sourceLineNo">449</span>  @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  final static String RS_HOSTNAME_KEY = "hbase.regionserver.hostname";<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  protected final static String MASTER_HOSTNAME_KEY = "hbase.master.hostname";<a name="line.452"></a>
-<span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>  /**<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * This servers startcode.<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   */<a name="line.456"></a>
-<span class="sourceLineNo">457</span>  protected final long startcode;<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>  /**<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   * Unique identifier for the cluster we are a part of.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   */<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  private String clusterId;<a name="line.462"></a>
-<span class="sourceLineNo">463</span><a name="line.463"></a>
-<span class="sourceLineNo">464</span>  /**<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * MX Bean for RegionServerInfo<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   */<a name="line.466"></a>
-<span class="sourceLineNo">467</span>  private ObjectName mxBean = null;<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>  /**<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   * Chore to clean periodically the moved region list<a name="line.470"></a>
-<span class="sourceLineNo">471</span>   */<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  private MovedRegionsCleaner movedRegionsCleaner;<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>  // chore for refreshing store files for secondary regions<a name="line.474"></a>
-<span class="sourceLineNo">475</span>  private StorefileRefresherChore storefileRefresher;<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>  private RegionServerCoprocessorHost rsHost;<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>  private RegionServerProcedureManagerHost rspmHost;<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>  private RegionServerRpcQuotaManager rsQuotaManager;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  private RegionServerSpaceQuotaManager rsSpaceQuotaManager;<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  /**<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * Nonce manager. Nonces are used to make operations like increment and append idempotent<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * in the case where client doesn't receive the response from a successful operation and<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   * retries. We track the successful ops for some time via a nonce sent by client and handle<a name="line.487"></a>
-<span class="sourceLineNo">488</span>   * duplicate operations (currently, by failing them; in future we might use MVCC to return<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * result). Nonces are also recovered from WAL during, recovery; however, the caveats (from<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   * HBASE-3787) are:<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   * - WAL recovery is optimized, and under high load we won't read nearly nonce-timeout worth<a name="line.491"></a>
-<span class="sourceLineNo">492</span>   *   of past records. If we don't read the records, we don't read and recover the nonces.<a name="line.492"></a>
-<span class="sourceLineNo">493</span>   *   Some WALs within nonce-timeout at recovery may not even be present due to rolling/cleanup.<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   * - There's no WAL recovery during normal region move, so nonces will not be transfered.<a name="line.494"></a>
-<span class="sourceLineNo">495</span>   * We can have separate additional "Nonce WAL". It will just contain bunch of numbers and<a name="line.495"></a>
-<span class="sourceLineNo">496</span>   * won't be flushed on main path - because WAL itself also contains nonces, if we only flush<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * it before memstore flush, for a given nonce we will either see it in the WAL (if it was<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   * never flushed to disk, it will be part of recovery), or we'll see it as part of the nonce<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * log (or both occasionally, which doesn't matter). Nonce log file can be deleted after the<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * latest nonce in it expired. It can also be recovered during move.<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   */<a name="line.501"></a>
-<span class="sourceLineNo">502</span>  final ServerNonceManager nonceManager;<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span>  private UserProvider userProvider;<a name="line.504"></a>
-<span class="sourceLineNo">505</span><a name="line.505"></a>
-<span class="sourceLineNo">506</span>  protected final RSRpcServices rpcServices;<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>  protected BaseCoordinatedStateManager csm;<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>  /**<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   * Configuration manager is used to register/deregister and notify the configuration observers<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * when the regionserver is notified that there was a change in the on disk configs.<a name="line.512"></a>
-<span class="sourceLineNo">513</span>   */<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  protected final ConfigurationManager configurationManager;<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>  @VisibleForTesting<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  CompactedHFilesDischarger compactedFileDischarger;<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>  private volatile ThroughputController flushThroughputController;<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>  protected SecureBulkLoadManager secureBulkLoadManager;<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>  protected FileSystemUtilizationChore fsUtilizationChore;<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>  /**<a name="line.525"></a>
-<span class="sourceLineNo">526</span>   * Starts a HRegionServer at the default location.<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   */<a name="line.527"></a>
-<span class="sourceLineNo">528</span>  public HRegionServer(Configuration conf) throws IOException, InterruptedException {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    this(conf, CoordinatedStateManagerFactory.getCoordinatedStateManager(conf));<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>  /**<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * Starts a HRegionServer at the default location<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @param csm implementation of CoordinatedStateManager to be used<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   */<a name="line.535"></a>
-<span class="sourceLineNo">536</span>  public HRegionServer(Configuration conf, CoordinatedStateManager csm) throws IOException {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    super("RegionServer");  // thread name<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    this.fsOk = true;<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    this.conf = conf;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    MemorySizeUtil.checkForClusterFreeHeapMemoryLimit(this.conf);<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    HFile.checkHFileVersion(this.conf);<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    checkCodecs(this.conf);<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    this.userProvider = UserProvider.instantiate(conf);<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    FSUtils.setupShortCircuitRead(this.conf);<a name="line.544"></a>
-<span class="sourceLineNo">545</span><a name="line.545"></a>
-<span class="sourceLineNo">546</span>    Replication.decorateRegionServerConfiguration(this.conf);<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    // Disable usage of meta replicas in the regionserver<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    this.conf.setBoolean(HConstants.USE_META_REPLICAS, false);<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    // Config'ed params<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    this.numRetries = this.conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.551"></a>
-<span class="sourceLineNo">552</span>        HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    this.threadWakeFrequency = conf.getInt(HConstants.THREAD_WAKE_FREQUENCY, 10 * 1000);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    this.msgInterval = conf.getInt("hbase.regionserver.msginterval", 3 * 1000);<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>    this.sleeper = new Sleeper(this.msgInterval, this);<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>    boolean isNoncesEnabled = conf.getBoolean(HConstants.HBASE_RS_NONCES_ENABLED, true);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    this.nonceManager = isNoncesEnabled ? new ServerNonceManager(this.conf) : null;<a name="line.559"></a>
-<span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>    this.numRegionsToReport = conf.getInt(<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      "hbase.regionserver.numregionstoreport", 10);<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>    this.operationTimeout = conf.getInt(<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);<a name="line.566"></a>
-<span class="sourceLineNo">567</span><a name="line.567"></a>
-<span class="sourceLineNo">568</span>    this.shortOperationTimeout = conf.getInt(<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      HConstants.HBASE_RPC_SHORTOPERATION_TIMEOUT_KEY,<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      HConstants.DEFAULT_HBASE_RPC_SHORTOPERATION_TIMEOUT);<a name="line.570"></a>
-<span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span>    this.abortRequested = false;<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    this.stopped = false;<a name="line.573"></a>
-<span class="sourceLineNo">574</span><a name="line.574"></a>
-<span class="sourceLineNo">575</span>    rpcServices = createRpcServices();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    this.startcode = System.currentTimeMillis();<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    if (this instanceof HMaster) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      useThisHostnameInstead = conf.get(MASTER_HOSTNAME_KEY);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    } else {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      useThisHostnameInstead = conf.get(RS_HOSTNAME_KEY);<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    }<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    String hostName = shouldUseThisHostnameInstead() ? useThisHostnameInstead :<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      rpcServices.isa.getHostName();<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    serverName = ServerName.valueOf(hostName, rpcServices.isa.getPort(), startcode);<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>    rpcControllerFactory = RpcControllerFactory.instantiate(this.conf);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    rpcRetryingCallerFactory = RpcRetryingCallerFactory.instantiate(this.conf);<a name="line.587"></a>
-<span class="sourceLineNo">588</span><a name="line.588"></a>
-<span class="sourceLineNo">589</span>    // login the zookeeper client principal (if using security)<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    ZKUtil.loginClient(this.conf, HConstants.ZK_CLIENT_KEYTAB_FILE,<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      HConstants.ZK_CLIENT_KERBEROS_PRINCIPAL, hostName);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    // login the server principal (if using secure Hadoop)<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    login(userProvider, hostName);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    // init superusers and add the server principal (if using security)<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    // or process owner as default super user.<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    Superusers.initialize(conf);<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>    regionServerAccounting = new RegionServerAccounting(conf);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>    cacheConfig = new CacheConfig(conf);<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    mobCacheConfig = new MobCacheConfig(conf);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      @Override<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      public void uncaughtException(Thread t, Throwable e) {<a name="line.603"></a>
-<span class="sourceLineNo">604</span>        abort("Uncaught exception in service thread " + t.getName(), e);<a name="line.604"></a>
-<span class="sourceLineNo">605</span>      }<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    };<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>    initializeFileSystem();<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    service = new ExecutorService(getServerName().toShortString());<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>    // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      // Open connection to zookeeper and set primary watcher<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      zooKeeper = new ZooKeeperWatcher(conf, getProcessName() + ":" +<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span>      this.csm = (BaseCoordinatedStateManager) csm;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      this.csm.initialize(this);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      this.csm.start();<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>      masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      masterAddressTracker.start();<a name="line.624"></a>
-<span class="sourceLineNo">625</span><a name="line.625"></a>
-<span class="sourceLineNo">626</span>      clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      clusterStatusTracker.start();<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    this.configurationManager = new ConfigurationManager();<a name="line.629"></a>
-<span class="sourceLineNo">630</span><a name="line.630"></a>
-<span class="sourceLineNo">631</span>    rpcServices.start();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    putUpWebUI();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    this.walRoller = new LogRoller(this, this);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    this.choreService = new ChoreService(getServerName().toString(), true);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    this.flushThroughputController = FlushThroughputControllerFactory.create(this, conf);<a name="line.635"></a>
-<span class="sourceLineNo">636</span><a name="line.636"></a>
-<span class="sourceLineNo">637</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>        @Override<a name="line.639"></a>
-<span class="sourceLineNo">640</span>        public void handle(Signal signal) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>          getConfiguration().reloadConfiguration();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>          configurationManager.notifyAllObservers(getConfiguration());<a name="line.642"></a>
-<span class="sourceLineNo">643</span>        }<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      });<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    // Create the CompactedFileDischarger chore service. This chore helps to<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    // remove the compacted files<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    // that will no longer be used in reads.<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    // Default is 2 mins. The default value for TTLCleaner is 5 mins so we set this to<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    // 2 mins so that compacted files can be archived before the TTLCleaner runs<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    int cleanerInterval =<a name="line.651"></a>
-<span class="sourceLineNo">652</span>        conf.getInt("hbase.hfile.compaction.discharger.interval", 2 * 60 * 1000);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    this.compactedFileDischarger =<a name="line.653"></a>
-<span class="sourceLineNo">654</span>        new CompactedHFilesDischarger(cleanerInterval, this, this);<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    choreService.scheduleChore(compactedFileDischarger);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span>  private void initializeFileSystem() throws IOException {<a name="line.658"></a>
-<span class="sourceLineNo">659</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    // (unless all is set to defaults).<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.670"></a>
-<span class="sourceLineNo">671</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.671"></a>
-<span class="sourceLineNo">672</span>  }<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>    return new FSTableDescriptors(this.conf,<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false);<a name="line.676"></a>
-<span class="sourceLineNo">677</span>  }<a name="line.677"></a>
-<span class="sourceLineNo">678</span><a name="line.678"></a>
-<span class="sourceLineNo">679</span>  protected void setInitLatch(CountDownLatch latch) {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    this.initLatch = latch;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>  /*<a name="line.683"></a>
-<span class="sourceLineNo">684</span>   * Returns true if configured hostname should be used<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   */<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  protected boolean shouldUseThisHostnameInstead() {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    return useThisHostnameInstead != null &amp;&amp; !useThisHostnameInstead.isEmpty();<a name="line.687"></a>
-<span class="sourceLineNo">688</span>  }<a name="line.688"></a>
-<span class="sourceLineNo">689</span><a name="line.689"></a>
-<span class="sourceLineNo">690</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    user.login("hbase.regionserver.keytab.file",<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      "hbase.regionserver.kerberos.principal", host);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>  }<a name="line.693"></a>
-<span class="sourceLineNo">694</span><a name="line.694"></a>
-<span class="sourceLineNo">695</span>  protected void waitForMasterActive(){<a name="line.695"></a>
-<span class="sourceLineNo">696</span>  }<a name="line.696"></a>
-<span class="sourceLineNo">697</span><a name="line.697"></a>
-<span class="sourceLineNo">698</span>  protected String getProcessName() {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    return REGIONSERVER;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
-<span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>  protected boolean canCreateBaseZNode() {<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    return false;<a name="line.703"></a>
-<span class="sourceLineNo">704</span>  }<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>  protected boolean canUpdateTableDescriptor() {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>    return false;<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  }<a name="line.708"></a>
-<span class="sourceLineNo">709</span><a name="line.709"></a>
-<span class="sourceLineNo">710</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return new RSRpcServices(this);<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  }<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>  protected void configureInfoServer() {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    return RSDumpServlet.class;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>  }<a name="line.721"></a>
-<span class="sourceLineNo">722</span><a name="line.722"></a>
-<span class="sourceLineNo">723</span>  @Override<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    /*<a name="line.725"></a>
-<span class="sourceLineNo">726</span>     * No stacking of instances is allowed for a single service name<a name="line.726"></a>
-<span class="sourceLineNo">727</span>     */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.728"></a>
-<span class="sourceLineNo">729</span>        instance.getDescriptorForType();<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      LOG.error("Coprocessor service " + serviceName<a name="line.732"></a>
-<span class="sourceLineNo">733</span>          + " already registered, rejecting request from " + instance);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      return false;<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    }<a name="line.735"></a>
-<span class="sourceLineNo">736</span><a name="line.736"></a>
-<span class="sourceLineNo">737</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    if (LOG.isDebugEnabled()) {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      LOG.debug("Registered regionserver coprocessor service: service=" + serviceName);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    }<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    return true;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span>  /**<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * the local server. Safe to use going to local or remote server.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * Create this instance in a method can be intercepted and mocked in tests.<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @throws IOException<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   */<a name="line.749"></a>
-<span class="sourceLineNo">750</span>  @VisibleForTesting<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    // and remote invocations.<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      serverName, rpcServices, rpcServices);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   * @param c<a name="line.761"></a>
-<span class="sourceLineNo">762</span>   * @throws IOException<a name="line.762"></a>
-<span class="sourceLineNo">763</span>   */<a name="line.763"></a>
-<span class="sourceLineNo">764</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.764"></a>
-<span class="sourceLineNo">765</span>    // check to see if the codec list is available:<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    if (codecs == null) return;<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    for (String codec : codecs) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>        throw new IOException("Compression codec " + codec +<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          " not supported, aborting RS construction");<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    }<a name="line.773"></a>
-<span class="sourceLineNo">774</span>  }<a name="line.774"></a>
-<span class="sourceLineNo">775</span><a name="line.775"></a>
-<span class="sourceLineNo">776</span>  public String getClusterId() {<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    return this.clusterId;<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  }<a name="line.778"></a>
-<span class="sourceLineNo">779</span><a name="line.779"></a>
-<span class="sourceLineNo">780</span>  /**<a name="line.780"></a>
-<span class="sourceLineNo">781</span>   * Setup our cluster connection if not already initialized.<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   * @throws IOException<a name="line.782"></a>
-<span class="sourceLineNo">783</span>   */<a name="line.783"></a>
-<span class="sourceLineNo">784</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    if (clusterConnection == null) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span>      clusterConnection = createClusterConnection();<a name="line.786"></a>
-<span class="sourceLineNo">787</span>      metaTableLocator = new MetaTableLocator();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    }<a name="line.788"></a>
-<span class="sourceLineNo">789</span>  }<a name="line.789"></a>
-<span class="sourceLineNo">790</span><a name="line.790"></a>
-<span class="sourceLineNo">791</span>  /**<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   * All initialization needed before we go register with Master.<a name="line.792"></a>
-<span class="sourceLineNo">793</span>   *<a name="line.793"></a>
-<span class="sourceLineNo">794</span>   * @throws IOException<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * @throws InterruptedException<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   */<a name="line.796"></a>
-<span class="sourceLineNo">797</span>  private void preRegistrationInitialization(){<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    try {<a name="line.798"></a>
-<span class="sourceLineNo">799</span>      setupClusterConnection();<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>      this.secureBulkLoadManager = new SecureBulkLoadManager(this.conf, clusterConnection);<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      this.secureBulkLoadManager.start();<a name="line.802"></a>
-<span class="sourceLineNo">803</span><a name="line.803"></a>
-<span class="sourceLineNo">804</span>      // Health checker thread.<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      if (isHealthCheckerConfigured()) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>        int sleepTime = this.conf.getInt(HConstants.HEALTH_CHORE_WAKE_FREQ,<a name="line.806"></a>
-<span class="sourceLineNo">807</span>          HConstants.DEFAULT_THREAD_WAKE_FREQUENCY);<a name="line.807"></a>
-<span class="sourceLineNo">808</span>        healthCheckChore = new HealthCheckChore(sleepTime, this, getConfiguration());<a name="line.808"></a>
-<span class="sourceLineNo">809</span>      }<a name="line.809"></a>
-<span class="sourceLineNo">810</span><a name="line.810"></a>
-<span class="sourceLineNo">811</span>      initializeZooKeeper();<a name="line.811"></a>
-<span class="sourceLineNo">812</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.812"></a>
-<span class="sourceLineNo">813</span>        initializeThreads();<a name="line.813"></a>
-<span class="sourceLineNo">814</span>      }<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    } catch (Throwable t) {<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      // Call stop if error or process will stick around for ever since server<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      // puts up non-daemon threads.<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      this.rpcServices.stop();<a name="line.818"></a>
-<span class="sourceLineNo">819</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    }<a name="line.820"></a>
-<span class="sourceLineNo">821</span>  }<a name="line.821"></a>
-<span class="sourceLineNo">822</span><a name="line.822"></a>
-<span class="sourceLineNo">823</span>  /**<a name="line.823"></a>
-<span class="sourceLineNo">824</span>   * Bring up connection to zk ensemble and then wait until a master for this<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * cluster and then after that, wait until cluster 'up' flag has been set.<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * This is the order in which master does things.<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * Finally open long-living server short-circuit connection.<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * @throws IOException<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * @throws InterruptedException<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   */<a name="line.830"></a>
-<span class="sourceLineNo">831</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    justification="cluster Id znode read would give us correct response")<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    // block until a master is available.  No point in starting up if no master<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    // running.<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    // when ready.<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.841"></a>
-<span class="sourceLineNo">842</span><a name="line.842"></a>
-<span class="sourceLineNo">843</span>    doLatch(this.initLatch);<a name="line.843"></a>
-<span class="sourceLineNo">844</span><a name="line.844"></a>
-<span class="sourceLineNo">845</span>    // Retrieve clusterId<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    // Since cluster status is now up<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    // ID should have already been set by HMaster<a name="line.847"></a>
-<span class="sourceLineNo">848</span>    try {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      if (clusterId == null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        this.abort("Cluster ID has not been set");<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      LOG.info("ClusterId : "+clusterId);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    } catch (KeeperException e) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      this.abort("Failed to retrieve Cluster ID",e);<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    }<a name="line.856"></a>
-<span class="sourceLineNo">857</span><a name="line.857"></a>
-<span class="sourceLineNo">858</span>    // In case colocated master, wait here till it's active.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    // So backup masters won't start as regionservers.<a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // This is to avoid showing backup masters as regionservers<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // in master web UI, or assigning any region to them.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    waitForMasterActive();<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    if (isStopped() || isAborted()) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      return; // No need for further initialization<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    }<a name="line.865"></a>
-<span class="sourceLineNo">866</span><a name="line.866"></a>
-<span class="sourceLineNo">867</span>    // watch for snapshots and other procedures<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    try {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      rspmHost.loadProcedures(conf);<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      rspmHost.initialize(this);<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    } catch (KeeperException e) {<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    }<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    // register watcher for recovering regions<a name="line.875"></a>
-<span class="sourceLineNo">876</span>    this.recoveringRegionWatcher = new RecoveringRegionWatcher(this.zooKeeper, this);<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  }<a name="line.877"></a>
-<span class="sourceLineNo">878</span><a name="line.878"></a>
-<span class="sourceLineNo">879</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED",<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      justification="We don't care about the return")<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private void doLatch(final CountDownLatch latch) throws InterruptedException {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    if (latch != null) {<a name="line.882"></a>
-<span class="sourceLineNo">883</span>      // Result is ignored intentionally but if I remove the below, findbugs complains (the<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      // above justification on this method doesn't seem to suppress it).<a name="line.884"></a>
-<span class="sourceLineNo">885</span>      boolean result = latch.await(20, TimeUnit.SECONDS);<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    }<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  /**<a name="line.889"></a>
-<span class="sourceLineNo">890</span>   * Utilty method to wait indefinitely on a znode availability while checkin

<TRUNCATED>

[14/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.StoreScannerCompactionRace.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.StoreScannerCompactionRace.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.StoreScannerCompactionRace.html
index eda63e0..b2b7ff9 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.StoreScannerCompactionRace.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreScanner.StoreScannerCompactionRace.html
@@ -176,7 +176,7 @@
 <span class="sourceLineNo">168</span><a name="line.168"></a>
 <span class="sourceLineNo">169</span>  /** An internal constructor. */<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  protected StoreScanner(Store store, Scan scan, final ScanInfo scanInfo,<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      final NavigableSet&lt;byte[]&gt; columns, long readPt, boolean cacheBlocks) {<a name="line.171"></a>
+<span class="sourceLineNo">171</span>      final NavigableSet&lt;byte[]&gt; columns, long readPt, boolean cacheBlocks, ScanType scanType) {<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    this.readPt = readPt;<a name="line.172"></a>
 <span class="sourceLineNo">173</span>    this.store = store;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    this.cacheBlocks = cacheBlocks;<a name="line.174"></a>
@@ -198,952 +198,961 @@
 <span class="sourceLineNo">190</span>    if (get) {<a name="line.190"></a>
 <span class="sourceLineNo">191</span>      this.readType = Scan.ReadType.PREAD;<a name="line.191"></a>
 <span class="sourceLineNo">192</span>      this.scanUsePread = true;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    } else {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      if (scan.getReadType() == Scan.ReadType.DEFAULT) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>        this.readType = scanInfo.isUsePread() ? Scan.ReadType.PREAD : Scan.ReadType.DEFAULT;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      } else {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>        this.readType = scan.getReadType();<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      }<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      // Always start with pread unless user specific stream. Will change to stream later if<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      // readType is default if the scan keeps running for a long time.<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      this.scanUsePread = this.readType != Scan.ReadType.STREAM;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    }<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    this.preadMaxBytes = scanInfo.getPreadMaxBytes();<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    this.cellsPerHeartbeatCheck = scanInfo.getCellsPerTimeoutCheck();<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    // Parallel seeking is on if the config allows and more there is more than one store file.<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    if (this.store != null &amp;&amp; this.store.getStorefilesCount() &gt; 1) {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      RegionServerServices rsService = ((HStore) store).getHRegion().getRegionServerServices();<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      if (rsService != null &amp;&amp; scanInfo.isParallelSeekEnabled()) {<a name="line.208"></a>
-<span class="sourceLineNo">209</span>        this.parallelSeekEnabled = true;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        this.executor = rsService.getExecutorService();<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      }<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private void addCurrentScanners(List&lt;? extends KeyValueScanner&gt; scanners) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    this.currentScanners.addAll(scanners);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  }<a name="line.217"></a>
-<span class="sourceLineNo">218</span><a name="line.218"></a>
-<span class="sourceLineNo">219</span>  /**<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   * Opens a scanner across memstore, snapshot, and all StoreFiles. Assumes we<a name="line.220"></a>
-<span class="sourceLineNo">221</span>   * are not in a compaction.<a name="line.221"></a>
-<span class="sourceLineNo">222</span>   *<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   * @param store who we scan<a name="line.223"></a>
-<span class="sourceLineNo">224</span>   * @param scan the spec<a name="line.224"></a>
-<span class="sourceLineNo">225</span>   * @param columns which columns we are scanning<a name="line.225"></a>
-<span class="sourceLineNo">226</span>   * @throws IOException<a name="line.226"></a>
-<span class="sourceLineNo">227</span>   */<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public StoreScanner(Store store, ScanInfo scanInfo, Scan scan, final NavigableSet&lt;byte[]&gt; columns,<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      long readPt)<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  throws IOException {<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    this(store, scan, scanInfo, columns, readPt, scan.getCacheBlocks());<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    if (columns != null &amp;&amp; scan.isRaw()) {<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      throw new DoNotRetryIOException("Cannot specify any column for a raw scan");<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    }<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    matcher = UserScanQueryMatcher.create(scan, scanInfo, columns, oldestUnexpiredTS, now,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      store.getCoprocessorHost());<a name="line.236"></a>
-<span class="sourceLineNo">237</span><a name="line.237"></a>
-<span class="sourceLineNo">238</span>    this.store.addChangedReaderObserver(this);<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    try {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      // Pass columns to try to filter out unnecessary StoreFiles.<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      List&lt;KeyValueScanner&gt; scanners = getScannersNoCompaction();<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>      // Seek all scanners to the start of the Row (or if the exact matching row<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      // key does not exist, then to the start of the next matching Row).<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      // Always check bloom filter to optimize the top row seek for delete<a name="line.246"></a>
-<span class="sourceLineNo">247</span>      // family marker.<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      seekScanners(scanners, matcher.getStartKey(), explicitColumnQuery &amp;&amp; lazySeekEnabledGlobally,<a name="line.248"></a>
-<span class="sourceLineNo">249</span>        parallelSeekEnabled);<a name="line.249"></a>
-<span class="sourceLineNo">250</span><a name="line.250"></a>
-<span class="sourceLineNo">251</span>      // set storeLimit<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      this.storeLimit = scan.getMaxResultsPerColumnFamily();<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>      // set rowOffset<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      this.storeOffset = scan.getRowOffsetPerColumnFamily();<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      addCurrentScanners(scanners);<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      // Combine all seeked scanners with a heap<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      resetKVHeap(scanners, store.getComparator());<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    } catch (IOException e) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      // remove us from the HStore#changedReaderObservers here or we'll have no chance to<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      // and might cause memory leak<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      this.store.deleteChangedReaderObserver(this);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      throw e;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>  }<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  /**<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   * Used for compactions.&lt;p&gt;<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   *<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * Opens a scanner across specified StoreFiles.<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param store who we scan<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @param scan the spec<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * @param scanners ancillary scanners<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * @param smallestReadPoint the readPoint that we should use for tracking<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   *          versions<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   */<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  public StoreScanner(Store store, ScanInfo scanInfo, Scan scan,<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      List&lt;? extends KeyValueScanner&gt; scanners, ScanType scanType,<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      long smallestReadPoint, long earliestPutTs) throws IOException {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    this(store, scanInfo, scan, scanners, scanType, smallestReadPoint, earliestPutTs, null, null);<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  }<a name="line.281"></a>
-<span class="sourceLineNo">282</span><a name="line.282"></a>
-<span class="sourceLineNo">283</span>  /**<a name="line.283"></a>
-<span class="sourceLineNo">284</span>   * Used for compactions that drop deletes from a limited range of rows.&lt;p&gt;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>   *<a name="line.285"></a>
-<span class="sourceLineNo">286</span>   * Opens a scanner across specified StoreFiles.<a name="line.286"></a>
-<span class="sourceLineNo">287</span>   * @param store who we scan<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * @param scan the spec<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * @param scanners ancillary scanners<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   * @param smallestReadPoint the readPoint that we should use for tracking versions<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   * @param dropDeletesFromRow The inclusive left bound of the range; can be EMPTY_START_ROW.<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * @param dropDeletesToRow The exclusive right bound of the range; can be EMPTY_END_ROW.<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   */<a name="line.293"></a>
-<span class="sourceLineNo">294</span>  public StoreScanner(Store store, ScanInfo scanInfo, Scan scan,<a name="line.294"></a>
-<span class="sourceLineNo">295</span>      List&lt;? extends KeyValueScanner&gt; scanners, long smallestReadPoint, long earliestPutTs,<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      byte[] dropDeletesFromRow, byte[] dropDeletesToRow) throws IOException {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    this(store, scanInfo, scan, scanners, ScanType.COMPACT_RETAIN_DELETES, smallestReadPoint,<a name="line.297"></a>
-<span class="sourceLineNo">298</span>        earliestPutTs, dropDeletesFromRow, dropDeletesToRow);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  }<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span>  private StoreScanner(Store store, ScanInfo scanInfo, Scan scan,<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      List&lt;? extends KeyValueScanner&gt; scanners, ScanType scanType, long smallestReadPoint,<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      long earliestPutTs, byte[] dropDeletesFromRow, byte[] dropDeletesToRow) throws IOException {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    this(store, scan, scanInfo, null,<a name="line.304"></a>
-<span class="sourceLineNo">305</span>        ((HStore) store).getHRegion().getReadPoint(IsolationLevel.READ_COMMITTED), false);<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    if (scan.hasFilter() || (scan.getStartRow() != null &amp;&amp; scan.getStartRow().length &gt; 0)<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        || (scan.getStopRow() != null &amp;&amp; scan.getStopRow().length &gt; 0)<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        || !scan.getTimeRange().isAllTime()) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>      // use legacy query matcher since we do not consider the scan object in our code. Only used to<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      // keep compatibility for coprocessor.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      matcher = LegacyScanQueryMatcher.create(scan, scanInfo, null, scanType, smallestReadPoint,<a name="line.311"></a>
-<span class="sourceLineNo">312</span>        earliestPutTs, oldestUnexpiredTS, now, dropDeletesFromRow, dropDeletesToRow,<a name="line.312"></a>
-<span class="sourceLineNo">313</span>        store.getCoprocessorHost());<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    } else {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      matcher = CompactionScanQueryMatcher.create(scanInfo, scanType, smallestReadPoint,<a name="line.315"></a>
-<span class="sourceLineNo">316</span>        earliestPutTs, oldestUnexpiredTS, now, dropDeletesFromRow, dropDeletesToRow,<a name="line.316"></a>
-<span class="sourceLineNo">317</span>        store.getCoprocessorHost());<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>    // Filter the list of scanners using Bloom filters, time range, TTL, etc.<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    scanners = selectScannersFrom(scanners);<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>    // Seek all scanners to the initial key<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    seekScanners(scanners, matcher.getStartKey(), false, parallelSeekEnabled);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    addCurrentScanners(scanners);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    // Combine all seeked scanners with a heap<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    resetKVHeap(scanners, store.getComparator());<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  }<a name="line.328"></a>
-<span class="sourceLineNo">329</span><a name="line.329"></a>
-<span class="sourceLineNo">330</span>  @VisibleForTesting<a name="line.330"></a>
-<span class="sourceLineNo">331</span>  StoreScanner(final Scan scan, ScanInfo scanInfo,<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      ScanType scanType, final NavigableSet&lt;byte[]&gt; columns,<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      final List&lt;? extends KeyValueScanner&gt; scanners) throws IOException {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    this(scan, scanInfo, scanType, columns, scanners,<a name="line.334"></a>
-<span class="sourceLineNo">335</span>        HConstants.LATEST_TIMESTAMP,<a name="line.335"></a>
-<span class="sourceLineNo">336</span>        // 0 is passed as readpoint because the test bypasses Store<a name="line.336"></a>
-<span class="sourceLineNo">337</span>        0);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>  }<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  @VisibleForTesting<a name="line.340"></a>
-<span class="sourceLineNo">341</span>  StoreScanner(final Scan scan, ScanInfo scanInfo,<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    ScanType scanType, final NavigableSet&lt;byte[]&gt; columns,<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    final List&lt;? extends KeyValueScanner&gt; scanners, long earliestPutTs)<a name="line.343"></a>
-<span class="sourceLineNo">344</span>        throws IOException {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    this(scan, scanInfo, scanType, columns, scanners, earliestPutTs,<a name="line.345"></a>
-<span class="sourceLineNo">346</span>      // 0 is passed as readpoint because the test bypasses Store<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      0);<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>  public StoreScanner(final Scan scan, ScanInfo scanInfo, ScanType scanType,<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      final NavigableSet&lt;byte[]&gt; columns, final List&lt;? extends KeyValueScanner&gt; scanners, long earliestPutTs,<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      long readPt) throws IOException {<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    this(null, scan, scanInfo, columns, readPt,<a name="line.353"></a>
-<span class="sourceLineNo">354</span>        scanType == ScanType.USER_SCAN ? scan.getCacheBlocks() : false);<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    if (scanType == ScanType.USER_SCAN) {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      this.matcher = UserScanQueryMatcher.create(scan, scanInfo, columns, oldestUnexpiredTS, now,<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        null);<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    } else {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      if (scan.hasFilter() || (scan.getStartRow() != null &amp;&amp; scan.getStartRow().length &gt; 0)<a name="line.359"></a>
-<span class="sourceLineNo">360</span>          || (scan.getStopRow() != null &amp;&amp; scan.getStopRow().length &gt; 0)<a name="line.360"></a>
-<span class="sourceLineNo">361</span>          || !scan.getTimeRange().isAllTime() || columns != null) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>        // use legacy query matcher since we do not consider the scan object in our code. Only used<a name="line.362"></a>
-<span class="sourceLineNo">363</span>        // to keep compatibility for coprocessor.<a name="line.363"></a>
-<span class="sourceLineNo">364</span>        matcher = LegacyScanQueryMatcher.create(scan, scanInfo, columns, scanType, Long.MAX_VALUE,<a name="line.364"></a>
-<span class="sourceLineNo">365</span>          earliestPutTs, oldestUnexpiredTS, now, null, null, store.getCoprocessorHost());<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      } else {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        this.matcher = CompactionScanQueryMatcher.create(scanInfo, scanType, Long.MAX_VALUE,<a name="line.367"></a>
-<span class="sourceLineNo">368</span>          earliestPutTs, oldestUnexpiredTS, now, null, null, null);<a name="line.368"></a>
-<span class="sourceLineNo">369</span>      }<a name="line.369"></a>
-<span class="sourceLineNo">370</span>    }<a name="line.370"></a>
-<span class="sourceLineNo">371</span><a name="line.371"></a>
-<span class="sourceLineNo">372</span>    // Seek all scanners to the initial key<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    seekScanners(scanners, matcher.getStartKey(), false, parallelSeekEnabled);<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    addCurrentScanners(scanners);<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    resetKVHeap(scanners, scanInfo.getComparator());<a name="line.375"></a>
-<span class="sourceLineNo">376</span>  }<a name="line.376"></a>
-<span class="sourceLineNo">377</span><a name="line.377"></a>
-<span class="sourceLineNo">378</span>  /**<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   * Get a filtered list of scanners. Assumes we are not in a compaction.<a name="line.379"></a>
-<span class="sourceLineNo">380</span>   * @return list of scanners to seek<a name="line.380"></a>
-<span class="sourceLineNo">381</span>   */<a name="line.381"></a>
-<span class="sourceLineNo">382</span>  private List&lt;KeyValueScanner&gt; getScannersNoCompaction() throws IOException {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    return selectScannersFrom(<a name="line.383"></a>
-<span class="sourceLineNo">384</span>      store.getScanners(cacheBlocks, scanUsePread, false, matcher, scan.getStartRow(),<a name="line.384"></a>
-<span class="sourceLineNo">385</span>        scan.includeStartRow(), scan.getStopRow(), scan.includeStopRow(), this.readPt));<a name="line.385"></a>
-<span class="sourceLineNo">386</span>  }<a name="line.386"></a>
-<span class="sourceLineNo">387</span><a name="line.387"></a>
-<span class="sourceLineNo">388</span>  /**<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   * Seek the specified scanners with the given key<a name="line.389"></a>
-<span class="sourceLineNo">390</span>   * @param scanners<a name="line.390"></a>
-<span class="sourceLineNo">391</span>   * @param seekKey<a name="line.391"></a>
-<span class="sourceLineNo">392</span>   * @param isLazy true if using lazy seek<a name="line.392"></a>
-<span class="sourceLineNo">393</span>   * @param isParallelSeek true if using parallel seek<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   * @throws IOException<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  protected void seekScanners(List&lt;? extends KeyValueScanner&gt; scanners,<a name="line.396"></a>
-<span class="sourceLineNo">397</span>      Cell seekKey, boolean isLazy, boolean isParallelSeek)<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      throws IOException {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    // Seek all scanners to the start of the Row (or if the exact matching row<a name="line.399"></a>
-<span class="sourceLineNo">400</span>    // key does not exist, then to the start of the next matching Row).<a name="line.400"></a>
-<span class="sourceLineNo">401</span>    // Always check bloom filter to optimize the top row seek for delete<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    // family marker.<a name="line.402"></a>
-<span class="sourceLineNo">403</span>    if (isLazy) {<a name="line.403"></a>
-<span class="sourceLineNo">404</span>      for (KeyValueScanner scanner : scanners) {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>        scanner.requestSeek(seekKey, false, true);<a name="line.405"></a>
-<span class="sourceLineNo">406</span>      }<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    } else {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      if (!isParallelSeek) {<a name="line.408"></a>
-<span class="sourceLineNo">409</span>        long totalScannersSoughtBytes = 0;<a name="line.409"></a>
-<span class="sourceLineNo">410</span>        for (KeyValueScanner scanner : scanners) {<a name="line.410"></a>
-<span class="sourceLineNo">411</span>          if (matcher.isUserScan() &amp;&amp; totalScannersSoughtBytes &gt;= maxRowSize) {<a name="line.411"></a>
-<span class="sourceLineNo">412</span>            throw new RowTooBigException("Max row size allowed: " + maxRowSize<a name="line.412"></a>
-<span class="sourceLineNo">413</span>              + ", but row is bigger than that");<a name="line.413"></a>
-<span class="sourceLineNo">414</span>          }<a name="line.414"></a>
-<span class="sourceLineNo">415</span>          scanner.seek(seekKey);<a name="line.415"></a>
-<span class="sourceLineNo">416</span>          Cell c = scanner.peek();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>          if (c != null) {<a name="line.417"></a>
-<span class="sourceLineNo">418</span>            totalScannersSoughtBytes += CellUtil.estimatedSerializedSizeOf(c);<a name="line.418"></a>
-<span class="sourceLineNo">419</span>          }<a name="line.419"></a>
-<span class="sourceLineNo">420</span>        }<a name="line.420"></a>
-<span class="sourceLineNo">421</span>      } else {<a name="line.421"></a>
-<span class="sourceLineNo">422</span>        parallelSeek(scanners, seekKey);<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
-<span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>  protected void resetKVHeap(List&lt;? extends KeyValueScanner&gt; scanners,<a name="line.427"></a>
-<span class="sourceLineNo">428</span>      CellComparator comparator) throws IOException {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    // Combine all seeked scanners with a heap<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    heap = new KeyValueHeap(scanners, comparator);<a name="line.430"></a>
-<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
-<span class="sourceLineNo">432</span><a name="line.432"></a>
-<span class="sourceLineNo">433</span>  /**<a name="line.433"></a>
-<span class="sourceLineNo">434</span>   * Filters the given list of scanners using Bloom filter, time range, and<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   * TTL.<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * &lt;p&gt;<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * Will be overridden by testcase so declared as protected.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  @VisibleForTesting<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  protected List&lt;KeyValueScanner&gt; selectScannersFrom(<a name="line.440"></a>
-<span class="sourceLineNo">441</span>      final List&lt;? extends KeyValueScanner&gt; allScanners) {<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    boolean memOnly;<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    boolean filesOnly;<a name="line.443"></a>
-<span class="sourceLineNo">444</span>    if (scan instanceof InternalScan) {<a name="line.444"></a>
-<span class="sourceLineNo">445</span>      InternalScan iscan = (InternalScan)scan;<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      memOnly = iscan.isCheckOnlyMemStore();<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      filesOnly = iscan.isCheckOnlyStoreFiles();<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    } else {<a name="line.448"></a>
-<span class="sourceLineNo">449</span>      memOnly = false;<a name="line.449"></a>
-<span class="sourceLineNo">450</span>      filesOnly = false;<a name="line.450"></a>
-<span class="sourceLineNo">451</span>    }<a name="line.451"></a>
-<span class="sourceLineNo">452</span><a name="line.452"></a>
-<span class="sourceLineNo">453</span>    List&lt;KeyValueScanner&gt; scanners = new ArrayList&lt;&gt;(allScanners.size());<a name="line.453"></a>
-<span class="sourceLineNo">454</span><a name="line.454"></a>
-<span class="sourceLineNo">455</span>    // We can only exclude store files based on TTL if minVersions is set to 0.<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    // Otherwise, we might have to return KVs that have technically expired.<a name="line.456"></a>
-<span class="sourceLineNo">457</span>    long expiredTimestampCutoff = minVersions == 0 ? oldestUnexpiredTS: Long.MIN_VALUE;<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>    // include only those scan files which pass all filters<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    for (KeyValueScanner kvs : allScanners) {<a name="line.460"></a>
-<span class="sourceLineNo">461</span>      boolean isFile = kvs.isFileScanner();<a name="line.461"></a>
-<span class="sourceLineNo">462</span>      if ((!isFile &amp;&amp; filesOnly) || (isFile &amp;&amp; memOnly)) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>        continue;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>      }<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>      if (kvs.shouldUseScanner(scan, store, expiredTimestampCutoff)) {<a name="line.466"></a>
-<span class="sourceLineNo">467</span>        scanners.add(kvs);<a name="line.467"></a>
-<span class="sourceLineNo">468</span>      } else {<a name="line.468"></a>
-<span class="sourceLineNo">469</span>        kvs.close();<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      }<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    return scanners;<a name="line.472"></a>
-<span class="sourceLineNo">473</span>  }<a name="line.473"></a>
+<span class="sourceLineNo">193</span>    } else if(scanType != scanType.USER_SCAN) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      // For compaction scanners never use Pread as already we have stream based scanners on the<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      // store files to be compacted<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      this.readType = Scan.ReadType.STREAM;<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      this.scanUsePread = false;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    } else {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      if (scan.getReadType() == Scan.ReadType.DEFAULT) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        this.readType = scanInfo.isUsePread() ? Scan.ReadType.PREAD : Scan.ReadType.DEFAULT;<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      } else {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        this.readType = scan.getReadType();<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      // Always start with pread unless user specific stream. Will change to stream later if<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      // readType is default if the scan keeps running for a long time.<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      this.scanUsePread = this.readType != Scan.ReadType.STREAM;<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    this.preadMaxBytes = scanInfo.getPreadMaxBytes();<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    this.cellsPerHeartbeatCheck = scanInfo.getCellsPerTimeoutCheck();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    // Parallel seeking is on if the config allows and more there is more than one store file.<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    if (this.store != null &amp;&amp; this.store.getStorefilesCount() &gt; 1) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      RegionServerServices rsService = ((HStore) store).getHRegion().getRegionServerServices();<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      if (rsService != null &amp;&amp; scanInfo.isParallelSeekEnabled()) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        this.parallelSeekEnabled = true;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        this.executor = rsService.getExecutorService();<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      }<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  }<a name="line.218"></a>
+<span class="sourceLineNo">219</span><a name="line.219"></a>
+<span class="sourceLineNo">220</span>  private void addCurrentScanners(List&lt;? extends KeyValueScanner&gt; scanners) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    this.currentScanners.addAll(scanners);<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  }<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  /**<a name="line.224"></a>
+<span class="sourceLineNo">225</span>   * Opens a scanner across memstore, snapshot, and all StoreFiles. Assumes we<a name="line.225"></a>
+<span class="sourceLineNo">226</span>   * are not in a compaction.<a name="line.226"></a>
+<span class="sourceLineNo">227</span>   *<a name="line.227"></a>
+<span class="sourceLineNo">228</span>   * @param store who we scan<a name="line.228"></a>
+<span class="sourceLineNo">229</span>   * @param scan the spec<a name="line.229"></a>
+<span class="sourceLineNo">230</span>   * @param columns which columns we are scanning<a name="line.230"></a>
+<span class="sourceLineNo">231</span>   * @throws IOException<a name="line.231"></a>
+<span class="sourceLineNo">232</span>   */<a name="line.232"></a>
+<span class="sourceLineNo">233</span>  public StoreScanner(Store store, ScanInfo scanInfo, Scan scan, final NavigableSet&lt;byte[]&gt; columns,<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      long readPt)<a name="line.234"></a>
+<span class="sourceLineNo">235</span>  throws IOException {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    this(store, scan, scanInfo, columns, readPt, scan.getCacheBlocks(), ScanType.USER_SCAN);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    if (columns != null &amp;&amp; scan.isRaw()) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      throw new DoNotRetryIOException("Cannot specify any column for a raw scan");<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    }<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    matcher = UserScanQueryMatcher.create(scan, scanInfo, columns, oldestUnexpiredTS, now,<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      store.getCoprocessorHost());<a name="line.241"></a>
+<span class="sourceLineNo">242</span><a name="line.242"></a>
+<span class="sourceLineNo">243</span>    this.store.addChangedReaderObserver(this);<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>    try {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      // Pass columns to try to filter out unnecessary StoreFiles.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      List&lt;KeyValueScanner&gt; scanners = getScannersNoCompaction();<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>      // Seek all scanners to the start of the Row (or if the exact matching row<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      // key does not exist, then to the start of the next matching Row).<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      // Always check bloom filter to optimize the top row seek for delete<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      // family marker.<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      seekScanners(scanners, matcher.getStartKey(), explicitColumnQuery &amp;&amp; lazySeekEnabledGlobally,<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        parallelSeekEnabled);<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>      // set storeLimit<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      this.storeLimit = scan.getMaxResultsPerColumnFamily();<a name="line.257"></a>
+<span class="sourceLineNo">258</span><a name="line.258"></a>
+<span class="sourceLineNo">259</span>      // set rowOffset<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      this.storeOffset = scan.getRowOffsetPerColumnFamily();<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      addCurrentScanners(scanners);<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      // Combine all seeked scanners with a heap<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      resetKVHeap(scanners, store.getComparator());<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    } catch (IOException e) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      // remove us from the HStore#changedReaderObservers here or we'll have no chance to<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      // and might cause memory leak<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      this.store.deleteChangedReaderObserver(this);<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      throw e;<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    }<a name="line.269"></a>
+<span class="sourceLineNo">270</span>  }<a name="line.270"></a>
+<span class="sourceLineNo">271</span><a name="line.271"></a>
+<span class="sourceLineNo">272</span>  /**<a name="line.272"></a>
+<span class="sourceLineNo">273</span>   * Used for compactions.&lt;p&gt;<a name="line.273"></a>
+<span class="sourceLineNo">274</span>   *<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   * Opens a scanner across specified StoreFiles.<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   * @param store who we scan<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   * @param scan the spec<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   * @param scanners ancillary scanners<a name="line.278"></a>
+<span class="sourceLineNo">279</span>   * @param smallestReadPoint the readPoint that we should use for tracking<a name="line.279"></a>
+<span class="sourceLineNo">280</span>   *          versions<a name="line.280"></a>
+<span class="sourceLineNo">281</span>   */<a name="line.281"></a>
+<span class="sourceLineNo">282</span>  public StoreScanner(Store store, ScanInfo scanInfo, Scan scan,<a name="line.282"></a>
+<span class="sourceLineNo">283</span>      List&lt;? extends KeyValueScanner&gt; scanners, ScanType scanType,<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      long smallestReadPoint, long earliestPutTs) throws IOException {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    this(store, scanInfo, scan, scanners, scanType, smallestReadPoint, earliestPutTs, null, null);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  /**<a name="line.288"></a>
+<span class="sourceLineNo">289</span>   * Used for compactions that drop deletes from a limited range of rows.&lt;p&gt;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>   *<a name="line.290"></a>
+<span class="sourceLineNo">291</span>   * Opens a scanner across specified StoreFiles.<a name="line.291"></a>
+<span class="sourceLineNo">292</span>   * @param store who we scan<a name="line.292"></a>
+<span class="sourceLineNo">293</span>   * @param scan the spec<a name="line.293"></a>
+<span class="sourceLineNo">294</span>   * @param scanners ancillary scanners<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * @param smallestReadPoint the readPoint that we should use for tracking versions<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   * @param dropDeletesFromRow The inclusive left bound of the range; can be EMPTY_START_ROW.<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   * @param dropDeletesToRow The exclusive right bound of the range; can be EMPTY_END_ROW.<a name="line.297"></a>
+<span class="sourceLineNo">298</span>   */<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public StoreScanner(Store store, ScanInfo scanInfo, Scan scan,<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      List&lt;? extends KeyValueScanner&gt; scanners, long smallestReadPoint, long earliestPutTs,<a name="line.300"></a>
+<span class="sourceLineNo">301</span>      byte[] dropDeletesFromRow, byte[] dropDeletesToRow) throws IOException {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>    this(store, scanInfo, scan, scanners, ScanType.COMPACT_RETAIN_DELETES, smallestReadPoint,<a name="line.302"></a>
+<span class="sourceLineNo">303</span>        earliestPutTs, dropDeletesFromRow, dropDeletesToRow);<a name="line.303"></a>
+<span class="sourceLineNo">304</span>  }<a name="line.304"></a>
+<span class="sourceLineNo">305</span><a name="line.305"></a>
+<span class="sourceLineNo">306</span>  private StoreScanner(Store store, ScanInfo scanInfo, Scan scan,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      List&lt;? extends KeyValueScanner&gt; scanners, ScanType scanType, long smallestReadPoint,<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      long earliestPutTs, byte[] dropDeletesFromRow, byte[] dropDeletesToRow) throws IOException {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    this(store, scan, scanInfo, null,<a name="line.309"></a>
+<span class="sourceLineNo">310</span>        ((HStore) store).getHRegion().getReadPoint(IsolationLevel.READ_COMMITTED), false, scanType);<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    if (scan.hasFilter() || (scan.getStartRow() != null &amp;&amp; scan.getStartRow().length &gt; 0)<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        || (scan.getStopRow() != null &amp;&amp; scan.getStopRow().length &gt; 0)<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        || !scan.getTimeRange().isAllTime()) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      // use legacy query matcher since we do not consider the scan object in our code. Only used to<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      // keep compatibility for coprocessor.<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      matcher = LegacyScanQueryMatcher.create(scan, scanInfo, null, scanType, smallestReadPoint,<a name="line.316"></a>
+<span class="sourceLineNo">317</span>        earliestPutTs, oldestUnexpiredTS, now, dropDeletesFromRow, dropDeletesToRow,<a name="line.317"></a>
+<span class="sourceLineNo">318</span>        store.getCoprocessorHost());<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    } else {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>      matcher = CompactionScanQueryMatcher.create(scanInfo, scanType, smallestReadPoint,<a name="line.320"></a>
+<span class="sourceLineNo">321</span>        earliestPutTs, oldestUnexpiredTS, now, dropDeletesFromRow, dropDeletesToRow,<a name="line.321"></a>
+<span class="sourceLineNo">322</span>        store.getCoprocessorHost());<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span>    // Filter the list of scanners using Bloom filters, time range, TTL, etc.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    scanners = selectScannersFrom(scanners);<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>    // Seek all scanners to the initial key<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    seekScanners(scanners, matcher.getStartKey(), false, parallelSeekEnabled);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    addCurrentScanners(scanners);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    // Combine all seeked scanners with a heap<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    resetKVHeap(scanners, store.getComparator());<a name="line.332"></a>
+<span class="sourceLineNo">333</span>  }<a name="line.333"></a>
+<span class="sourceLineNo">334</span><a name="line.334"></a>
+<span class="sourceLineNo">335</span>  @VisibleForTesting<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  StoreScanner(final Scan scan, ScanInfo scanInfo,<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      ScanType scanType, final NavigableSet&lt;byte[]&gt; columns,<a name="line.337"></a>
+<span class="sourceLineNo">338</span>      final List&lt;? extends KeyValueScanner&gt; scanners) throws IOException {<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    this(scan, scanInfo, scanType, columns, scanners,<a name="line.339"></a>
+<span class="sourceLineNo">340</span>        HConstants.LATEST_TIMESTAMP,<a name="line.340"></a>
+<span class="sourceLineNo">341</span>        // 0 is passed as readpoint because the test bypasses Store<a name="line.341"></a>
+<span class="sourceLineNo">342</span>        0);<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  }<a name="line.343"></a>
+<span class="sourceLineNo">344</span><a name="line.344"></a>
+<span class="sourceLineNo">345</span>  @VisibleForTesting<a name="line.345"></a>
+<span class="sourceLineNo">346</span>  StoreScanner(final Scan scan, ScanInfo scanInfo,<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    ScanType scanType, final NavigableSet&lt;byte[]&gt; columns,<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    final List&lt;? extends KeyValueScanner&gt; scanners, long earliestPutTs)<a name="line.348"></a>
+<span class="sourceLineNo">349</span>        throws IOException {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    this(scan, scanInfo, scanType, columns, scanners, earliestPutTs,<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      // 0 is passed as readpoint because the test bypasses Store<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      0);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>  public StoreScanner(final Scan scan, ScanInfo scanInfo, ScanType scanType,<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      final NavigableSet&lt;byte[]&gt; columns, final List&lt;? extends KeyValueScanner&gt; scanners, long earliestPutTs,<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      long readPt) throws IOException {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    this(null, scan, scanInfo, columns, readPt,<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        scanType == ScanType.USER_SCAN ? scan.getCacheBlocks() : false, scanType);<a name="line.359"></a>
+<span class="sourceLineNo">360</span>    if (scanType == ScanType.USER_SCAN) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>      this.matcher = UserScanQueryMatcher.create(scan, scanInfo, columns, oldestUnexpiredTS, now,<a name="line.361"></a>
+<span class="sourceLineNo">362</span>        null);<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    } else {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>      if (scan.hasFilter() || (scan.getStartRow() != null &amp;&amp; scan.getStartRow().length &gt; 0)<a name="line.364"></a>
+<span class="sourceLineNo">365</span>          || (scan.getStopRow() != null &amp;&amp; scan.getStopRow().length &gt; 0)<a name="line.365"></a>
+<span class="sourceLineNo">366</span>          || !scan.getTimeRange().isAllTime() || columns != null) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>        // use legacy query matcher since we do not consider the scan object in our code. Only used<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        // to keep compatibility for coprocessor.<a name="line.368"></a>
+<span class="sourceLineNo">369</span>        matcher = LegacyScanQueryMatcher.create(scan, scanInfo, columns, scanType, Long.MAX_VALUE,<a name="line.369"></a>
+<span class="sourceLineNo">370</span>          earliestPutTs, oldestUnexpiredTS, now, null, null, store.getCoprocessorHost());<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      } else {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>        this.matcher = CompactionScanQueryMatcher.create(scanInfo, scanType, Long.MAX_VALUE,<a name="line.372"></a>
+<span class="sourceLineNo">373</span>          earliestPutTs, oldestUnexpiredTS, now, null, null, null);<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      }<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    }<a name="line.375"></a>
+<span class="sourceLineNo">376</span><a name="line.376"></a>
+<span class="sourceLineNo">377</span>    // Seek all scanners to the initial key<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    seekScanners(scanners, matcher.getStartKey(), false, parallelSeekEnabled);<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    addCurrentScanners(scanners);<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    resetKVHeap(scanners, scanInfo.getComparator());<a name="line.380"></a>
+<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>  /**<a name="line.383"></a>
+<span class="sourceLineNo">384</span>   * Get a filtered list of scanners. Assumes we are not in a compaction.<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   * @return list of scanners to seek<a name="line.385"></a>
+<span class="sourceLineNo">386</span>   */<a name="line.386"></a>
+<span class="sourceLineNo">387</span>  private List&lt;KeyValueScanner&gt; getScannersNoCompaction() throws IOException {<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    return selectScannersFrom(<a name="line.388"></a>
+<span class="sourceLineNo">389</span>      store.getScanners(cacheBlocks, scanUsePread, false, matcher, scan.getStartRow(),<a name="line.389"></a>
+<span class="sourceLineNo">390</span>        scan.includeStartRow(), scan.getStopRow(), scan.includeStopRow(), this.readPt));<a name="line.390"></a>
+<span class="sourceLineNo">391</span>  }<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>  @VisibleForTesting<a name="line.393"></a>
+<span class="sourceLineNo">394</span>  boolean isScanUsePread() {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    return this.scanUsePread;<a name="line.395"></a>
+<span class="sourceLineNo">396</span>  }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  /**<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   * Seek the specified scanners with the given key<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   * @param scanners<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   * @param seekKey<a name="line.400"></a>
+<span class="sourceLineNo">401</span>   * @param isLazy true if using lazy seek<a name="line.401"></a>
+<span class="sourceLineNo">402</span>   * @param isParallelSeek true if using parallel seek<a name="line.402"></a>
+<span class="sourceLineNo">403</span>   * @throws IOException<a name="line.403"></a>
+<span class="sourceLineNo">404</span>   */<a name="line.404"></a>
+<span class="sourceLineNo">405</span>  protected void seekScanners(List&lt;? extends KeyValueScanner&gt; scanners,<a name="line.405"></a>
+<span class="sourceLineNo">406</span>      Cell seekKey, boolean isLazy, boolean isParallelSeek)<a name="line.406"></a>
+<span class="sourceLineNo">407</span>      throws IOException {<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    // Seek all scanners to the start of the Row (or if the exact matching row<a name="line.408"></a>
+<span class="sourceLineNo">409</span>    // key does not exist, then to the start of the next matching Row).<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    // Always check bloom filter to optimize the top row seek for delete<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    // family marker.<a name="line.411"></a>
+<span class="sourceLineNo">412</span>    if (isLazy) {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>      for (KeyValueScanner scanner : scanners) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>        scanner.requestSeek(seekKey, false, true);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      }<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    } else {<a name="line.416"></a>
+<span class="sourceLineNo">417</span>      if (!isParallelSeek) {<a name="line.417"></a>
+<span class="sourceLineNo">418</span>        long totalScannersSoughtBytes = 0;<a name="line.418"></a>
+<span class="sourceLineNo">419</span>        for (KeyValueScanner scanner : scanners) {<a name="line.419"></a>
+<span class="sourceLineNo">420</span>          if (matcher.isUserScan() &amp;&amp; totalScannersSoughtBytes &gt;= maxRowSize) {<a name="line.420"></a>
+<span class="sourceLineNo">421</span>            throw new RowTooBigException("Max row size allowed: " + maxRowSize<a name="line.421"></a>
+<span class="sourceLineNo">422</span>              + ", but row is bigger than that");<a name="line.422"></a>
+<span class="sourceLineNo">423</span>          }<a name="line.423"></a>
+<span class="sourceLineNo">424</span>          scanner.seek(seekKey);<a name="line.424"></a>
+<span class="sourceLineNo">425</span>          Cell c = scanner.peek();<a name="line.425"></a>
+<span class="sourceLineNo">426</span>          if (c != null) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>            totalScannersSoughtBytes += CellUtil.estimatedSerializedSizeOf(c);<a name="line.427"></a>
+<span class="sourceLineNo">428</span>          }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>        }<a name="line.429"></a>
+<span class="sourceLineNo">430</span>      } else {<a name="line.430"></a>
+<span class="sourceLineNo">431</span>        parallelSeek(scanners, seekKey);<a name="line.431"></a>
+<span class="sourceLineNo">432</span>      }<a name="line.432"></a>
+<span class="sourceLineNo">433</span>    }<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
+<span class="sourceLineNo">435</span><a name="line.435"></a>
+<span class="sourceLineNo">436</span>  protected void resetKVHeap(List&lt;? extends KeyValueScanner&gt; scanners,<a name="line.436"></a>
+<span class="sourceLineNo">437</span>      CellComparator comparator) throws IOException {<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    // Combine all seeked scanners with a heap<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    heap = new KeyValueHeap(scanners, comparator);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>  }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>  /**<a name="line.442"></a>
+<span class="sourceLineNo">443</span>   * Filters the given list of scanners using Bloom filter, time range, and<a name="line.443"></a>
+<span class="sourceLineNo">444</span>   * TTL.<a name="line.444"></a>
+<span class="sourceLineNo">445</span>   * &lt;p&gt;<a name="line.445"></a>
+<span class="sourceLineNo">446</span>   * Will be overridden by testcase so declared as protected.<a name="line.446"></a>
+<span class="sourceLineNo">447</span>   */<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  @VisibleForTesting<a name="line.448"></a>
+<span class="sourceLineNo">449</span>  protected List&lt;KeyValueScanner&gt; selectScannersFrom(<a name="line.449"></a>
+<span class="sourceLineNo">450</span>      final List&lt;? extends KeyValueScanner&gt; allScanners) {<a name="line.450"></a>
+<span class="sourceLineNo">451</span>    boolean memOnly;<a name="line.451"></a>
+<span class="sourceLineNo">452</span>    boolean filesOnly;<a name="line.452"></a>
+<span class="sourceLineNo">453</span>    if (scan instanceof InternalScan) {<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      InternalScan iscan = (InternalScan)scan;<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      memOnly = iscan.isCheckOnlyMemStore();<a name="line.455"></a>
+<span class="sourceLineNo">456</span>      filesOnly = iscan.isCheckOnlyStoreFiles();<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    } else {<a name="line.457"></a>
+<span class="sourceLineNo">458</span>      memOnly = false;<a name="line.458"></a>
+<span class="sourceLineNo">459</span>      filesOnly = false;<a name="line.459"></a>
+<span class="sourceLineNo">460</span>    }<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>    List&lt;KeyValueScanner&gt; scanners = new ArrayList&lt;&gt;(allScanners.size());<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>    // We can only exclude store files based on TTL if minVersions is set to 0.<a name="line.464"></a>
+<span class="sourceLineNo">465</span>    // Otherwise, we might have to return KVs that have technically expired.<a name="line.465"></a>
+<span class="sourceLineNo">466</span>    long expiredTimestampCutoff = minVersions == 0 ? oldestUnexpiredTS: Long.MIN_VALUE;<a name="line.466"></a>
+<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">468</span>    // include only those scan files which pass all filters<a name="line.468"></a>
+<span class="sourceLineNo">469</span>    for (KeyValueScanner kvs : allScanners) {<a name="line.469"></a>
+<span class="sourceLineNo">470</span>      boolean isFile = kvs.isFileScanner();<a name="line.470"></a>
+<span class="sourceLineNo">471</span>      if ((!isFile &amp;&amp; filesOnly) || (isFile &amp;&amp; memOnly)) {<a name="line.471"></a>
+<span class="sourceLineNo">472</span>        continue;<a name="line.472"></a>
+<span class="sourceLineNo">473</span>      }<a name="line.473"></a>
 <span class="sourceLineNo">474</span><a name="line.474"></a>
-<span class="sourceLineNo">475</span>  @Override<a name="line.475"></a>
-<span class="sourceLineNo">476</span>  public Cell peek() {<a name="line.476"></a>
-<span class="sourceLineNo">477</span>    return heap != null ? heap.peek() : null;<a name="line.477"></a>
-<span class="sourceLineNo">478</span>  }<a name="line.478"></a>
-<span class="sourceLineNo">479</span><a name="line.479"></a>
-<span class="sourceLineNo">480</span>  @Override<a name="line.480"></a>
-<span class="sourceLineNo">481</span>  public KeyValue next() {<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    // throw runtime exception perhaps?<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    throw new RuntimeException("Never call StoreScanner.next()");<a name="line.483"></a>
-<span class="sourceLineNo">484</span>  }<a name="line.484"></a>
-<span class="sourceLineNo">485</span><a name="line.485"></a>
-<span class="sourceLineNo">486</span>  @Override<a name="line.486"></a>
-<span class="sourceLineNo">487</span>  public void close() {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    close(true);<a name="line.488"></a>
-<span class="sourceLineNo">489</span>  }<a name="line.489"></a>
-<span class="sourceLineNo">490</span><a name="line.490"></a>
-<span class="sourceLineNo">491</span>  private void close(boolean withDelayedScannersClose) {<a name="line.491"></a>
-<span class="sourceLineNo">492</span>    if (this.closing) {<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      return;<a name="line.493"></a>
-<span class="sourceLineNo">494</span>    }<a name="line.494"></a>
-<span class="sourceLineNo">495</span>    if (withDelayedScannersClose) {<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      this.closing = true;<a name="line.496"></a>
-<span class="sourceLineNo">497</span>    }<a name="line.497"></a>
-<span class="sourceLineNo">498</span>    // Under test, we dont have a this.store<a name="line.498"></a>
-<span class="sourceLineNo">499</span>    if (this.store != null) {<a name="line.499"></a>
-<span class="sourceLineNo">500</span>      this.store.deleteChangedReaderObserver(this);<a name="line.500"></a>
-<span class="sourceLineNo">501</span>    }<a name="line.501"></a>
-<span class="sourceLineNo">502</span>    if (withDelayedScannersClose) {<a name="line.502"></a>
-<span class="sourceLineNo">503</span>      clearAndClose(scannersForDelayedClose);<a name="line.503"></a>
-<span class="sourceLineNo">504</span>      clearAndClose(memStoreScannersAfterFlush);<a name="line.504"></a>
-<span class="sourceLineNo">505</span>      if (this.heap != null) {<a name="line.505"></a>
-<span class="sourceLineNo">506</span>        this.heap.close();<a name="line.506"></a>
-<span class="sourceLineNo">507</span>        this.currentScanners.clear();<a name="line.507"></a>
-<span class="sourceLineNo">508</span>        this.heap = null; // CLOSED!<a name="line.508"></a>
-<span class="sourceLineNo">509</span>      }<a name="line.509"></a>
-<span class="sourceLineNo">510</span>    } else {<a name="line.510"></a>
-<span class="sourceLineNo">511</span>      if (this.heap != null) {<a name="line.511"></a>
-<span class="sourceLineNo">512</span>        this.scannersForDelayedClose.add(this.heap);<a name="line.512"></a>
-<span class="sourceLineNo">513</span>        this.currentScanners.clear();<a name="line.513"></a>
-<span class="sourceLineNo">514</span>        this.heap = null;<a name="line.514"></a>
-<span class="sourceLineNo">515</span>      }<a name="line.515"></a>
-<span class="sourceLineNo">516</span>    }<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  }<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>  @Override<a name="line.519"></a>
-<span class="sourceLineNo">520</span>  public boolean seek(Cell key) throws IOException {<a name="line.520"></a>
-<span class="sourceLineNo">521</span>    if (checkFlushed()) {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>      reopenAfterFlush();<a name="line.522"></a>
-<span class="sourceLineNo">523</span>    }<a name="line.523"></a>
-<span class="sourceLineNo">524</span>    return this.heap.seek(key);<a name="line.524"></a>
-<span class="sourceLineNo">525</span>  }<a name="line.525"></a>
-<span class="sourceLineNo">526</span><a name="line.526"></a>
-<span class="sourceLineNo">527</span>  @Override<a name="line.527"></a>
-<span class="sourceLineNo">528</span>  public boolean next(List&lt;Cell&gt; outResult) throws IOException {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    return next(outResult, NoLimitScannerContext.getInstance());<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>  /**<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * Get the next row of values from this Store.<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @param outResult<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   * @param scannerContext<a name="line.535"></a>
-<span class="sourceLineNo">536</span>   * @return true if there are more rows, false if scanner is done<a name="line.536"></a>
-<span class="sourceLineNo">537</span>   */<a name="line.537"></a>
-<span class="sourceLineNo">538</span>  @Override<a name="line.538"></a>
-<span class="sourceLineNo">539</span>  public boolean next(List&lt;Cell&gt; outResult, ScannerContext scannerContext) throws IOException {<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    if (scannerContext == null) {<a name="line.540"></a>
-<span class="sourceLineNo">541</span>      throw new IllegalArgumentException("Scanner context cannot be null");<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    }<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    if (checkFlushed() &amp;&amp; reopenAfterFlush()) {<a name="line.543"></a>
-<span class="sourceLineNo">544</span>      return scannerContext.setScannerState(NextState.MORE_VALUES).hasMoreValues();<a name="line.544"></a>
-<span class="sourceLineNo">545</span>    }<a name="line.545"></a>
-<span class="sourceLineNo">546</span><a name="line.546"></a>
-<span class="sourceLineNo">547</span>    // if the heap was left null, then the scanners had previously run out anyways, close and<a name="line.547"></a>
-<span class="sourceLineNo">548</span>    // return.<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    if (this.heap == null) {<a name="line.549"></a>
-<span class="sourceLineNo">550</span>      // By this time partial close should happened because already heap is null<a name="line.550"></a>
-<span class="sourceLineNo">551</span>      close(false);// Do all cleanup except heap.close()<a name="line.551"></a>
-<span class="sourceLineNo">552</span>      return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    }<a name="line.553"></a>
-<span class="sourceLineNo">554</span><a name="line.554"></a>
-<span class="sourceLineNo">555</span>    Cell cell = this.heap.peek();<a name="line.555"></a>
-<span class="sourceLineNo">556</span>    if (cell == null) {<a name="line.556"></a>
-<span class="sourceLineNo">557</span>      close(false);// Do all cleanup except heap.close()<a name="line.557"></a>
-<span class="sourceLineNo">558</span>      return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    }<a name="line.559"></a>
-<span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>    // only call setRow if the row changes; avoids confusing the query matcher<a name="line.561"></a>
-<span class="sourceLineNo">562</span>    // if scanning intra-row<a name="line.562"></a>
+<span class="sourceLineNo">475</span>      if (kvs.shouldUseScanner(scan, store, expiredTimestampCutoff)) {<a name="line.475"></a>
+<span class="sourceLineNo">476</span>        scanners.add(kvs);<a name="line.476"></a>
+<span class="sourceLineNo">477</span>      } else {<a name="line.477"></a>
+<span class="sourceLineNo">478</span>        kvs.close();<a name="line.478"></a>
+<span class="sourceLineNo">479</span>      }<a name="line.479"></a>
+<span class="sourceLineNo">480</span>    }<a name="line.480"></a>
+<span class="sourceLineNo">481</span>    return scanners;<a name="line.481"></a>
+<span class="sourceLineNo">482</span>  }<a name="line.482"></a>
+<span class="sourceLineNo">483</span><a name="line.483"></a>
+<span class="sourceLineNo">484</span>  @Override<a name="line.484"></a>
+<span class="sourceLineNo">485</span>  public Cell peek() {<a name="line.485"></a>
+<span class="sourceLineNo">486</span>    return heap != null ? heap.peek() : null;<a name="line.486"></a>
+<span class="sourceLineNo">487</span>  }<a name="line.487"></a>
+<span class="sourceLineNo">488</span><a name="line.488"></a>
+<span class="sourceLineNo">489</span>  @Override<a name="line.489"></a>
+<span class="sourceLineNo">490</span>  public KeyValue next() {<a name="line.490"></a>
+<span class="sourceLineNo">491</span>    // throw runtime exception perhaps?<a name="line.491"></a>
+<span class="sourceLineNo">492</span>    throw new RuntimeException("Never call StoreScanner.next()");<a name="line.492"></a>
+<span class="sourceLineNo">493</span>  }<a name="line.493"></a>
+<span class="sourceLineNo">494</span><a name="line.494"></a>
+<span class="sourceLineNo">495</span>  @Override<a name="line.495"></a>
+<span class="sourceLineNo">496</span>  public void close() {<a name="line.496"></a>
+<span class="sourceLineNo">497</span>    close(true);<a name="line.497"></a>
+<span class="sourceLineNo">498</span>  }<a name="line.498"></a>
+<span class="sourceLineNo">499</span><a name="line.499"></a>
+<span class="sourceLineNo">500</span>  private void close(boolean withDelayedScannersClose) {<a name="line.500"></a>
+<span class="sourceLineNo">501</span>    if (this.closing) {<a name="line.501"></a>
+<span class="sourceLineNo">502</span>      return;<a name="line.502"></a>
+<span class="sourceLineNo">503</span>    }<a name="line.503"></a>
+<span class="sourceLineNo">504</span>    if (withDelayedScannersClose) {<a name="line.504"></a>
+<span class="sourceLineNo">505</span>      this.closing = true;<a name="line.505"></a>
+<span class="sourceLineNo">506</span>    }<a name="line.506"></a>
+<span class="sourceLineNo">507</span>    // Under test, we dont have a this.store<a name="line.507"></a>
+<span class="sourceLineNo">508</span>    if (this.store != null) {<a name="line.508"></a>
+<span class="sourceLineNo">509</span>      this.store.deleteChangedReaderObserver(this);<a name="line.509"></a>
+<span class="sourceLineNo">510</span>    }<a name="line.510"></a>
+<span class="sourceLineNo">511</span>    if (withDelayedScannersClose) {<a name="line.511"></a>
+<span class="sourceLineNo">512</span>      clearAndClose(scannersForDelayedClose);<a name="line.512"></a>
+<span class="sourceLineNo">513</span>      clearAndClose(memStoreScannersAfterFlush);<a name="line.513"></a>
+<span class="sourceLineNo">514</span>      if (this.heap != null) {<a name="line.514"></a>
+<span class="sourceLineNo">515</span>        this.heap.close();<a name="line.515"></a>
+<span class="sourceLineNo">516</span>        this.currentScanners.clear();<a name="line.516"></a>
+<span class="sourceLineNo">517</span>        this.heap = null; // CLOSED!<a name="line.517"></a>
+<span class="sourceLineNo">518</span>      }<a name="line.518"></a>
+<span class="sourceLineNo">519</span>    } else {<a name="line.519"></a>
+<span class="sourceLineNo">520</span>      if (this.heap != null) {<a name="line.520"></a>
+<span class="sourceLineNo">521</span>        this.scannersForDelayedClose.add(this.heap);<a name="line.521"></a>
+<span class="sourceLineNo">522</span>        this.currentScanners.clear();<a name="line.522"></a>
+<span class="sourceLineNo">523</span>        this.heap = null;<a name="line.523"></a>
+<span class="sourceLineNo">524</span>      }<a name="line.524"></a>
+<span class="sourceLineNo">525</span>    }<a name="line.525"></a>
+<span class="sourceLineNo">526</span>  }<a name="line.526"></a>
+<span class="sourceLineNo">527</span><a name="line.527"></a>
+<span class="sourceLineNo">528</span>  @Override<a name="line.528"></a>
+<span class="sourceLineNo">529</span>  public boolean seek(Cell key) throws IOException {<a name="line.529"></a>
+<span class="sourceLineNo">530</span>    if (checkFlushed()) {<a name="line.530"></a>
+<span class="sourceLineNo">531</span>      reopenAfterFlush();<a name="line.531"></a>
+<span class="sourceLineNo">532</span>    }<a name="line.532"></a>
+<span class="sourceLineNo">533</span>    return this.heap.seek(key);<a name="line.533"></a>
+<span class="sourceLineNo">534</span>  }<a name="line.534"></a>
+<span class="sourceLineNo">535</span><a name="line.535"></a>
+<span class="sourceLineNo">536</span>  @Override<a name="line.536"></a>
+<span class="sourceLineNo">537</span>  public boolean next(List&lt;Cell&gt; outResult) throws IOException {<a name="line.537"></a>
+<span class="sourceLineNo">538</span>    return next(outResult, NoLimitScannerContext.getInstance());<a name="line.538"></a>
+<span class="sourceLineNo">539</span>  }<a name="line.539"></a>
+<span class="sourceLineNo">540</span><a name="line.540"></a>
+<span class="sourceLineNo">541</span>  /**<a name="line.541"></a>
+<span class="sourceLineNo">542</span>   * Get the next row of values from this Store.<a name="line.542"></a>
+<span class="sourceLineNo">543</span>   * @param outResult<a name="line.543"></a>
+<span class="sourceLineNo">544</span>   * @param scannerContext<a name="line.544"></a>
+<span class="sourceLineNo">545</span>   * @return true if there are more rows, false if scanner is done<a name="line.545"></a>
+<span class="sourceLineNo">546</span>   */<a name="line.546"></a>
+<span class="sourceLineNo">547</span>  @Override<a name="line.547"></a>
+<span class="sourceLineNo">548</span>  public boolean next(List&lt;Cell&gt; outResult, ScannerContext scannerContext) throws IOException {<a name="line.548"></a>
+<span class="sourceLineNo">549</span>    if (scannerContext == null) {<a name="line.549"></a>
+<span class="sourceLineNo">550</span>      throw new IllegalArgumentException("Scanner context cannot be null");<a name="line.550"></a>
+<span class="sourceLineNo">551</span>    }<a name="line.551"></a>
+<span class="sourceLineNo">552</span>    if (checkFlushed() &amp;&amp; reopenAfterFlush()) {<a name="line.552"></a>
+<span class="sourceLineNo">553</span>      return scannerContext.setScannerState(NextState.MORE_VALUES).hasMoreValues();<a name="line.553"></a>
+<span class="sourceLineNo">554</span>    }<a name="line.554"></a>
+<span class="sourceLineNo">555</span><a name="line.555"></a>
+<span class="sourceLineNo">556</span>    // if the heap was left null, then the scanners had previously run out anyways, close and<a name="line.556"></a>
+<span class="sourceLineNo">557</span>    // return.<a name="line.557"></a>
+<span class="sourceLineNo">558</span>    if (this.heap == null) {<a name="line.558"></a>
+<span class="sourceLineNo">559</span>      // By this time partial close should happened because already heap is null<a name="line.559"></a>
+<span class="sourceLineNo">560</span>      close(false);// Do all cleanup except heap.close()<a name="line.560"></a>
+<span class="sourceLineNo">561</span>      return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();<a name="line.561"></a>
+<span class="sourceLineNo">562</span>    }<a name="line.562"></a>
 <span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>    // If no limits exists in the scope LimitScope.Between_Cells then we are sure we are changing<a name="line.564"></a>
-<span class="sourceLineNo">565</span>    // rows. Else it is possible we are still traversing the same row so we must perform the row<a name="line.565"></a>
-<span class="sourceLineNo">566</span>    // comparison.<a name="line.566"></a>
-<span class="sourceLineNo">567</span>    if (!scannerContext.hasAnyLimit(LimitScope.BETWEEN_CELLS) || matcher.currentRow() == null) {<a name="line.567"></a>
-<span class="sourceLineNo">568</span>      this.countPerRow = 0;<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      matcher.setToNewRow(cell);<a name="line.569"></a>
-<span class="sourceLineNo">570</span>    }<a name="line.570"></a>
-<span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span>    // Clear progress away unless invoker has indicated it should be kept.<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    if (!scannerContext.getKeepProgress()) {<a name="line.573"></a>
-<span class="sourceLineNo">574</span>      scannerContext.clearProgress();<a name="line.574"></a>
-<span class="sourceLineNo">575</span>    }<a name="line.575"></a>
-<span class="sourceLineNo">576</span><a name="line.576"></a>
-<span class="sourceLineNo">577</span>    // Only do a sanity-check if store and comparator are available.<a name="line.577"></a>
-<span class="sourceLineNo">578</span>    CellComparator comparator = store != null ? store.getComparator() : null;<a name="line.578"></a>
-<span class="sourceLineNo">579</span><a name="line.579"></a>
-<span class="sourceLineNo">580</span>    int count = 0;<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    long totalBytesRead = 0;<a name="line.581"></a>
-<span class="sourceLineNo">582</span><a name="line.582"></a>
-<span class="sourceLineNo">583</span>    LOOP: do {<a name="line.583"></a>
-<span class="sourceLineNo">584</span>      // Update and check the time limit based on the configured value of cellsPerTimeoutCheck<a name="line.584"></a>
-<span class="sourceLineNo">585</span>      if ((kvsScanned % cellsPerHeartbeatCheck == 0)) {<a name="line.585"></a>
-<span class="sourceLineNo">586</span>        scannerContext.updateTimeProgress();<a name="line.586"></a>
-<span class="sourceLineNo">587</span>        if (scannerContext.checkTimeLimit(LimitScope.BETWEEN_CELLS)) {<a name="line.587"></a>
-<span class="sourceLineNo">588</span>          scannerContext.setPeekedCellInHeartbeat(prevCell);<a name="line.588"></a>
-<span class="sourceLineNo">589</span>          return scannerContext.setScannerState(NextState.TIME_LIMIT_REACHED).hasMoreValues();<a name="line.589"></a>
-<span class="sourceLineNo">590</span>        }<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      }<a name="line.591"></a>
-<span class="sourceLineNo">592</span>      // Do object compare - we set prevKV from the same heap.<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      if (prevCell != cell) {<a name="line.593"></a>
-<span class="sourceLineNo">594</span>        ++kvsScanned;<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      }<a name="line.595"></a>
-<span class="sourceLineNo">596</span>      checkScanOrder(prevCell, cell, comparator);<a name="line.596"></a>
-<span class="sourceLineNo">597</span>      int cellSize = CellUtil.estimatedSerializedSizeOf(cell);<a name="line.597"></a>
-<span class="sourceLineNo">598</span>      bytesRead += cellSize;<a name="line.598"></a>
-<span class="sourceLineNo">599</span>      prevCell = cell;<a name="line.599"></a>
-<span class="sourceLineNo">600</span>      ScanQueryMatcher.MatchCode qcode = matcher.match(cell);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>      switch (qcode) {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>        case INCLUDE:<a name="line.602"></a>
-<span class="sourceLineNo">603</span>        case INCLUDE_AND_SEEK_NEXT_ROW:<a name="line.603"></a>
-<span class="sourceLineNo">604</span>        case INCLUDE_AND_SEEK_NEXT_COL:<a name="line.604"></a>
-<span class="sourceLineNo">605</span><a name="line.605"></a>
-<span class="sourceLineNo">606</span>          Filter f = matcher.getFilter();<a name="line.606"></a>
-<span class="sourceLineNo">607</span>          if (f != null) {<a name="line.607"></a>
-<span class="sourceLineNo">608</span>            cell = f.transformCell(cell);<a name="line.608"></a>
-<span class="sourceLineNo">609</span>          }<a name="line.609"></a>
-<span class="sourceLineNo">610</span><a name="line.610"></a>
-<span class="sourceLineNo">611</span>          this.countPerRow++;<a name="line.611"></a>
-<span class="sourceLineNo">612</span>          if (storeLimit &gt; -1 &amp;&amp; this.countPerRow &gt; (storeLimit + storeOffset)) {<a name="line.612"></a>
-<span class="sourceLineNo">613</span>            // do what SEEK_NEXT_ROW does.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>            if (!matcher.moreRowsMayExistAfter(cell)) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>              close(false);// Do all cleanup except heap.close()<a name="line.615"></a>
-<span class="sourceLineNo">616</span>              return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();<a name="line.616"></a>
-<span class="sourceLineNo">617</span>            }<a name="line.617"></a>
-<span class="sourceLineNo">618</span>            matcher.clearCurrentRow();<a name="line.618"></a>
-<span class="sourceLineNo">619</span>            seekToNextRow(cell);<a name="line.619"></a>
-<span class="sourceLineNo">620</span>            break LOOP;<a name="line.620"></a>
-<span class="sourceLineNo">621</span>          }<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>          // add to results only if we have skipped #storeOffset kvs<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          // also update metric accordingly<a name="line.624"></a>
-<span class="sourceLineNo">625</span>          if (this.countPerRow &gt; storeOffset) {<a name="line.625"></a>
-<span class="sourceLineNo">626</span>            outResult.add(cell);<a name="line.626"></a>
-<span class="sourceLineNo">627</span><a name="line.627"></a>
-<span class="sourceLineNo">628</span>            // Update local tracking information<a name="line.628"></a>
-<span class="sourceLineNo">629</span>            count++;<a name="line.629"></a>
-<span class="sourceLineNo">630</span>            totalBytesRead += cellSize;<a name="line.630"></a>
+<span class="sourceLineNo">564</span>    Cell cell = this.heap.peek();<a name="line.564"></a>
+<span class="sourceLineNo">565</span>    if (cell == null) {<a name="line.565"></a>
+<span class="sourceLineNo">566</span>      close(false);// Do all cleanup except heap.close()<a name="line.566"></a>
+<span class="sourceLineNo">567</span>      return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();<a name="line.567"></a>
+<span class="sourceLineNo">568</span>    }<a name="line.568"></a>
+<span class="sourceLineNo">569</span><a name="line.569"></a>
+<span class="sourceLineNo">570</span>    // only call setRow if the row changes; avoids confusing the query matcher<a name="line.570"></a>
+<span class="sourceLineNo">571</span>    // if scanning intra-row<a name="line.571"></a>
+<span class="sourceLineNo">572</span><a name="line.572"></a>
+<span class="sourceLineNo">573</span>    // If no limits exists in the scope LimitScope.Between_Cells then we are sure we are changing<a name="line.573"></a>
+<span class="sourceLineNo">574</span>    // rows. Else it is possible we are still traversing the same row so we must perform the row<a name="line.574"></a>
+<span class="sourceLineNo">575</span>    // comparison.<a name="line.575"></a>
+<span class="sourceLineNo">576</span>    if (!scannerContext.hasAnyLimit(LimitScope.BETWEEN_CELLS) || matcher.currentRow() == null) {<a name="line.576"></a>
+<span class="sourceLineNo">577</span>      this.countPerRow = 0;<a name="line.577"></a>
+<span class="sourceLineNo">578</span>      matcher.setToNewRow(cell);<a name="line.578"></a>
+<span class="sourceLineNo">579</span>    }<a name="line.579"></a>
+<span class="sourceLineNo">580</span><a name="line.580"></a>
+<span class="sourceLineNo">581</span>    // Clear progress away unless invoker has indicated it should be kept.<a name="line.581"></a>
+<span class="sourceLineNo">582</span>    if (!scannerContext.getKeepProgress()) {<a name="line.582"></a>
+<span class="sourceLineNo">583</span>      scannerContext.clearProgress();<a name="line.583"></a>
+<span class="sourceLineNo">584</span>    }<a name="line.584"></a>
+<span class="sourceLineNo">585</span><a name="line.585"></a>
+<span class="sourceLineNo">586</span>    // Only do a sanity-check if store and comparator are available.<a name="line.586"></a>
+<span class="sourceLineNo">587</span>    CellComparator comparator = store != null ? store.getComparator() : null;<a name="line.587"></a>
+<span class="sourceLineNo">588</span><a name="line.588"></a>
+<span class="sourceLineNo">589</span>    int count = 0;<a name="line.589"></a>
+<span class="sourceLineNo">590</span>    long totalBytesRead = 0;<a name="line.590"></a>
+<span class="sourceLineNo">591</span><a name="line.591"></a>
+<span class="sourceLineNo">592</span>    LOOP: do {<a name="line.592"></a>
+<span class="sourceLineNo">593</span>      // Update and check the time limit based on the configured value of cellsPerTimeoutCheck<a name="line.593"></a>
+<span class="sourceLineNo">594</span>      if ((kvsScanned % cellsPerHeartbeatCheck == 0)) {<a name="line.594"></a>
+<span class="sourceLineNo">595</span>        scannerContext.updateTimeProgress();<a name="line.595"></a>
+<span class="sourceLineNo">596</span>        if (scannerContext.checkTimeLimit(LimitScope.BETWEEN_CELLS)) {<a name="line.596"></a>
+<span class="sourceLineNo">597</span>          scannerContext.setPeekedCellInHeartbeat(prevCell);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>          return scannerContext.setScannerState(NextState.TIME_LIMIT_REACHED).hasMoreValues();<a name="line.598"></a>
+<span class="sourceLineNo">599</span>        }<a name="line.599"></a>
+<span class="sourceLineNo">600</span>      }<a name="line.600"></a>
+<span class="sourceLineNo">601</span>      // Do object compare - we set prevKV from the same heap.<a name="line.601"></a>
+<span class="sourceLineNo">602</span>      if (prevCell != cell) {<a name="line.602"></a>
+<span class="sourceLineNo">603</span>        ++kvsScanned;<a name="line.603"></a>
+<span class="sourceLineNo">604</span>      }<a name="line.604"></a>
+<span class="sourceLineNo">605</span>      checkScanOrder(prevCell, cell, comparator);<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      int cellSize = CellUtil.estimatedSerializedSizeOf(cell);<a name="line.606"></a>
+<span class="sourceLineNo">607</span>      bytesRead += cellSize;<a name="line.607"></a>
+<span class="sourceLineNo">608</span>      prevCell = cell;<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      ScanQueryMatcher.MatchCode qcode = matcher.match(cell);<a name="line.609"></a>
+<span class="sourceLineNo">610</span>      switch (qcode) {<a name="line.610"></a>
+<span class="sourceLineNo">611</span>        case INCLUDE:<a name="line.611"></a>
+<span class="sourceLineNo">612</span>        case INCLUDE_AND_SEEK_NEXT_ROW:<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        case INCLUDE_AND_SEEK_NEXT_COL:<a name="line.613"></a>
+<span class="sourceLineNo">614</span><a name="line.614"></a>
+<span class="sourceLineNo">615</span>          Filter f = matcher.getFilter();<a name="line.615"></a>
+<span class="sourceLineNo">616</span>          if (f != null) {<a name="line.616"></a>
+<span class="sourceLineNo">617</span>            cell = f.transformCell(cell);<a name="line.617"></a>
+<span class="sourceLineNo">618</span>          }<a name="line.618"></a>
+<span class="sourceLineNo">619</span><a name="line.619"></a>
+<span class="sourceLineNo">620</span>          this.countPerRow++;<a name="line.620"></a>
+<span class="sourceLineNo">621</span>          if (storeLimit &gt; -1 &amp;&amp; this.countPerRow &gt; (storeLimit + storeOffset)) {<a name="line.621"></a>
+<span class="sourceLineNo">622</span>            // do what SEEK_NEXT_ROW does.<a name="line.622"></a>
+<span class="sourceLineNo">623</span>            if (!matcher.moreRowsMayExistAfter(cell)) {<a name="line.623"></a>
+<span class="sourceLineNo">624</span>              close(false);// Do all cleanup except heap.close()<a name="line.624"></a>
+<span class="sourceLineNo">625</span>              return scannerContext.setScannerState(NextState.NO_MORE_VALUES).hasMoreValues();<a name="line.625"></a>
+<span class="sourceLineNo">626</span>            }<a name="line.626"></a>
+<span class="sourceLineNo">627</span>            matcher.clearCurrentRow();<a name="line.627"></a>
+<span class="sourceLineNo">628</span>            seekToNextRow(cell);<a name="line.628"></a>
+<span class="sourceLineNo">629</span>            b

<TRUNCATED>

[04/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html b/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
index 1217cfe..777c233 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
+++ b/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>
@@ -129,10 +129,10 @@
 <td>33</td></tr>
 <tr class="b">
 <th>Number of dependencies (NOD):</th>
-<td>93</td></tr>
+<td>92</td></tr>
 <tr class="a">
 <th>Number of unique artifacts (NOA):</th>
-<td>94</td></tr>
+<td>93</td></tr>
 <tr class="b">
 <th>Number of SNAPSHOT artifacts (NOS):</th>
 <td>0</td></tr>
@@ -266,7 +266,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.3.1</td>
+<td width="25%">1.4</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-it">org.apache.hbase:hbase-it</a></li>
@@ -309,7 +309,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.4</td>
+<td width="25%">2.5</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -366,18 +366,6 @@
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-spark">org.apache.hbase:hbase-spark</a></li>
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
 <div class="section">
-<h4><a name="commons-net:commons-net"></a>commons-net:commons-net</h4>
-<table border="0" class="bodyTable">
-<tr class="b">
-<td><img alt="success" src="images/icon_success_sml.gif" /></td>
-<td>
-<table border="0" class="bodyTable">
-<tr class="a">
-<td width="25%">3.1</td>
-<td>
-<ol style="list-style-type: lower-alpha">
-<li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
-<div class="section">
 <h4><a name="io.dropwizard.metrics:metrics-core"></a>io.dropwizard.metrics:metrics-core</h4>
 <table border="0" class="bodyTable">
 <tr class="b">
@@ -385,7 +373,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.1.2</td>
+<td width="25%">3.2.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -416,7 +404,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.1.1.Final</td>
+<td width="25%">4.1.9.Final</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -444,7 +432,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.2.2</td>
+<td width="25%">2.2.12</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li></ol></td></tr></table></td></tr></table></div>
@@ -556,7 +544,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.6</td>
+<td width="25%">2.12.2</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">org.apache.hbase:hbase-external-blockcache</a></li></ol></td></tr></table></td></tr></table></div>
@@ -608,7 +596,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -620,7 +608,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -632,7 +620,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1217,7 +1205,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.1.0-incubating</td>
+<td width="25%">3.2.0-incubating</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1235,7 +1223,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.5.2</td>
+<td width="25%">4.5.3</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1249,7 +1237,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.4.4</td>
+<td width="25%">4.4.6</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1337,7 +1325,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.4.8</td>
+<td width="25%">3.4.9</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1492,7 +1480,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.22.2</td>
+<td width="25%">2.25.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li>
@@ -1568,7 +1556,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">9.1.9.0</td>
+<td width="25%">9.1.10.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-shell">org.apache.hbase:hbase-shell</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1580,7 +1568,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.10.8</td>
+<td width="25%">1.10.19</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">org.apache.hbase:hbase-annotations</a></li>
@@ -1660,7 +1648,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1672,7 +1660,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-testing-util">org.apache.hbase:hbase-testing-util</a></li></ol></td></tr></table></td></tr></table></div></div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependency-info.html b/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
index 6980a71..5458e7e 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
+++ b/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependency-management.html b/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
index 738b5ee..cc1208b 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
+++ b/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>
@@ -149,9 +149,9 @@
 <tr class="b">
 <td>commons-cli</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">commons-cli</a></td>
-<td>1.3.1</td>
+<td>1.4</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-codec</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-codec/">commons-codec</a></td>
@@ -166,10 +166,10 @@
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-io</td>
-<td><a class="externalLink" href="http://commons.apache.org/io/">commons-io</a></td>
-<td>2.4</td>
+<td><a class="externalLink" href="http://commons.apache.org/proper/commons-io/">commons-io</a></td>
+<td>2.5</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="b">
 <td>commons-lang</td>
 <td><a class="externalLink" href="http://commons.apache.org/lang/">commons-lang</a></td>
@@ -183,411 +183,405 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
 <tr class="b">
-<td>commons-net</td>
-<td><a class="externalLink" href="http://commons.apache.org/net/">commons-net</a></td>
-<td>3.1</td>
-<td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
 <td>io.dropwizard.metrics</td>
 <td><a class="externalLink" href="http://metrics.codahale.com/metrics-core/">metrics-core</a></td>
-<td>3.1.2</td>
+<td>3.2.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>io.netty</td>
 <td><a class="externalLink" href="http://netty.io/netty-all/">netty-all</a></td>
-<td>4.1.1.Final</td>
+<td>4.1.9.Final</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>javax.servlet</td>
 <td><a class="externalLink" href="http://servlet-spec.java.net">javax.servlet-api</a></td>
 <td>3.1.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>javax.xml.bind</td>
-<td><a class="externalLink" href="https://jaxb.dev.java.net/">jaxb-api</a></td>
-<td>2.2.2</td>
+<td><a class="externalLink" href="http://jaxb.java.net/">jaxb-api</a></td>
+<td>2.2.12</td>
 <td>jar</td>
-<td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
-<tr class="a">
+<td><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
+<tr class="b">
 <td>junit</td>
 <td><a class="externalLink" href="http://junit.org">junit</a></td>
 <td>4.12</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>log4j</td>
 <td><a class="externalLink" href="http://logging.apache.org/log4j/1.2/">log4j</a></td>
 <td>1.2.17</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>net.spy</td>
 <td><a class="externalLink" href="http://www.couchbase.org/code/couchbase/java">spymemcached</a></td>
-<td>2.11.6</td>
+<td>2.12.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-crypto/">commons-crypto</a></td>
 <td>1.0.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math</a></td>
 <td>2.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-client">curator-client</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-framework">curator-framework</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-recipes">curator-recipes</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-auth</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-client</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-hdfs</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-core</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-jobclient</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-minicluster</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-client">hbase-client</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-common">hbase-common</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-endpoint">hbase-endpoint</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-examples">hbase-examples</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">hbase-external-blockcache</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop-compat">hbase-hadoop-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop2-compat">hbase-hadoop2-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics">hbase-metrics</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics-api">hbase-metrics-api</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol">hbase-protocol</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol-shaded">hbase-protocol-shaded</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-rsgroup">hbase-rsgroup</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-server">hbase-server</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-shell">hbase-shell</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">hbase-thrift</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.htrace</td>
 <td><a class="externalLink" href="http://incubator.apache.org/projects/htrace.html">htrace-core</a></td>
-<td>3.1.0-incubating</td>
+<td>3.2.0-incubating</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">httpclient</a></td>
-<td>4.5.2</td>
+<td>4.5.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">httpcore</a></td>
-<td>4.4.4</td>
+<td>4.4.6</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-client">kerb-client</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-simplekdc">kerb-simplekdc</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.thrift</td>
 <td><a class="externalLink" href="http://thrift.apache.org">libthrift</a></td>
 <td>0.9.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.zookeeper</td>
 <td>zookeeper</td>
-<td>3.4.8</td>
+<td>3.4.9</td>
 <td>jar</td>
-<td>-</td></tr>
-<tr class="b">
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-core-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-jaxrs</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-mapper-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-xc</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jettison</td>
-<td><a class="externalLink" href="http://codehaus.org/jettison/">jettison</a></td>
-<td>1.3.3</td>
+<td><a class="externalLink" href="https://github.com/jettison-json/jettison">jettison</a></td>
+<td>1.3.8</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jsp</a></td>
 <td>9.2.19.v20160908</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.jersey.containers</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">jersey-container-servlet-core</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.jersey.media</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-media-json-jackson1/">jersey-media-json-jackson1</a></td>
 <td>2.23.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
-<td>9.1.9.0</td>
+<td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
-<td>1.7.7</td>
+<td>1.7.24</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr></table></div>
 <div class="section">
@@ -715,7 +709,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr></table></div></div>
       </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/index.html b/hbase-archetypes/hbase-shaded-client-project/index.html
index 71d4af1..d38a93b 100644
--- a/hbase-archetypes/hbase-shaded-client-project/index.html
+++ b/hbase-archetypes/hbase-shaded-client-project/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/integration.html b/hbase-archetypes/hbase-shaded-client-project/integration.html
index edaff20..225f44c 100644
--- a/hbase-archetypes/hbase-shaded-client-project/integration.html
+++ b/hbase-archetypes/hbase-shaded-client-project/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html b/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
index 34fb7e8..b7762ac 100644
--- a/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
+++ b/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/license.html b/hbase-archetypes/hbase-shaded-client-project/license.html
index d74523c..a6aedc7 100644
--- a/hbase-archetypes/hbase-shaded-client-project/license.html
+++ b/hbase-archetypes/hbase-shaded-client-project/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/mail-lists.html b/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
index cbdd844..7a7b2cf 100644
--- a/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
+++ b/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/plugin-management.html b/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
index f506a19..4250a03 100644
--- a/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
+++ b/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/plugins.html b/hbase-archetypes/hbase-shaded-client-project/plugins.html
index 58ba656..dd0fc33 100644
--- a/hbase-archetypes/hbase-shaded-client-project/plugins.html
+++ b/hbase-archetypes/hbase-shaded-client-project/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/project-info.html b/hbase-archetypes/hbase-shaded-client-project/project-info.html
index ec94f1b..d457abd 100644
--- a/hbase-archetypes/hbase-shaded-client-project/project-info.html
+++ b/hbase-archetypes/hbase-shaded-client-project/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/project-reports.html b/hbase-archetypes/hbase-shaded-client-project/project-reports.html
index 54c0274..2d9a8d9 100644
--- a/hbase-archetypes/hbase-shaded-client-project/project-reports.html
+++ b/hbase-archetypes/hbase-shaded-client-project/project-reports.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/project-summary.html b/hbase-archetypes/hbase-shaded-client-project/project-summary.html
index cd8fd99..3ac9103 100644
--- a/hbase-archetypes/hbase-shaded-client-project/project-summary.html
+++ b/hbase-archetypes/hbase-shaded-client-project/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/source-repository.html b/hbase-archetypes/hbase-shaded-client-project/source-repository.html
index 2126e56..016ebff 100644
--- a/hbase-archetypes/hbase-shaded-client-project/source-repository.html
+++ b/hbase-archetypes/hbase-shaded-client-project/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/team-list.html b/hbase-archetypes/hbase-shaded-client-project/team-list.html
index bd158f2..a8ac62b 100644
--- a/hbase-archetypes/hbase-shaded-client-project/team-list.html
+++ b/hbase-archetypes/hbase-shaded-client-project/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/index.html b/hbase-archetypes/index.html
index 102838c..7d87b35 100644
--- a/hbase-archetypes/index.html
+++ b/hbase-archetypes/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/integration.html b/hbase-archetypes/integration.html
index d7492da..82b1a92 100644
--- a/hbase-archetypes/integration.html
+++ b/hbase-archetypes/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/issue-tracking.html b/hbase-archetypes/issue-tracking.html
index 3aef17c..ce6b25d 100644
--- a/hbase-archetypes/issue-tracking.html
+++ b/hbase-archetypes/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/license.html b/hbase-archetypes/license.html
index 7a8f26e..775c7cc 100644
--- a/hbase-archetypes/license.html
+++ b/hbase-archetypes/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/mail-lists.html b/hbase-archetypes/mail-lists.html
index fdd2e86..7b23ecd 100644
--- a/hbase-archetypes/mail-lists.html
+++ b/hbase-archetypes/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/plugin-management.html b/hbase-archetypes/plugin-management.html
index a9f92ea..739e249 100644
--- a/hbase-archetypes/plugin-management.html
+++ b/hbase-archetypes/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/plugins.html b/hbase-archetypes/plugins.html
index 517f311..92d96bd 100644
--- a/hbase-archetypes/plugins.html
+++ b/hbase-archetypes/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/project-info.html b/hbase-archetypes/project-info.html
index 59d79a9..a62595a 100644
--- a/hbase-archetypes/project-info.html
+++ b/hbase-archetypes/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/project-summary.html b/hbase-archetypes/project-summary.html
index db6039f..7b6963a 100644
--- a/hbase-archetypes/project-summary.html
+++ b/hbase-archetypes/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/source-repository.html b/hbase-archetypes/source-repository.html
index 7146dd2..83962fb 100644
--- a/hbase-archetypes/source-repository.html
+++ b/hbase-archetypes/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/team-list.html b/hbase-archetypes/team-list.html
index 268117a..803c3df 100644
--- a/hbase-archetypes/team-list.html
+++ b/hbase-archetypes/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-spark/checkstyle.html b/hbase-spark/checkstyle.html
index 1f73baf..6f3fb75 100644
--- a/hbase-spark/checkstyle.html
+++ b/hbase-spark/checkstyle.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>


[03/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependencies.html b/hbase-spark/dependencies.html
index 870746a..42c341d 100644
--- a/hbase-spark/dependencies.html
+++ b/hbase-spark/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>
@@ -267,7 +267,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr>
@@ -449,9 +449,9 @@
 <tr class="a">
 <td>commons-cli</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">commons-cli</a></td>
-<td>1.3.1</td>
+<td>1.4</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="b">
 <td>commons-codec</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-codec/">commons-codec</a></td>
@@ -484,10 +484,10 @@
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License</a></td></tr>
 <tr class="a">
 <td>commons-io</td>
-<td><a class="externalLink" href="http://commons.apache.org/io/">commons-io</a></td>
-<td>2.4</td>
+<td><a class="externalLink" href="http://commons.apache.org/proper/commons-io/">commons-io</a></td>
+<td>2.5</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="b">
 <td>commons-lang</td>
 <td><a class="externalLink" href="http://commons.apache.org/lang/">commons-lang</a></td>
@@ -497,562 +497,556 @@
 <tr class="a">
 <td>commons-net</td>
 <td><a class="externalLink" href="http://commons.apache.org/net/">commons-net</a></td>
-<td>3.1</td>
+<td>2.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
 <tr class="b">
 <td>io.dropwizard.metrics</td>
 <td><a class="externalLink" href="http://metrics.codahale.com/metrics-core/">metrics-core</a></td>
-<td>3.1.2</td>
+<td>3.2.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a></td></tr>
 <tr class="a">
 <td>io.netty</td>
 <td><a class="externalLink" href="http://netty.io/netty-all/">netty-all</a></td>
-<td>4.1.1.Final</td>
+<td>4.1.9.Final</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
 <tr class="b">
-<td>javax.activation</td>
-<td><a class="externalLink" href="http://java.sun.com/products/javabeans/jaf/index.jsp">activation</a></td>
-<td>1.1</td>
-<td>jar</td>
-<td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDLv1.0.html">Common Development and Distribution License (CDDL) v1.0</a></td></tr>
-<tr class="a">
 <td>javax.annotation</td>
 <td><a class="externalLink" href="http://jcp.org/en/jsr/detail?id=250">javax.annotation-api</a></td>
 <td>1.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>javax.inject</td>
 <td><a class="externalLink" href="http://code.google.com/p/atinject/">javax.inject</a></td>
 <td>1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>javax.servlet.jsp</td>
 <td><a class="externalLink" href="http://jsp.java.net">javax.servlet.jsp-api</a></td>
 <td>2.3.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>javax.validation</td>
 <td><a class="externalLink" href="http://beanvalidation.org">validation-api</a></td>
 <td>1.1.0.Final</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>javax.ws.rs</td>
 <td><a class="externalLink" href="http://jax-rs-spec.java.net">javax.ws.rs-api</a></td>
 <td>2.0.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>-<a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>javax.xml.bind</td>
-<td><a class="externalLink" href="https://jaxb.dev.java.net/">jaxb-api</a></td>
-<td>2.2.2</td>
+<td><a class="externalLink" href="http://jaxb.java.net/">jaxb-api</a></td>
+<td>2.2.12</td>
 <td>jar</td>
-<td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>-<a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
-<tr class="a">
+<td><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>-<a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
+<tr class="b">
 <td>net.java.dev.jets3t</td>
 <td><a class="externalLink" href="http://jets3t.s3.amazonaws.com/index.html">jets3t</a></td>
 <td>0.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/compress/">commons-compress</a></td>
 <td>1.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-crypto/">commons-crypto</a></td>
 <td>1.0.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math</a></td>
 <td>2.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-math/">commons-math3</a></td>
 <td>3.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-client">curator-client</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-framework">curator-framework</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-recipes">curator-recipes</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.directory.api</td>
 <td><a class="externalLink" href="http://directory.apache.org/api-parent/api-asn1-parent/api-asn1-api/">api-asn1-api</a></td>
 <td>1.0.0-M20</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.directory.api</td>
 <td><a class="externalLink" href="http://directory.apache.org/api-parent/api-util/">api-util</a></td>
 <td>1.0.0-M20</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.directory.server</td>
 <td><a class="externalLink" href="http://directory.apache.org/apacheds/1.5/apacheds-i18n">apacheds-i18n</a></td>
 <td>2.0.0-M15</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.directory.server</td>
 <td><a class="externalLink" href="http://directory.apache.org/apacheds/1.5/apacheds-kerberos-codec">apacheds-kerberos-codec</a></td>
 <td>2.0.0-M15</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-annotations</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-auth</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-distcp</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-hdfs</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-app</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-core</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-jobclient</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-shuffle</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-yarn-api</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-yarn-client</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-yarn-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-yarn-server-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-yarn-server-nodemanager</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-common">hbase-common</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop-compat">hbase-hadoop-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop2-compat">hbase-hadoop2-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics">hbase-metrics</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics-api">hbase-metrics-api</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol-shaded">hbase-protocol-shaded</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.htrace</td>
 <td><a class="externalLink" href="http://incubator.apache.org/projects/htrace.html">htrace-core</a></td>
-<td>3.1.0-incubating</td>
+<td>3.2.0-incubating</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">httpclient</a></td>
-<td>4.5.2</td>
+<td>4.5.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">httpcore</a></td>
-<td>4.4.4</td>
+<td>4.4.6</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.zookeeper</td>
 <td>zookeeper</td>
-<td>3.4.8</td>
+<td>3.4.9</td>
 <td>jar</td>
-<td>-</td></tr>
-<tr class="a">
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-core-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-jaxrs</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>-<a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-mapper-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-xc</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>-<a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jettison</td>
-<td><a class="externalLink" href="http://codehaus.org/jettison/">jettison</a></td>
-<td>1.3.3</td>
+<td><a class="externalLink" href="https://github.com/jettison-json/jettison">jettison</a></td>
+<td>1.3.8</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jsp</a></td>
 <td>9.2.19.v20160908</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-xml</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty.orbit</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-orbit/javax.servlet.jsp.jstl">javax.servlet.jsp.jstl</a></td>
 <td>1.2.0.v201105211821</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty.orbit</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-orbit/org.eclipse.jdt.core">org.eclipse.jdt.core</a></td>
 <td>3.8.2.v20130121</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty.toolchain</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-toolchain/jetty-schemas">jetty-schemas</a></td>
 <td>3.1.M0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.fusesource.leveldbjni</td>
 <td><a class="externalLink" href="http://leveldbjni.fusesource.org/leveldbjni-all">leveldbjni-all</a></td>
 <td>1.8</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/BSD-3-Clause">The BSD 3-Clause License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish</td>
 <td><a class="externalLink" href="http://el-spec.java.net">javax.el</a></td>
 <td>3.0.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.hk2</td>
 <td><a class="externalLink" href="https://hk2.java.net/hk2-api">hk2-api</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.hk2</td>
 <td><a class="externalLink" href="https://hk2.java.net/hk2-locator">hk2-locator</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.hk2</td>
 <td><a class="externalLink" href="https://hk2.java.net/hk2-utils">hk2-utils</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.hk2</td>
 <td><a class="externalLink" href="http://glassfish.org/osgi-resource-locator/">osgi-resource-locator</a></td>
 <td>1.0.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.hk2.external</td>
 <td><a class="externalLink" href="https://hk2.java.net/external/aopalliance-repackaged">aopalliance-repackaged</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.hk2.external</td>
 <td><a class="externalLink" href="https://hk2.java.net/external/javax.inject">javax.inject</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.jersey.bundles.repackaged</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/project/jersey-guava/">jersey-guava</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.jersey.containers</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">jersey-container-servlet-core</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.jersey.core</td>
 <td><a class="externalLink" href="https://jersey.java.net/jersey-client/">jersey-client</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.jersey.core</td>
 <td><a class="externalLink" href="https://jersey.java.net/jersey-common/">jersey-common</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.jersey.core</td>
 <td><a class="externalLink" href="https://jersey.java.net/jersey-server/">jersey-server</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.jersey.media</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-media-jaxb/">jersey-media-jaxb</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.jersey.media</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-media-json-jackson1/">jersey-media-json-jackson1</a></td>
 <td>2.23.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.web</td>
 <td><a class="externalLink" href="http://jsp.java.net">javax.servlet.jsp</a></td>
 <td>2.3.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.web</td>
 <td><a class="externalLink" href="http://jstl.java.net">javax.servlet.jsp.jstl</a></td>
 <td>1.2.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.javassist</td>
 <td><a class="externalLink" href="http://www.javassist.org/">javassist</a></td>
-<td>3.18.1-GA</td>
+<td>3.20.0-GA</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/MPL-1.1.html">MPL 1.1</a>-<a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1.html">LGPL 2.1</a>-<a class="externalLink" href="http://www.apache.org/licenses/">Apache License 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.mortbay.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-parent/project/modules/jetty">jetty</a></td>
 <td>6.1.26</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.mortbay.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-parent/project/jetty-util">jetty-util</a></td>
 <td>6.1.26</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
-<td>1.7.7</td>
+<td>1.7.24</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-log4j12</a></td>
 <td>1.7.10</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.tukaani</td>
 <td><a class="externalLink" href="http://tukaani.org/xz/java.html">xz</a></td>
 <td>1.0</td>
 <td>jar</td>
 <td>Public Domain</td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.xerial.snappy</td>
 <td><a class="externalLink" href="https://github.com/xerial/snappy-java">snappy-java</a></td>
 <td>1.1.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>xmlenc</td>
 <td><a class="externalLink" href="http://xmlenc.sourceforge.net">xmlenc</a></td>
 <td>0.52</td>
@@ -1784,7 +1778,7 @@
 <p><b>Description: </b>JetS3t is a free, open-source Java toolkit and application suite for the Amazon Simple Storage Service (Amazon S3). The JetS3t toolkit provides Java programmers with a powerful yet simple API for interacting with S3 and managing data stored there.</p>
 <p><b>URL: </b><a class="externalLink" href="http://jets3t.s3.amazonaws.com/index.html">http://jets3t.s3.amazonaws.com/index.html</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.curator:curator-recipes:jar:2.11.0 (compile) <img id="_img41" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep40', '_img41' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep40" style="display:none">
+<li>org.apache.curator:curator-recipes:jar:2.12.0 (compile) <img id="_img41" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep40', '_img41' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep40" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Curator Recipes</th></tr>
@@ -1823,7 +1817,7 @@
 <p><b>Description: </b>The Apache Commons Math project is a library of lightweight, self-contained mathematics and statistics components addressing the most common practical problems not immediately available in the Java programming language or commons-lang.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/proper/commons-math/">http://commons.apache.org/proper/commons-math/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.slf4j:slf4j-api:jar:1.7.7 (compile) <img id="_img49" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep48', '_img49' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep48" style="display:none">
+<li>org.slf4j:slf4j-api:jar:1.7.24 (compile) <img id="_img49" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep48', '_img49' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep48" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>SLF4J API Module</th></tr>
@@ -1898,14 +1892,13 @@ See &quot;http://oldhome.schmorp.de/marc/liblzf.html&quot; for more on original
      conventional compressed bitmaps such as WAH or Concise.</p>
 <p><b>URL: </b><a class="externalLink" href="https://github.com/lemire/RoaringBitmap">https://github.com/lemire/RoaringBitmap</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache 2</a></p></td></tr></table></div></li>
-<li>commons-net:commons-net:jar:3.1 (compile) <img id="_img65" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep64', '_img65' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep64" style="display:none">
+<li>commons-net:commons-net:jar:2.2 (compile) <img id="_img65" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep64', '_img65' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep64" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Commons Net</th></tr>
 <tr class="b">
 <td>
-<p><b>Description: </b>Apache Commons Net library contains a collection of network utilities and protocol implementations.
-Supported protocols include: Echo, Finger, FTP, NNTP, NTP, POP3(S), SMTP(S), Telnet, Whois</p>
+<p><b>Description: </b>A collection of network utilities and protocol implementations.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/net/">http://commons.apache.org/net/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
 <li>com.typesafe.akka:akka-remote_2.10:jar:2.3.11 (provided) <img id="_img67" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep66', '_img67' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep66" style="display:none">
@@ -2040,7 +2033,7 @@ Supported protocols include: Echo, Finger, FTP, NNTP, NTP, POP3(S), SMTP(S), Tel
 <p><b>Description: </b>The Apache Mesos Java API jar.</p>
 <p><b>URL: </b><a class="externalLink" href="http://mesos.apache.org">http://mesos.apache.org</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>io.netty:netty-all:jar:4.1.1.Final (compile) <img id="_img93" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep92', '_img93' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep92" style="display:none">
+<li>io.netty:netty-all:jar:4.1.9.Final (compile) <img id="_img93" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep92', '_img93' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep92" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Netty/All-in-One</th></tr>
@@ -2060,7 +2053,7 @@ Supported protocols include: Echo, Finger, FTP, NNTP, NTP, POP3(S), SMTP(S), Tel
 <p><b>Description: </b>A library for summarizing data in streams for which it is infeasible to store all events</p>
 <p><b>URL: </b><a class="externalLink" href="https://github.com/addthis/stream-lib">https://github.com/addthis/stream-lib</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>io.dropwizard.metrics:metrics-core:jar:3.1.2 (compile) <img id="_img97" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep96', '_img97' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep96" style="display:none">
+<li>io.dropwizard.metrics:metrics-core:jar:3.2.1 (compile) <img id="_img97" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep96', '_img97' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep96" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Metrics Core</th></tr>
@@ -2476,26 +2469,16 @@ Pyrolite only implements part of the client side Pyro library, hence its name 'l
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>javax.xml.bind:jaxb-api:jar:2.2.2 (compile) <img id="_img181" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep180', '_img181' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep180" style="display:none">
+<li>javax.xml.bind:jaxb-api:jar:2.2.12 (compile) <img id="_img181" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep180', '_img181' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep180" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
-<th>JAXB API bundle for GlassFish V3</th></tr>
+<th>Java Architecture for XML Binding</th></tr>
 <tr class="b">
 <td>
 <p><b>Description: </b>JAXB (JSR 222) API</p>
-<p><b>URL: </b><a class="externalLink" href="https://jaxb.dev.java.net/">https://jaxb.dev.java.net/</a></p>
-<p><b>Project License: </b><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div>
-<ul>
-<li>javax.activation:activation:jar:1.1 (compile) <img id="_img183" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep182', '_img183' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep182" style="display:none">
-<table border="0" class="bodyTable">
-<tr class="a">
-<th>JavaBeans Activation Framework (JAF)</th></tr>
-<tr class="b">
-<td>
-<p><b>Description: </b>JavaBeans Activation Framework (JAF) is a standard extension to the Java platform that lets you take advantage of standard services to: determine the type of an arbitrary piece of data; encapsulate access to it; discover the operations available on it; and instantiate the appropriate bean to perform the operation(s).</p>
-<p><b>URL: </b><a class="externalLink" href="http://java.sun.com/products/javabeans/jaf/index.jsp">http://java.sun.com/products/javabeans/jaf/index.jsp</a></p>
-<p><b>Project License: </b><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDLv1.0.html">Common Development and Distribution License (CDDL) v1.0</a></p></td></tr></table></div></li></ul></li>
-<li>com.sun.jersey:jersey-client:jar:1.9 (compile) <img id="_img185" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep184', '_img185' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep184" style="display:none">
+<p><b>URL: </b><a class="externalLink" href="http://jaxb.java.net/">http://jaxb.java.net/</a></p>
+<p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div></li>
+<li>com.sun.jersey:jersey-client:jar:1.9 (compile) <img id="_img183" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep182', '_img183' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep182" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-client</th></tr>
@@ -2506,7 +2489,7 @@ Pyrolite only implements part of the client side Pyro library, hence its name 'l
         RESTful Web services.</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-client/">https://jersey.java.net/jersey-client/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div></li></ul></li></ul></li>
-<li>org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.7.1 (compile) <img id="_img187" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep186', '_img187' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep186" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.7.1 (compile) <img id="_img185" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep184', '_img185' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep184" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-mapreduce-client-jobclient</th></tr>
@@ -2514,7 +2497,7 @@ Pyrolite only implements part of the client side Pyro library, hence its name 'l
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-annotations:jar:2.7.1 (compile) <img id="_img189" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep188', '_img189' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep188" style="display:none">
+<li>org.apache.hadoop:hadoop-annotations:jar:2.7.1 (compile) <img id="_img187" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep186', '_img187' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep186" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Hadoop Annotations</th></tr>
@@ -2522,7 +2505,7 @@ Pyrolite only implements part of the client side Pyro library, hence its name 'l
 <td>
 <p><b>Description: </b>Apache Hadoop Annotations</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.apache.hadoop:hadoop-common:jar:2.7.1 (compile) <img id="_img191" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep190', '_img191' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep190" style="display:none">
+<li>org.apache.hadoop:hadoop-common:jar:2.7.1 (compile) <img id="_img189" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep188', '_img189' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep188" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Hadoop Common</th></tr>
@@ -2531,7 +2514,7 @@ Pyrolite only implements part of the client side Pyro library, hence its name 'l
 <p><b>Description: </b>Apache Hadoop Common</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>com.google.guava:guava:jar:12.0.1 (compile) <img id="_img193" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep192', '_img193' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep192" style="display:none">
+<li>com.google.guava:guava:jar:12.0.1 (compile) <img id="_img191" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep190', '_img191' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep190" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Guava: Google Core Libraries for Java</th></tr>
@@ -2545,7 +2528,7 @@ Pyrolite only implements part of the client side Pyro library, hence its name 'l
     per the JSR-305 spec.</p>
 <p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/guava-libraries/guava">http://code.google.com/p/guava-libraries/guava</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>commons-cli:commons-cli:jar:1.3.1 (compile) <img id="_img195" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep194', '_img195' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep194" style="display:none">
+<li>commons-cli:commons-cli:jar:1.4 (compile) <img id="_img193" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep192', '_img193' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep192" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Commons CLI</th></tr>
@@ -2553,8 +2536,8 @@ Pyrolite only implements part of the client side Pyro library, hence its name 'l
 <td>
 <p><b>Description: </b>Apache Commons CLI provides a simple API for presenting, processing and validating a command line interface.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">http://commons.apache.org/proper/commons-cli/</a></p>
-<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>xmlenc:xmlenc:jar:0.52 (compile) <img id="_img197" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep196', '_img197' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep196" style="display:none">
+<p><b>Project License: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
+<li>xmlenc:xmlenc:jar:0.52 (compile) <img id="_img195" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep194', '_img195' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep194" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>xmlenc Library</th></tr>
@@ -2563,7 +2546,7 @@ Pyrolite only implements part of the client side Pyro library, hence its name 'l
 <p><b>Description: </b>xmlenc Library</p>
 <p><b>URL: </b><a class="externalLink" href="http://xmlenc.sourceforge.net">http://xmlenc.sourceforge.net</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/bsd-license.php">The BSD License</a></p></td></tr></table></div></li>
-<li>commons-httpclient:commons-httpclient:jar:3.1 (compile) <img id="_img199" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep198', '_img199' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep198" style="display:none">
+<li>commons-httpclient:commons-httpclient:jar:3.1 (compile) <img id="_img197" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep196', '_img197' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep196" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>HttpClient</th></tr>
@@ -2572,7 +2555,7 @@ Pyrolite only implements part of the client side Pyro library, hence its name 'l
 <p><b>Description: </b>The HttpClient  component supports the client-side of RFC 1945 (HTTP/1.0)  and RFC 2616 (HTTP/1.1) , several related specifications (RFC 2109 (Cookies) , RFC 2617 (HTTP Authentication) , etc.), and provides a framework by which new request types (methods) or HTTP extensions can be created easily.</p>
 <p><b>URL: </b><a class="externalLink" href="http://jakarta.apache.org/httpcomponents/httpclient-3.x/">http://jakarta.apache.org/httpcomponents/httpclient-3.x/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License</a></p></td></tr></table></div></li>
-<li>commons-codec:commons-codec:jar:1.9 (compile) <img id="_img201" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep200', '_img201' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep200" style="display:none">
+<li>commons-codec:commons-codec:jar:1.9 (compile) <img id="_img199" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep198', '_img199' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep198" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Commons Codec</th></tr>
@@ -2584,17 +2567,17 @@ Pyrolite only implements part of the client side Pyro library, hence its name 'l
      collection of phonetic encoding utilities.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/proper/commons-codec/">http://commons.apache.org/proper/commons-codec/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>commons-io:commons-io:jar:2.4 (compile) <img id="_img203" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep202', '_img203' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep202" style="display:none">
+<li>commons-io:commons-io:jar:2.5 (compile) <img id="_img201" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep200', '_img201' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep200" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
-<th>Commons IO</th></tr>
+<th>Apache Commons IO</th></tr>
 <tr class="b">
 <td>
-<p><b>Description: </b>The Commons IO library contains utility classes, stream implementations, file filters, 
+<p><b>Description: </b>The Apache Commons IO library contains utility classes, stream implementations, file filters, 
 file comparators, endian transformation classes, and much more.</p>
-<p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/io/">http://commons.apache.org/io/</a></p>
-<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>commons-collections:commons-collections:jar:3.2.2 (compile) <img id="_img205" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep204', '_img205' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep204" style="display:none">
+<p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/proper/commons-io/">http://commons.apache.org/proper/commons-io/</a></p>
+<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
+<li>commons-collections:commons-collections:jar:3.2.2 (compile) <img id="_img203" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep202', '_img203' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep202" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Commons Collections</th></tr>
@@ -2603,7 +2586,7 @@ file comparators, endian transformation classes, and much more.</p>
 <p><b>Description: </b>Types that extend and augment the Java Collections Framework.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/collections/">http://commons.apache.org/collections/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.mortbay.jetty:jetty:jar:6.1.26 (compile) <img id="_img207" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep206', '_img207' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep206" style="display:none">
+<li>org.mortbay.jetty:jetty:jar:6.1.26 (compile) <img id="_img205" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep204', '_img205' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep204" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Jetty Server</th></tr>
@@ -2612,7 +2595,7 @@ file comparators, endian transformation classes, and much more.</p>
 <p><b>Description: </b>Jetty server core</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-parent/project/modules/jetty">http://www.eclipse.org/jetty/jetty-parent/project/modules/jetty</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a><a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.mortbay.jetty:jetty-util:jar:6.1.26 (compile) <img id="_img209" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep208', '_img209' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep208" style="display:none">
+<li>org.mortbay.jetty:jetty-util:jar:6.1.26 (compile) <img id="_img207" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep206', '_img207' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep206" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Jetty Utilities</th></tr>
@@ -2621,7 +2604,7 @@ file comparators, endian transformation classes, and much more.</p>
 <p><b>Description: </b>Utility classes for Jetty</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-parent/project/jetty-util">http://www.eclipse.org/jetty/jetty-parent/project/jetty-util</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a><a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>com.sun.jersey:jersey-json:jar:1.9 (compile) <img id="_img211" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep210', '_img211' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep210" style="display:none">
+<li>com.sun.jersey:jersey-json:jar:1.9 (compile) <img id="_img209" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep208', '_img209' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep208" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-json</th></tr>
@@ -2633,16 +2616,16 @@ file comparators, endian transformation classes, and much more.</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-json/">https://jersey.java.net/jersey-json/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div>
 <ul>
-<li>org.codehaus.jettison:jettison:jar:1.3.3 (compile) <img id="_img213" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep212', '_img213' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep212" style="display:none">
+<li>org.codehaus.jettison:jettison:jar:1.3.8 (compile) <img id="_img211" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep210', '_img211' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep210" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Jettison</th></tr>
 <tr class="b">
 <td>
 <p><b>Description: </b>A StAX implementation for JSON.</p>
-<p><b>URL: </b><a class="externalLink" href="http://codehaus.org/jettison/">http://codehaus.org/jettison/</a></p>
+<p><b>URL: </b><a class="externalLink" href="https://github.com/jettison-json/jettison">https://github.com/jettison-json/jettison</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>com.sun.xml.bind:jaxb-impl:jar:2.2.3-1 (compile) <img id="_img215" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep214', '_img215' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep214" style="display:none">
+<li>com.sun.xml.bind:jaxb-impl:jar:2.2.3-1 (compile) <img id="_img213" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep212', '_img213' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep212" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>JAXB RI</th></tr>
@@ -2651,7 +2634,7 @@ file comparators, endian transformation classes, and much more.</p>
 <p><b>Description: </b>JAXB (JSR 222) reference implementation</p>
 <p><b>URL: </b><a class="externalLink" href="http://jaxb.java.net/">http://jaxb.java.net/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div></li>
-<li>org.codehaus.jackson:jackson-jaxrs:jar:1.9.13 (compile) <img id="_img217" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep216', '_img217' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep216" style="display:none">
+<li>org.codehaus.jackson:jackson-jaxrs:jar:1.9.13 (compile) <img id="_img215" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep214', '_img215' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep214" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>JAX-RS provider for JSON content type</th></tr>
@@ -2661,7 +2644,7 @@ file comparators, endian transformation classes, and much more.</p>
 Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a><a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></p></td></tr></table></div></li>
-<li>org.codehaus.jackson:jackson-xc:jar:1.9.13 (compile) <img id="_img219" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep218', '_img219' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep218" style="display:none">
+<li>org.codehaus.jackson:jackson-xc:jar:1.9.13 (compile) <img id="_img217" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep216', '_img217' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep216" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Xml Compatibility extensions for Jackson</th></tr>
@@ -2671,7 +2654,7 @@ Jackson JSON processor's data binding functionality.</p>
 Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a><a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></p></td></tr></table></div></li></ul></li>
-<li>commons-lang:commons-lang:jar:2.6 (compile) <img id="_img221" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep220', '_img221' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep220" style="display:none">
+<li>commons-lang:commons-lang:jar:2.6 (compile) <img id="_img219" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep218', '_img219' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep218" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Commons Lang</th></tr>
@@ -2682,7 +2665,7 @@ Jackson JSON processor's data binding functionality.</p>
         standard as to justify existence in java.lang.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/lang/">http://commons.apache.org/lang/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>commons-configuration:commons-configuration:jar:1.6 (compile) <img id="_img223" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep222', '_img223' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep222" style="display:none">
+<li>commons-configuration:commons-configuration:jar:1.6 (compile) <img id="_img221" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep220', '_img221' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep220" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Commons Configuration</th></tr>
@@ -2693,7 +2676,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b>http://commons.apache.org/${pom.artifactId.substring(8)}/</p>
 <p><b>Project License: </b><a href="/LICENSE.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>commons-digester:commons-digester:jar:1.8 (compile) <img id="_img225" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep224', '_img225' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep224" style="display:none">
+<li>commons-digester:commons-digester:jar:1.8 (compile) <img id="_img223" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep222', '_img223' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep222" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Digester</th></tr>
@@ -2705,7 +2688,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://jakarta.apache.org/commons/digester/">http://jakarta.apache.org/commons/digester/</a></p>
 <p><b>Project License: </b><a href="/LICENSE.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>commons-beanutils:commons-beanutils:jar:1.7.0 (compile) <img id="_img227" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep226', '_img227' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep226" style="display:none">
+<li>commons-beanutils:commons-beanutils:jar:1.7.0 (compile) <img id="_img225" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep224', '_img225' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep224" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>commons-beanutils</th></tr>
@@ -2713,7 +2696,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>
 <p><b>Description: </b>There is currently no description associated with this project.</p>
 <p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li></ul></li>
-<li>commons-beanutils:commons-beanutils-core:jar:1.8.0 (compile) <img id="_img229" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep228', '_img229' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep228" style="display:none">
+<li>commons-beanutils:commons-beanutils-core:jar:1.8.0 (compile) <img id="_img227" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep226', '_img227' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep226" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Commons BeanUtils Core</th></tr>
@@ -2726,7 +2709,7 @@ Jackson JSON processor's data binding functionality.</p>
     and users.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/beanutils/">http://commons.apache.org/beanutils/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.codehaus.jackson:jackson-core-asl:jar:1.9.13 (compile) <img id="_img231" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep230', '_img231' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep230" style="display:none">
+<li>org.codehaus.jackson:jackson-core-asl:jar:1.9.13 (compile) <img id="_img229" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep228', '_img229' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep228" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Jackson</th></tr>
@@ -2735,7 +2718,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>Description: </b>Jackson is a high-performance JSON processor (parser, generator)</p>
 <p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13 (compile) <img id="_img233" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep232', '_img233' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep232" style="display:none">
+<li>org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13 (compile) <img id="_img231" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep230', '_img231' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep230" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Data Mapper for Jackson</th></tr>
@@ -2745,7 +2728,7 @@ Jackson JSON processor's data binding functionality.</p>
 built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>com.google.code.gson:gson:jar:2.2.4 (compile) <img id="_img235" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep234', '_img235' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep234" style="display:none">
+<li>com.google.code.gson:gson:jar:2.2.4 (compile) <img id="_img233" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep232', '_img233' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep232" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Gson</th></tr>
@@ -2754,7 +2737,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Google Gson library</p>
 <p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/google-gson/">http://code.google.com/p/google-gson/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-auth:jar:2.7.1 (compile) <img id="_img237" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep236', '_img237' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep236" style="display:none">
+<li>org.apache.hadoop:hadoop-auth:jar:2.7.1 (compile) <img id="_img235" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep234', '_img235' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep234" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Hadoop Auth</th></tr>
@@ -2763,7 +2746,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Apache Hadoop Auth - Java HTTP SPNEGO</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.httpcomponents:httpclient:jar:4.5.2 (compile) <img id="_img239" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep238', '_img239' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep238" style="display:none">
+<li>org.apache.httpcomponents:httpclient:jar:4.5.3 (compile) <img id="_img237" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep236', '_img237' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep236" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache HttpClient</th></tr>
@@ -2773,7 +2756,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">http://hc.apache.org/httpcomponents-client</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.httpcomponents:httpcore:jar:4.4.4 (compile) <img id="_img241" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep240', '_img241' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep240" style="display:none">
+<li>org.apache.httpcomponents:httpcore:jar:4.4.6 (compile) <img id="_img239" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep238', '_img239' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep238" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache HttpCore</th></tr>
@@ -2782,7 +2765,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Apache HttpComponents Core (blocking I/O)</p>
 <p><b>URL: </b><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">http://hc.apache.org/httpcomponents-core-ga</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.apache.directory.server:apacheds-kerberos-codec:jar:2.0.0-M15 (compile) <img id="_img243" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep242', '_img243' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep242" style="display:none">
+<li>org.apache.directory.server:apacheds-kerberos-codec:jar:2.0.0-M15 (compile) <img id="_img241" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep240', '_img241' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep240" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>ApacheDS Protocol Kerberos Codec</th></tr>
@@ -2792,7 +2775,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="http://directory.apache.org/apacheds/1.5/apacheds-kerberos-codec">http://directory.apache.org/apacheds/1.5/apacheds-kerberos-codec</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.directory.server:apacheds-i18n:jar:2.0.0-M15 (compile) <img id="_img245" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep244', '_img245' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep244" style="display:none">
+<li>org.apache.directory.server:apacheds-i18n:jar:2.0.0-M15 (compile) <img id="_img243" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep242', '_img243' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep242" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>ApacheDS I18n</th></tr>
@@ -2801,7 +2784,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Internationalization of errors and other messages</p>
 <p><b>URL: </b><a class="externalLink" href="http://directory.apache.org/apacheds/1.5/apacheds-i18n">http://directory.apache.org/apacheds/1.5/apacheds-i18n</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.directory.api:api-asn1-api:jar:1.0.0-M20 (compile) <img id="_img247" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep246', '_img247' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep246" style="display:none">
+<li>org.apache.directory.api:api-asn1-api:jar:1.0.0-M20 (compile) <img id="_img245" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep244', '_img245' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep244" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Directory API ASN.1 API</th></tr>
@@ -2810,7 +2793,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>ASN.1 API</p>
 <p><b>URL: </b><a class="externalLink" href="http://directory.apache.org/api-parent/api-asn1-parent/api-asn1-api/">http://directory.apache.org/api-parent/api-asn1-parent/api-asn1-api/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.directory.api:api-util:jar:1.0.0-M20 (compile) <img id="_img249" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep248', '_img249' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep248" style="display:none">
+<li>org.apache.directory.api:api-util:jar:1.0.0-M20 (compile) <img id="_img247" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep246', '_img247' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep246" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Directory LDAP API Utilities</th></tr>
@@ -2819,7 +2802,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Utilities shared across this top level project</p>
 <p><b>URL: </b><a class="externalLink" href="http://directory.apache.org/api-parent/api-util/">http://directory.apache.org/api-parent/api-util/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li></ul></li>
-<li>com.jcraft:jsch:jar:0.1.42 (compile) <img id="_img251" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep250', '_img251' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep250" style="display:none">
+<li>com.jcraft:jsch:jar:0.1.42 (compile) <img id="_img249" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep248', '_img249' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep248" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>JSch</th></tr>
@@ -2828,7 +2811,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>JSch is a pure Java implementation of SSH2</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.jcraft.com/jsch/">http://www.jcraft.com/jsch/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.jcraft.com/jsch/LICENSE.txt">BSD</a></p></td></tr></table></div></li>
-<li>org.apache.curator:curator-client:jar:2.11.0 (compile) <img id="_img253" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep252', '_img253' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep252" style="display:none">
+<li>org.apache.curator:curator-client:jar:2.12.0 (compile) <img id="_img251" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep250', '_img251' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep250" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Curator Client</th></tr>
@@ -2837,7 +2820,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Low-level API</p>
 <p><b>URL: </b><a class="externalLink" href="http://curator.apache.org/curator-client">http://curator.apache.org/curator-client</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.htrace:htrace-core:jar:3.1.0-incubating (compile) <img id="_img255" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep254', '_img255' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep254" style="display:none">
+<li>org.apache.htrace:htrace-core:jar:3.2.0-incubating (compile) <img id="_img253" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep252', '_img253' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep252" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>htrace-core</th></tr>
@@ -2846,15 +2829,15 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>A tracing framework for use with distributed systems written in java</p>
 <p><b>URL: </b><a class="externalLink" href="http://incubator.apache.org/projects/htrace.html">http://incubator.apache.org/projects/htrace.html</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.zookeeper:zookeeper:jar:3.4.8 (compile) <img id="_img257" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep256', '_img257' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep256" style="display:none">
+<li>org.apache.zookeeper:zookeeper:jar:3.4.9 (compile) <img id="_img255" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep254', '_img255' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep254" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>zookeeper</th></tr>
 <tr class="b">
 <td>
 <p><b>Description: </b>There is currently no description associated with this project.</p>
-<p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li>
-<li>org.apache.commons:commons-compress:jar:1.4.1 (compile) <img id="_img259" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep258', '_img259' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep258" style="display:none">
+<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
+<li>org.apache.commons:commons-compress:jar:1.4.1 (compile) <img id="_img257" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep256', '_img257' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep256" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Commons Compress</th></tr>
@@ -2865,7 +2848,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/compress/">http://commons.apache.org/compress/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.tukaani:xz:jar:1.0 (compile) <img id="_img261" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep260', '_img261' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep260" style="display:none">
+<li>org.tukaani:xz:jar:1.0 (compile) <img id="_img259" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep258', '_img259' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep258" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>XZ for Java</th></tr>
@@ -2874,7 +2857,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>XZ data compression</p>
 <p><b>URL: </b><a class="externalLink" href="http://tukaani.org/xz/java.html">http://tukaani.org/xz/java.html</a></p>
 <p><b>Project License: </b>Public Domain</p></td></tr></table></div></li></ul></li></ul></li>
-<li>org.apache.hadoop:hadoop-common:test-jar:tests:2.7.1 (test) <img id="_img263" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep262', '_img263' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep262" style="display:none">
+<li>org.apache.hadoop:hadoop-common:test-jar:tests:2.7.1 (test) <img

<TRUNCATED>

[35/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html b/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html
index f85ad65..15ed528 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/class-use/Pair.html
@@ -550,13 +550,11 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForCurrentReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-">addCallsForCurrentReplica</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
-                         <a href="../../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;rl)</code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForCurrentReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-">addCallsForCurrentReplica</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForOtherReplicas-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-int-int-">addCallsForOtherReplicas</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
-                        <a href="../../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;rl,
+<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForOtherReplicas-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-int-int-">addCallsForOtherReplicas</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
                         int&nbsp;min,
                         int&nbsp;max)</code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
index a75e761..8ca4384 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -519,14 +519,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index 167f1e6..f733300 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
 <span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
 <span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
 <span class="sourceLineNo">010</span>  public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
-<span class="sourceLineNo">011</span>  public static final String revision = "8b36da110896feebbd90d0eefddaec12435b4f4b";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "c20d9cb1a25963cb04c54d96f620726b5a17d785";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Thu Jun 15 14:39:55 UTC 2017";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Fri Jun 16 14:39:22 UTC 2017";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://asf920.gq1.ygridcore.net/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "b13318ffbb80f39cd2a6d44411b4c16f";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "b16eeb35594be1f4103d436baffe4e65";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html
index 550a1b7..ec87ce8 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html
@@ -80,377 +80,383 @@
 <span class="sourceLineNo">072</span>  private int scannerTimeout;<a name="line.72"></a>
 <span class="sourceLineNo">073</span>  private Set&lt;ScannerCallable&gt; outstandingCallables = new HashSet&lt;&gt;();<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  private boolean someRPCcancelled = false; //required for testing purposes only<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>  public ScannerCallableWithReplicas(TableName tableName, ClusterConnection cConnection,<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      ScannerCallable baseCallable, ExecutorService pool, int timeBeforeReplicas, Scan scan,<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      int retries, int scannerTimeout, int caching, Configuration conf,<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      RpcRetryingCaller&lt;Result []&gt; caller) {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    this.currentScannerCallable = baseCallable;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    this.cConnection = cConnection;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    this.pool = pool;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    if (timeBeforeReplicas &lt; 0) {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      throw new IllegalArgumentException("Invalid value of operation timeout on the primary");<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    }<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    this.timeBeforeReplicas = timeBeforeReplicas;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    this.scan = scan;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    this.retries = retries;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    this.tableName = tableName;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    this.conf = conf;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    this.scannerTimeout = scannerTimeout;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    this.caller = caller;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  }<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>  public void setClose() {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    currentScannerCallable.setClose();<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>  public void setRenew(boolean val) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    currentScannerCallable.setRenew(val);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public void setCaching(int caching) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    currentScannerCallable.setCaching(caching);<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  public int getCaching() {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    return currentScannerCallable.getCaching();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public HRegionInfo getHRegionInfo() {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    return currentScannerCallable.getHRegionInfo();<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  }<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  public MoreResults moreResultsInRegion() {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    return currentScannerCallable.moreResultsInRegion();<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  public MoreResults moreResultsForScan() {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    return currentScannerCallable.moreResultsForScan();<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>  @Override<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  public Result [] call(int timeout) throws IOException {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    // If the active replica callable was closed somewhere, invoke the RPC to<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    // really close it. In the case of regular scanners, this applies. We make couple<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    // of RPCs to a RegionServer, and when that region is exhausted, we set<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    // the closed flag. Then an RPC is required to actually close the scanner.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    if (currentScannerCallable != null &amp;&amp; currentScannerCallable.closed) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      // For closing we target that exact scanner (and not do replica fallback like in<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      // the case of normal reads)<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      if (LOG.isTraceEnabled()) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        LOG.trace("Closing scanner id=" + currentScannerCallable.scannerId);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      }<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      Result[] r = currentScannerCallable.call(timeout);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      currentScannerCallable = null;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return r;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    // We need to do the following:<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    //1. When a scan goes out to a certain replica (default or not), we need to<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    //   continue to hit that until there is a failure. So store the last successfully invoked<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    //   replica<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    //2. We should close the "losing" scanners (scanners other than the ones we hear back<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    //   from first)<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    //<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    RegionLocations rl = null;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    try {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      rl = RpcRetryingCallerWithReadReplicas.getRegionLocations(true,<a name="line.148"></a>
-<span class="sourceLineNo">149</span>          RegionReplicaUtil.DEFAULT_REPLICA_ID, cConnection, tableName,<a name="line.149"></a>
-<span class="sourceLineNo">150</span>          currentScannerCallable.getRow());<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    } catch (RetriesExhaustedException | DoNotRetryIOException e) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      // We cannot get the primary replica region location, it is possible that the region server<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      // hosting meta table is down, it needs to proceed to try cached replicas directly.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      if (cConnection instanceof ConnectionImplementation) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>        rl = ((ConnectionImplementation) cConnection)<a name="line.155"></a>
-<span class="sourceLineNo">156</span>            .getCachedLocation(tableName, currentScannerCallable.getRow());<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        if (rl == null) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>          throw e;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        }<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      } else {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        // For completeness<a name="line.161"></a>
-<span class="sourceLineNo">162</span>        throw e;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    // allocate a boundedcompletion pool of some multiple of number of replicas.<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    // We want to accomodate some RPCs for redundant replica scans (but are still in progress)<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; cs =<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        new ResultBoundedCompletionService&lt;&gt;(<a name="line.168"></a>
-<span class="sourceLineNo">169</span>            RpcRetryingCallerFactory.instantiate(ScannerCallableWithReplicas.this.conf), pool,<a name="line.169"></a>
-<span class="sourceLineNo">170</span>            rl.size() * 5);<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>    AtomicBoolean done = new AtomicBoolean(false);<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    replicaSwitched.set(false);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    // submit call for the primary replica.<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    addCallsForCurrentReplica(cs, rl);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    int startIndex = 0;<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>    try {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      // wait for the timeout to see whether the primary responds back<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      Future&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; f = cs.poll(timeBeforeReplicas,<a name="line.180"></a>
-<span class="sourceLineNo">181</span>          TimeUnit.MICROSECONDS); // Yes, microseconds<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      if (f != null) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>        // After poll, if f is not null, there must be a completed task<a name="line.183"></a>
-<span class="sourceLineNo">184</span>        Pair&lt;Result[], ScannerCallable&gt; r = f.get();<a name="line.184"></a>
-<span class="sourceLineNo">185</span>        if (r != null &amp;&amp; r.getSecond() != null) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>          updateCurrentlyServingReplica(r.getSecond(), r.getFirst(), done, pool);<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        return r == null ? null : r.getFirst(); //great we got a response<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      }<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    } catch (ExecutionException e) {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      // We ignore the ExecutionException and continue with the replicas<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      if (LOG.isDebugEnabled()) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        LOG.debug("Scan with primary region returns " + e.getCause());<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span>      // If rl's size is 1 or scan's consitency is strong, it needs to throw<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      // out the exception from the primary replica<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      if ((rl.size() == 1) || (scan.getConsistency() == Consistency.STRONG)) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        // Rethrow the first exception<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        RpcRetryingCallerWithReadReplicas.throwEnrichedException(e, retries);<a name="line.200"></a>
+<span class="sourceLineNo">075</span>  private int regionReplication = 0;<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>  public ScannerCallableWithReplicas(TableName tableName, ClusterConnection cConnection,<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      ScannerCallable baseCallable, ExecutorService pool, int timeBeforeReplicas, Scan scan,<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      int retries, int scannerTimeout, int caching, Configuration conf,<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      RpcRetryingCaller&lt;Result []&gt; caller) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    this.currentScannerCallable = baseCallable;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    this.cConnection = cConnection;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    this.pool = pool;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    if (timeBeforeReplicas &lt; 0) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      throw new IllegalArgumentException("Invalid value of operation timeout on the primary");<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    }<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    this.timeBeforeReplicas = timeBeforeReplicas;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    this.scan = scan;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    this.retries = retries;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    this.tableName = tableName;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    this.conf = conf;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    this.scannerTimeout = scannerTimeout;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    this.caller = caller;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public void setClose() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    currentScannerCallable.setClose();<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>  public void setRenew(boolean val) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    currentScannerCallable.setRenew(val);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public void setCaching(int caching) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    currentScannerCallable.setCaching(caching);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>  public int getCaching() {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    return currentScannerCallable.getCaching();<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public HRegionInfo getHRegionInfo() {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    return currentScannerCallable.getHRegionInfo();<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  public MoreResults moreResultsInRegion() {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    return currentScannerCallable.moreResultsInRegion();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  }<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  public MoreResults moreResultsForScan() {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    return currentScannerCallable.moreResultsForScan();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>  @Override<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  public Result [] call(int timeout) throws IOException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    // If the active replica callable was closed somewhere, invoke the RPC to<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    // really close it. In the case of regular scanners, this applies. We make couple<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    // of RPCs to a RegionServer, and when that region is exhausted, we set<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    // the closed flag. Then an RPC is required to actually close the scanner.<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    if (currentScannerCallable != null &amp;&amp; currentScannerCallable.closed) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      // For closing we target that exact scanner (and not do replica fallback like in<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      // the case of normal reads)<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      if (LOG.isTraceEnabled()) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        LOG.trace("Closing scanner id=" + currentScannerCallable.scannerId);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      Result[] r = currentScannerCallable.call(timeout);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      currentScannerCallable = null;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      return r;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    // We need to do the following:<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    //1. When a scan goes out to a certain replica (default or not), we need to<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    //   continue to hit that until there is a failure. So store the last successfully invoked<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    //   replica<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    //2. We should close the "losing" scanners (scanners other than the ones we hear back<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    //   from first)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    //<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // Since RegionReplication is a table attribute, it wont change as long as table is enabled,<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    // it just needs to be set once.<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    if (regionReplication &lt;= 0) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      RegionLocations rl = null;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      try {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        rl = RpcRetryingCallerWithReadReplicas.getRegionLocations(true,<a name="line.153"></a>
+<span class="sourceLineNo">154</span>            RegionReplicaUtil.DEFAULT_REPLICA_ID, cConnection, tableName,<a name="line.154"></a>
+<span class="sourceLineNo">155</span>            currentScannerCallable.getRow());<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      } catch (RetriesExhaustedException | DoNotRetryIOException e) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        // We cannot get the primary replica region location, it is possible that the region server<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        // hosting meta table is down, it needs to proceed to try cached replicas directly.<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        if (cConnection instanceof ConnectionImplementation) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>          rl = ((ConnectionImplementation) cConnection)<a name="line.160"></a>
+<span class="sourceLineNo">161</span>              .getCachedLocation(tableName, currentScannerCallable.getRow());<a name="line.161"></a>
+<span class="sourceLineNo">162</span>          if (rl == null) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>            throw e;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>          }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        } else {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>          // For completeness<a name="line.166"></a>
+<span class="sourceLineNo">167</span>          throw e;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      regionReplication = rl.size();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    }<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    // allocate a boundedcompletion pool of some multiple of number of replicas.<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    // We want to accomodate some RPCs for redundant replica scans (but are still in progress)<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; cs =<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        new ResultBoundedCompletionService&lt;&gt;(<a name="line.175"></a>
+<span class="sourceLineNo">176</span>            RpcRetryingCallerFactory.instantiate(ScannerCallableWithReplicas.this.conf), pool,<a name="line.176"></a>
+<span class="sourceLineNo">177</span>            regionReplication * 5);<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    AtomicBoolean done = new AtomicBoolean(false);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    replicaSwitched.set(false);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    // submit call for the primary replica.<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    addCallsForCurrentReplica(cs);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    int startIndex = 0;<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>    try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      // wait for the timeout to see whether the primary responds back<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      Future&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; f = cs.poll(timeBeforeReplicas,<a name="line.187"></a>
+<span class="sourceLineNo">188</span>          TimeUnit.MICROSECONDS); // Yes, microseconds<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      if (f != null) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        // After poll, if f is not null, there must be a completed task<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        Pair&lt;Result[], ScannerCallable&gt; r = f.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        if (r != null &amp;&amp; r.getSecond() != null) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>          updateCurrentlyServingReplica(r.getSecond(), r.getFirst(), done, pool);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        return r == null ? null : r.getFirst(); //great we got a response<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    } catch (ExecutionException e) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      // We ignore the ExecutionException and continue with the replicas<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      if (LOG.isDebugEnabled()) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        LOG.debug("Scan with primary region returns " + e.getCause());<a name="line.200"></a>
 <span class="sourceLineNo">201</span>      }<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>      startIndex = 1;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    } catch (CancellationException e) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      throw new InterruptedIOException(e.getMessage());<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    } catch (InterruptedException e) {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      throw new InterruptedIOException(e.getMessage());<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
+<span class="sourceLineNo">203</span>      // If rl's size is 1 or scan's consitency is strong, it needs to throw<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      // out the exception from the primary replica<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      if ((regionReplication == 1) || (scan.getConsistency() == Consistency.STRONG)) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        // Rethrow the first exception<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        RpcRetryingCallerWithReadReplicas.throwEnrichedException(e, retries);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      }<a name="line.208"></a>
 <span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>    // submit call for the all of the secondaries at once<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    int endIndex = rl.size();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    if (scan.getConsistency() == Consistency.STRONG) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      // When scan's consistency is strong, do not send to the secondaries<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      endIndex = 1;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    } else {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      // TODO: this may be an overkill for large region replication<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      addCallsForOtherReplicas(cs, rl, 0, rl.size() - 1);<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    }<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>    try {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      Future&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; f = cs.pollForFirstSuccessfullyCompletedTask(timeout,<a name="line.221"></a>
-<span class="sourceLineNo">222</span>          TimeUnit.MILLISECONDS, startIndex, endIndex);<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>      if (f == null) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        throw new IOException("Failed to get result within timeout, timeout=" + timeout + "ms");<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      }<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      Pair&lt;Result[], ScannerCallable&gt; r = f.get();<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span>      if (r != null &amp;&amp; r.getSecond() != null) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        updateCurrentlyServingReplica(r.getSecond(), r.getFirst(), done, pool);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      }<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      return r == null ? null : r.getFirst(); // great we got an answer<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    } catch (ExecutionException e) {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      RpcRetryingCallerWithReadReplicas.throwEnrichedException(e, retries);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    } catch (CancellationException e) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      throw new InterruptedIOException(e.getMessage());<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    } catch (InterruptedException e) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      throw new InterruptedIOException(e.getMessage());<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    } finally {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      // We get there because we were interrupted or because one or more of the<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      // calls succeeded or failed. In all case, we stop all our tasks.<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      cs.cancelAll();<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    LOG.error("Imposible? Arrive at an unreachable line..."); // unreachable<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    throw new IOException("Imposible? Arrive at an unreachable line...");<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  private void updateCurrentlyServingReplica(ScannerCallable scanner, Result[] result,<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      AtomicBoolean done, ExecutorService pool) {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    if (done.compareAndSet(false, true)) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      if (currentScannerCallable != scanner) replicaSwitched.set(true);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      currentScannerCallable = scanner;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      // store where to start the replica scanner from if we need to.<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      if (result != null &amp;&amp; result.length != 0) this.lastResult = result[result.length - 1];<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      if (LOG.isTraceEnabled()) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>        LOG.trace("Setting current scanner as id=" + currentScannerCallable.scannerId +<a name="line.257"></a>
-<span class="sourceLineNo">258</span>            " associated with replica=" + currentScannerCallable.getHRegionInfo().getReplicaId());<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      // close all outstanding replica scanners but the one we heard back from<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      outstandingCallables.remove(scanner);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      for (ScannerCallable s : outstandingCallables) {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>        if (LOG.isTraceEnabled()) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          LOG.trace("Closing scanner id=" + s.scannerId +<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            ", replica=" + s.getHRegionInfo().getRegionId() +<a name="line.265"></a>
-<span class="sourceLineNo">266</span>            " because slow and replica=" +<a name="line.266"></a>
-<span class="sourceLineNo">267</span>            this.currentScannerCallable.getHRegionInfo().getReplicaId() + " succeeded");<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        // Submit the "close" to the pool since this might take time, and we don't<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        // want to wait for the "close" to happen yet. The "wait" will happen when<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        // the table is closed (when the awaitTermination of the underlying pool is called)<a name="line.271"></a>
-<span class="sourceLineNo">272</span>        s.setClose();<a name="line.272"></a>
-<span class="sourceLineNo">273</span>        final RetryingRPC r = new RetryingRPC(s);<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        pool.submit(new Callable&lt;Void&gt;(){<a name="line.274"></a>
-<span class="sourceLineNo">275</span>          @Override<a name="line.275"></a>
-<span class="sourceLineNo">276</span>          public Void call() throws Exception {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>            r.call(scannerTimeout);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>            return null;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>          }<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        });<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      // now clear outstandingCallables since we scheduled a close for all the contained scanners<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      outstandingCallables.clear();<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>  /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * When a scanner switches in the middle of scanning (the 'next' call fails<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * for example), the upper layer {@link ClientScanner} needs to know<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   */<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  public boolean switchedToADifferentReplica() {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    return replicaSwitched.get();<a name="line.292"></a>
-<span class="sourceLineNo">293</span>  }<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>  /**<a name="line.295"></a>
-<span class="sourceLineNo">296</span>   * @return true when the most recent RPC response indicated that the response was a heartbeat<a name="line.296"></a>
-<span class="sourceLineNo">297</span>   *         message. Heartbeat messages are sent back from the server when the processing of the<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   *         scan request exceeds a certain time threshold. Heartbeats allow the server to avoid<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   *         timeouts during long running scan operations.<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   */<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public boolean isHeartbeatMessage() {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    return currentScannerCallable != null &amp;&amp; currentScannerCallable.isHeartbeatMessage();<a name="line.302"></a>
-<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>  public Cursor getCursor() {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    return currentScannerCallable != null ? currentScannerCallable.getCursor() : null;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>  }<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private void addCallsForCurrentReplica(<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; cs, RegionLocations rl) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    RetryingRPC retryingOnReplica = new RetryingRPC(currentScannerCallable);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    outstandingCallables.add(currentScannerCallable);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    cs.submit(retryingOnReplica, scannerTimeout, currentScannerCallable.id);<a name="line.313"></a>
+<span class="sourceLineNo">210</span>      startIndex = 1;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    } catch (CancellationException e) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      throw new InterruptedIOException(e.getMessage());<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    } catch (InterruptedException e) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      throw new InterruptedIOException(e.getMessage());<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>    // submit call for the all of the secondaries at once<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    int endIndex = regionReplication;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    if (scan.getConsistency() == Consistency.STRONG) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      // When scan's consistency is strong, do not send to the secondaries<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      endIndex = 1;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      // TODO: this may be an overkill for large region replication<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      addCallsForOtherReplicas(cs, 0, regionReplication - 1);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    }<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>    try {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      Future&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; f = cs.pollForFirstSuccessfullyCompletedTask(timeout,<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          TimeUnit.MILLISECONDS, startIndex, endIndex);<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>      if (f == null) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        throw new IOException("Failed to get result within timeout, timeout=" + timeout + "ms");<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      Pair&lt;Result[], ScannerCallable&gt; r = f.get();<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>      if (r != null &amp;&amp; r.getSecond() != null) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        updateCurrentlyServingReplica(r.getSecond(), r.getFirst(), done, pool);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      return r == null ? null : r.getFirst(); // great we got an answer<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    } catch (ExecutionException e) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      RpcRetryingCallerWithReadReplicas.throwEnrichedException(e, retries);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    } catch (CancellationException e) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      throw new InterruptedIOException(e.getMessage());<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    } catch (InterruptedException e) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      throw new InterruptedIOException(e.getMessage());<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    } finally {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      // We get there because we were interrupted or because one or more of the<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      // calls succeeded or failed. In all case, we stop all our tasks.<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      cs.cancelAll();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    LOG.error("Imposible? Arrive at an unreachable line..."); // unreachable<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    throw new IOException("Imposible? Arrive at an unreachable line...");<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>  private void updateCurrentlyServingReplica(ScannerCallable scanner, Result[] result,<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      AtomicBoolean done, ExecutorService pool) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    if (done.compareAndSet(false, true)) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      if (currentScannerCallable != scanner) replicaSwitched.set(true);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      currentScannerCallable = scanner;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      // store where to start the replica scanner from if we need to.<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      if (result != null &amp;&amp; result.length != 0) this.lastResult = result[result.length - 1];<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      if (LOG.isTraceEnabled()) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        LOG.trace("Setting current scanner as id=" + currentScannerCallable.scannerId +<a name="line.264"></a>
+<span class="sourceLineNo">265</span>            " associated with replica=" + currentScannerCallable.getHRegionInfo().getReplicaId());<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      // close all outstanding replica scanners but the one we heard back from<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      outstandingCallables.remove(scanner);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      for (ScannerCallable s : outstandingCallables) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        if (LOG.isTraceEnabled()) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>          LOG.trace("Closing scanner id=" + s.scannerId +<a name="line.271"></a>
+<span class="sourceLineNo">272</span>            ", replica=" + s.getHRegionInfo().getRegionId() +<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            " because slow and replica=" +<a name="line.273"></a>
+<span class="sourceLineNo">274</span>            this.currentScannerCallable.getHRegionInfo().getReplicaId() + " succeeded");<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        // Submit the "close" to the pool since this might take time, and we don't<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        // want to wait for the "close" to happen yet. The "wait" will happen when<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        // the table is closed (when the awaitTermination of the underlying pool is called)<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        s.setClose();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        final RetryingRPC r = new RetryingRPC(s);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        pool.submit(new Callable&lt;Void&gt;(){<a name="line.281"></a>
+<span class="sourceLineNo">282</span>          @Override<a name="line.282"></a>
+<span class="sourceLineNo">283</span>          public Void call() throws Exception {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>            r.call(scannerTimeout);<a name="line.284"></a>
+<span class="sourceLineNo">285</span>            return null;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>          }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        });<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      }<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      // now clear outstandingCallables since we scheduled a close for all the contained scanners<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      outstandingCallables.clear();<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>  /**<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * When a scanner switches in the middle of scanning (the 'next' call fails<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   * for example), the upper layer {@link ClientScanner} needs to know<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   */<a name="line.297"></a>
+<span class="sourceLineNo">298</span>  public boolean switchedToADifferentReplica() {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    return replicaSwitched.get();<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>  /**<a name="line.302"></a>
+<span class="sourceLineNo">303</span>   * @return true when the most recent RPC response indicated that the response was a heartbeat<a name="line.303"></a>
+<span class="sourceLineNo">304</span>   *         message. Heartbeat messages are sent back from the server when the processing of the<a name="line.304"></a>
+<span class="sourceLineNo">305</span>   *         scan request exceeds a certain time threshold. Heartbeats allow the server to avoid<a name="line.305"></a>
+<span class="sourceLineNo">306</span>   *         timeouts during long running scan operations.<a name="line.306"></a>
+<span class="sourceLineNo">307</span>   */<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  public boolean isHeartbeatMessage() {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    return currentScannerCallable != null &amp;&amp; currentScannerCallable.isHeartbeatMessage();<a name="line.309"></a>
+<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>  public Cursor getCursor() {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return currentScannerCallable != null ? currentScannerCallable.getCursor() : null;<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  }<a name="line.314"></a>
 <span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>  private void addCallsForOtherReplicas(<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; cs, RegionLocations rl,<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      int min, int max) {<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>    for (int id = min; id &lt;= max; id++) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      if (currentScannerCallable.id == id) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        continue; //this was already scheduled earlier<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      }<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      ScannerCallable s = currentScannerCallable.getScannerCallableForReplica(id);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      setStartRowForReplicaCallable(s);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      outstandingCallables.add(s);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      RetryingRPC retryingOnReplica = new RetryingRPC(s);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      cs.submit(retryingOnReplica, scannerTimeout, id);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  /**<a name="line.332"></a>
-<span class="sourceLineNo">333</span>   * Set the start row for the replica callable based on the state of the last result received.<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * @param callable The callable to set the start row on<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   */<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  private void setStartRowForReplicaCallable(ScannerCallable callable) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    if (this.lastResult == null || callable == null) {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      return;<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    }<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    // 1. The last result was a partial result which means we have not received all of the cells<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    // for this row. Thus, use the last result's row as the start row. If a replica switch<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    // occurs, the scanner will ensure that any accumulated partial results are cleared,<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    // and the scan can resume from this row.<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    // 2. The last result was not a partial result which means it contained all of the cells for<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    // that row (we no longer need any information from it). Set the start row to the next<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    // closest row that could be seen.<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    callable.getScan().withStartRow(this.lastResult.getRow(), this.lastResult.mayHaveMoreCellsInRow());<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>  @VisibleForTesting<a name="line.350"></a>
-<span class="sourceLineNo">351</span>  boolean isAnyRPCcancelled() {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    return someRPCcancelled;<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>  class RetryingRPC implements RetryingCallable&lt;Pair&lt;Result[], ScannerCallable&gt;&gt;, Cancellable {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    final ScannerCallable callable;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    RpcRetryingCaller&lt;Result[]&gt; caller;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    private volatile boolean cancelled = false;<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>    RetryingRPC(ScannerCallable callable) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      this.callable = callable;<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      // For the Consistency.STRONG (default case), we reuse the caller<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      // to keep compatibility with what is done in the past<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      // For the Consistency.TIMELINE case, we can't reuse the caller<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      // since we could be making parallel RPCs (caller.callWithRetries is synchronized<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      // and we can't invoke it multiple times at the same time)<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      this.caller = ScannerCallableWithReplicas.this.caller;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      if (scan.getConsistency() == Consistency.TIMELINE) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        this.caller = RpcRetryingCallerFactory.instantiate(ScannerCallableWithReplicas.this.conf)<a name="line.369"></a>
-<span class="sourceLineNo">370</span>            .&lt;Result[]&gt;newCaller();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      }<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>    @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    public Pair&lt;Result[], ScannerCallable&gt; call(int callTimeout) throws IOException {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      // since the retries is done within the ResultBoundedCompletionService,<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      // we don't invoke callWithRetries here<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      if (cancelled) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        return null;<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      }<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      Result[] res = this.caller.callWithoutRetries(this.callable, callTimeout);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      return new Pair&lt;&gt;(res, this.callable);<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    }<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>    @Override<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    public void prepare(boolean reload) throws IOException {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      if (cancelled) return;<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>      if (Thread.interrupted()) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        throw new InterruptedIOException();<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      }<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>      callable.prepare(reload);<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
-<span class="sourceLineNo">395</span><a name="line.395"></a>
-<span class="sourceLineNo">396</span>    @Override<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    public void throwable(Throwable t, boolean retrying) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      callable.throwable(t, retrying);<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    }<a name="line.399"></a>
-<span class="sourceLineNo">400</span><a name="line.400"></a>
-<span class="sourceLineNo">401</span>    @Override<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    public String getExceptionMessageAdditionalDetail() {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      return callable.getExceptionMessageAdditionalDetail();<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    }<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>    @Override<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    public long sleep(long pause, int tries) {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      return callable.sleep(pause, tries);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    }<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>    @Override<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    public void cancel() {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      cancelled = true;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      caller.cancel();<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      if (callable.getRpcController() != null) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        callable.getRpcController().startCancel();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      }<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      someRPCcancelled = true;<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>    @Override<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    public boolean isCancelled() {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return cancelled;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
+<span class="sourceLineNo">316</span>  private void addCallsForCurrentReplica(<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; cs) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    RetryingRPC retryingOnReplica = new RetryingRPC(currentScannerCallable);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    outstandingCallables.add(currentScannerCallable);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    cs.submit(retryingOnReplica, scannerTimeout, currentScannerCallable.id);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>  private void addCallsForOtherReplicas(<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; cs, int min, int max) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>    for (int id = min; id &lt;= max; id++) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      if (currentScannerCallable.id == id) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        continue; //this was already scheduled earlier<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      }<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      ScannerCallable s = currentScannerCallable.getScannerCallableForReplica(id);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      setStartRowForReplicaCallable(s);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      outstandingCallables.add(s);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      RetryingRPC retryingOnReplica = new RetryingRPC(s);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      cs.submit(retryingOnReplica, scannerTimeout, id);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>  /**<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   * Set the start row for the replica callable based on the state of the last result received.<a name="line.339"></a>
+<span class="sourceLineNo">340</span>   * @param callable The callable to set the start row on<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   */<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  private void setStartRowForReplicaCallable(ScannerCallable callable) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    if (this.lastResult == null || callable == null) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      return;<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    }<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    // 1. The last result was a partial result which means we have not received all of the cells<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    // for this row. Thus, use the last result's row as the start row. If a replica switch<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    // occurs, the scanner will ensure that any accumulated partial results are cleared,<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    // and the scan can resume from this row.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    // 2. The last result was not a partial result which means it contained all of the cells for<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    // that row (we no longer need any information from it). Set the start row to the next<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    // closest row that could be seen.<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    callable.getScan().withStartRow(this.lastResult.getRow(), this.lastResult.mayHaveMoreCellsInRow());<a name="line.353"></a>
+<span class="sourceLineNo">354</span>  }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>  @VisibleForTesting<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  boolean isAnyRPCcancelled() {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    return someRPCcancelled;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>  }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>  class RetryingRPC implements RetryingCallable&lt;Pair&lt;Result[], ScannerCallable&gt;&gt;, Cancellable {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    final ScannerCallable callable;<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    RpcRetryingCaller&lt;Result[]&gt; caller;<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    private volatile boolean cancelled = false;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span>    RetryingRPC(ScannerCallable callable) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      this.callable = callable;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      // For the Consistency.STRONG (default case), we reuse the caller<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      // to keep compatibility with what is done in the past<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      // For the Consistency.TIMELINE case, we can't reuse the caller<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      // since we could be making parallel RPCs (caller.callWithRetries is synchronized<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      // and we can't invoke it multiple times at the same time)<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      this.caller = ScannerCallableWithReplicas.this.caller;<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      if (scan.getConsistency() == Consistency.TIMELINE) {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        this.caller = RpcRetryingCallerFactory.instantiate(ScannerCallableWithReplicas.this.conf)<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            .&lt;Result[]&gt;newCaller();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      }<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>    @Override<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    public Pair&lt;Result[], ScannerCallable&gt; call(int callTimeout) throws IOException {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      // since the retries is done within the ResultBoundedCompletionService,<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      // we don't invoke callWithRetries here<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      if (cancelled) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        return null;<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      Result[] res = this.caller.callWithoutRetries(this.callable, callTimeout);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      return new Pair&lt;&gt;(res, this.callable);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>    @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    public void prepare(boolean reload) throws IOException {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      if (cancelled) return;<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>      if (Thread.interrupted()) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>        throw new InterruptedIOException();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      }<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLineNo">399</span>      callable.prepare(reload);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>    @Override<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    public void throwable(Throwable t, boolean retrying) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      callable.throwable(t, retrying);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    }<a name="line.405"></a>
+<span class="sourceLineNo">406</span><a name="line.406"></a>
+<span class="sourceLineNo">407</span>    @Override<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    public String getExceptionMessageAdditionalDetail() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      return callable.getExceptionMessageAdditionalDetail();<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>    @Override<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    public long sleep(long pause, int tries) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      return callable.sleep(pause, tries);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    }<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>    @Override<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    public void cancel() {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      cancelled = true;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      caller.cancel();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      if (callable.getRpcController() != null) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        callable.getRpcController().startCancel();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      someRPCcancelled = true;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    }<a name="line.425"></a>
 <span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>  @Override<a name="line.427"></a>
-<span class="sourceLineNo">428</span>  public void prepare(boolean reload) throws IOException {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>  }<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>  @Override<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public void throwable(Throwable t, boolean retrying) {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    currentScannerCallable.throwable(t, retrying);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  public String getExceptionMessageAdditionalDetail() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    return currentScannerCallable.getExceptionMessageAdditionalDetail();<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>  @Override<a name="line.441"></a>
-<span class="sourceLineNo">442</span>  public long sleep(long pause, int tries) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    return currentScannerCallable.sleep(pause, tries);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  }<a name="line.444"></a>
-<span class="sourceLineNo">445</span>}<a name="line.445"></a>
+<span class="sourceLineNo">427</span>    @Override<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    public boolean isCancelled() {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      return cancelled;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>  @Override<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  public void prepare(boolean reload) throws IOException {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>  }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>  @Override<a name="line.437"></a>
+<span class="sourceLineNo">438</span>  public void throwable(Throwable t, boolean retrying) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    currentScannerCallable.throwable(t, retrying);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>  }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>  @Override<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  public String getExceptionMessageAdditionalDetail() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    return currentScannerCallable.getExceptionMessageAdditionalDetail();<a name="line.444"></a>
+<span class="sourceLineNo">445</span>  }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>  @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  public long sleep(long pause, int tries) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    return currentScannerCallable.sleep(pause, tries);<a name="line.449"></a>
+<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
+<span class="sourceLineNo">451</span>}<a name="line.451"></a>
 
 
 


[45/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index b866038..05dc9fb 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -17905,7 +17905,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  137
+                  136
                 </td>
               </tr>
                           <tr>
@@ -26879,7 +26879,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  72
+                  73
                 </td>
               </tr>
                           <tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index 5a80a56..1faf93a 100644
--- a/coc.html
+++ b/coc.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -380,7 +380,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/cygwin.html
----------------------------------------------------------------------
diff --git a/cygwin.html b/cygwin.html
index 71af3d5..d3c3cd2 100644
--- a/cygwin.html
+++ b/cygwin.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Installing Apache HBase (TM) on Windows using Cygwin</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -679,7 +679,7 @@ Now your <b>HBase </b>server is running, <b>start coding</b> and build that next
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index b3d8a6d..a733827 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -318,7 +318,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr></table></div></div><a name="Project_Transitive_Dependencies"></a>
 <div class="section">
@@ -413,7 +413,7 @@
 <p><b>Description: </b>This is the core API of hamcrest matcher framework to be used by third-party framework providers. This includes the a foundation set of matcher implementations for common operations.</p>
 <p><b>URL: </b><a class="externalLink" href="https://github.com/hamcrest/JavaHamcrest/hamcrest-core">https://github.com/hamcrest/JavaHamcrest/hamcrest-core</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/bsd-license.php">New BSD License</a></p></td></tr></table></div></li></ul></li>
-<li>org.mockito:mockito-all:jar:1.10.8 (test) <img id="_img11" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep10', '_img11' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep10" style="display:none">
+<li>org.mockito:mockito-all:jar:1.10.19 (test) <img id="_img11" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep10', '_img11' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep10" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Mockito</th></tr>
@@ -473,11 +473,11 @@
 <td>1.5</td>
 <td>debug</td></tr>
 <tr class="b">
-<td>mockito-all-1.10.8.jar</td>
-<td>1.16 MB</td>
-<td>1,183</td>
-<td>736</td>
-<td>77</td>
+<td>mockito-all-1.10.19.jar</td>
+<td>1.18 MB</td>
+<td>1,215</td>
+<td>752</td>
+<td>79</td>
 <td>1.5</td>
 <td>debug</td></tr>
 <tr class="a">
@@ -490,10 +490,10 @@
 <th>Debug</th></tr>
 <tr class="b">
 <td>5</td>
-<td>1.98 MB</td>
-<td>1,945</td>
-<td>1,403</td>
-<td>132</td>
+<td>2.00 MB</td>
+<td>1,977</td>
+<td>1,419</td>
+<td>134</td>
 <td>1.5</td>
 <td>5</td></tr>
 <tr class="a">
@@ -506,10 +506,10 @@
 <td>compile: 3</td></tr>
 <tr class="b">
 <td>test: 2</td>
-<td>test: 1.20 MB</td>
-<td>test: 1,235</td>
-<td>test: 781</td>
-<td>test: 80</td>
+<td>test: 1.22 MB</td>
+<td>test: 1,267</td>
+<td>test: 797</td>
+<td>test: 82</td>
 <td>-</td>
 <td>test: 2</td></tr></table></div>
                   </div>
@@ -524,7 +524,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 8c15453..657809c 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -293,10 +293,10 @@
 <td>33</td></tr>
 <tr class="b">
 <th>Number of dependencies (NOD):</th>
-<td>93</td></tr>
+<td>92</td></tr>
 <tr class="a">
 <th>Number of unique artifacts (NOA):</th>
-<td>94</td></tr>
+<td>93</td></tr>
 <tr class="b">
 <th>Number of SNAPSHOT artifacts (NOS):</th>
 <td>0</td></tr>
@@ -430,7 +430,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">1.3.1</td>
+<td width="25%">1.4</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-it">org.apache.hbase:hbase-it</a></li>
@@ -473,7 +473,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">2.4</td>
+<td width="25%">2.5</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -530,18 +530,6 @@
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-spark">org.apache.hbase:hbase-spark</a></li>
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
 <div class="section">
-<h4><a name="commons-net:commons-net"></a>commons-net:commons-net</h4>
-<table border="0" class="table table-striped">
-<tr class="b">
-<td><img alt="success" src="images/icon_success_sml.gif" /></td>
-<td>
-<table border="0" class="table table-striped">
-<tr class="a">
-<td width="25%">3.1</td>
-<td>
-<ol style="list-style-type: lower-alpha">
-<li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
-<div class="section">
 <h4><a name="io.dropwizard.metrics:metrics-core"></a>io.dropwizard.metrics:metrics-core</h4>
 <table border="0" class="table table-striped">
 <tr class="b">
@@ -549,7 +537,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">3.1.2</td>
+<td width="25%">3.2.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -580,7 +568,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">4.1.1.Final</td>
+<td width="25%">4.1.9.Final</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -608,7 +596,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">2.2.2</td>
+<td width="25%">2.2.12</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li></ol></td></tr></table></td></tr></table></div>
@@ -720,7 +708,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">2.11.6</td>
+<td width="25%">2.12.2</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">org.apache.hbase:hbase-external-blockcache</a></li></ol></td></tr></table></td></tr></table></div>
@@ -772,7 +760,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -784,7 +772,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -796,7 +784,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1381,7 +1369,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">3.1.0-incubating</td>
+<td width="25%">3.2.0-incubating</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1399,7 +1387,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">4.5.2</td>
+<td width="25%">4.5.3</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1413,7 +1401,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">4.4.4</td>
+<td width="25%">4.4.6</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1501,7 +1489,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">3.4.8</td>
+<td width="25%">3.4.9</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1656,7 +1644,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">2.22.2</td>
+<td width="25%">2.25.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li>
@@ -1732,7 +1720,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">9.1.9.0</td>
+<td width="25%">9.1.10.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-shell">org.apache.hbase:hbase-shell</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1744,7 +1732,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">1.10.8</td>
+<td width="25%">1.10.19</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">org.apache.hbase:hbase-annotations</a></li>
@@ -1824,7 +1812,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1836,7 +1824,7 @@
 <td>
 <table border="0" class="table table-striped">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-testing-util">org.apache.hbase:hbase-testing-util</a></li></ol></td></tr></table></td></tr></table></div></div>
@@ -1852,7 +1840,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index 95aa038..bda6557 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -318,7 +318,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index 3a374f5..dffc4d3 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -313,9 +313,9 @@
 <tr class="b">
 <td>commons-cli</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">commons-cli</a></td>
-<td>1.3.1</td>
+<td>1.4</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-codec</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-codec/">commons-codec</a></td>
@@ -330,10 +330,10 @@
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-io</td>
-<td><a class="externalLink" href="http://commons.apache.org/io/">commons-io</a></td>
-<td>2.4</td>
+<td><a class="externalLink" href="http://commons.apache.org/proper/commons-io/">commons-io</a></td>
+<td>2.5</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="b">
 <td>commons-lang</td>
 <td><a class="externalLink" href="http://commons.apache.org/lang/">commons-lang</a></td>
@@ -347,411 +347,405 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
 <tr class="b">
-<td>commons-net</td>
-<td><a class="externalLink" href="http://commons.apache.org/net/">commons-net</a></td>
-<td>3.1</td>
-<td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
 <td>io.dropwizard.metrics</td>
 <td><a class="externalLink" href="http://metrics.codahale.com/metrics-core/">metrics-core</a></td>
-<td>3.1.2</td>
+<td>3.2.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>io.netty</td>
 <td><a class="externalLink" href="http://netty.io/netty-all/">netty-all</a></td>
-<td>4.1.1.Final</td>
+<td>4.1.9.Final</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>javax.servlet</td>
 <td><a class="externalLink" href="http://servlet-spec.java.net">javax.servlet-api</a></td>
 <td>3.1.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>javax.xml.bind</td>
-<td><a class="externalLink" href="https://jaxb.dev.java.net/">jaxb-api</a></td>
-<td>2.2.2</td>
+<td><a class="externalLink" href="http://jaxb.java.net/">jaxb-api</a></td>
+<td>2.2.12</td>
 <td>jar</td>
-<td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
-<tr class="a">
+<td><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
+<tr class="b">
 <td>junit</td>
 <td><a class="externalLink" href="http://junit.org">junit</a></td>
 <td>4.12</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>log4j</td>
 <td><a class="externalLink" href="http://logging.apache.org/log4j/1.2/">log4j</a></td>
 <td>1.2.17</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>net.spy</td>
 <td><a class="externalLink" href="http://www.couchbase.org/code/couchbase/java">spymemcached</a></td>
-<td>2.11.6</td>
+<td>2.12.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-crypto/">commons-crypto</a></td>
 <td>1.0.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math</a></td>
 <td>2.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-client">curator-client</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-framework">curator-framework</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-recipes">curator-recipes</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-auth</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-client</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-hdfs</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-core</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-jobclient</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-minicluster</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-client">hbase-client</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-common">hbase-common</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-endpoint">hbase-endpoint</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-examples">hbase-examples</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">hbase-external-blockcache</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop-compat">hbase-hadoop-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop2-compat">hbase-hadoop2-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics">hbase-metrics</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics-api">hbase-metrics-api</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol">hbase-protocol</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol-shaded">hbase-protocol-shaded</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-rsgroup">hbase-rsgroup</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-server">hbase-server</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-shell">hbase-shell</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">hbase-thrift</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.htrace</td>
 <td><a class="externalLink" href="http://incubator.apache.org/projects/htrace.html">htrace-core</a></td>
-<td>3.1.0-incubating</td>
+<td>3.2.0-incubating</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">httpclient</a></td>
-<td>4.5.2</td>
+<td>4.5.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">httpcore</a></td>
-<td>4.4.4</td>
+<td>4.4.6</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-client">kerb-client</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-simplekdc">kerb-simplekdc</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.thrift</td>
 <td><a class="externalLink" href="http://thrift.apache.org">libthrift</a></td>
 <td>0.9.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.zookeeper</td>
 <td>zookeeper</td>
-<td>3.4.8</td>
+<td>3.4.9</td>
 <td>jar</td>
-<td>-</td></tr>
-<tr class="b">
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-core-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-jaxrs</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-mapper-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-xc</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jettison</td>
-<td><a class="externalLink" href="http://codehaus.org/jettison/">jettison</a></td>
-<td>1.3.3</td>
+<td><a class="externalLink" href="https://github.com/jettison-json/jettison">jettison</a></td>
+<td>1.3.8</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jsp</a></td>
 <td>9.2.19.v20160908</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.jersey.containers</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">jersey-container-servlet-core</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.jersey.media</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-media-json-jackson1/">jersey-media-json-jackson1</a></td>
 <td>2.23.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
-<td>9.1.9.0</td>
+<td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
-<td>1.7.7</td>
+<td>1.7.24</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr></table></div>
 <div class="section">
@@ -879,7 +873,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr></table></div></div>
                   </div>
@@ -894,7 +888,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 01a825d..b456d4e 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3815,21 +3815,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Thu Jun 15 14:39:55 UTC 2017"</code></td>
+<td class="colLast"><code>"Fri Jun 16 14:39:22 UTC 2017"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"8b36da110896feebbd90d0eefddaec12435b4f4b"</code></td>
+<td class="colLast"><code>"c20d9cb1a25963cb04c54d96f620726b5a17d785"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"b13318ffbb80f39cd2a6d44411b4c16f"</code></td>
+<td class="colLast"><code>"b16eeb35594be1f4103d436baffe4e65"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 5ee32a4..aaf042b 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -1294,9 +1294,9 @@
 <dd>
 <div class="block">Add Bytes map to config list.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForCurrentReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-">addCallsForCurrentReplica(ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt;, RegionLocations)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html" title="class in org.apache.hadoop.hbase.client">ScannerCallableWithReplicas</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForCurrentReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-">addCallsForCurrentReplica(ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt;)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html" title="class in org.apache.hadoop.hbase.client">ScannerCallableWithReplicas</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForOtherReplicas-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-int-int-">addCallsForOtherReplicas(ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt;, RegionLocations, int, int)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html" title="class in org.apache.hadoop.hbase.client">ScannerCallableWithReplicas</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForOtherReplicas-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-int-int-">addCallsForOtherReplicas(ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt;, int, int)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html" title="class in org.apache.hadoop.hbase.client">ScannerCallableWithReplicas</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/RpcRetryingCallerWithReadReplicas.html#addCallsForReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-int-int-">addCallsForReplica(ResultBoundedCompletionService&lt;Result&gt;, RegionLocations, int, int)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RpcRetryingCallerWithReadReplicas.html" title="class in org.apache.hadoop.hbase.client">RpcRetryingCallerWithReadReplicas</a></dt>
 <dd>
@@ -60447,6 +60447,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html#isScanRequest-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader-org.apache.hadoop.hbase.shaded.com.google.protobuf.Message-">isScanRequest(RPCProtos.RequestHeader, Message)</a></span> - Method in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RWQueueRpcExecutor.html" title="class in org.apache.hadoop.hbase.ipc">RWQueueRpcExecutor</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html#isScanUsePread--">isScanUsePread()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">StoreScanner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ScheduledChore.html#isScheduled--">isScheduled()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/http/HttpConfig.html#isSecure--">isSecure()</a></span> - Method in class org.apache.hadoop.hbase.http.<a href="org/apache/hadoop/hbase/http/HttpConfig.html" title="class in org.apache.hadoop.hbase.http">HttpConfig</a></dt>
@@ -85984,6 +85986,8 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/RegionReplicaReplicationEndpoint.RegionReplicaSinkWriter.html#RegionReplicaSinkWriter-org.apache.hadoop.hbase.replication.regionserver.RegionReplicaReplicationEndpoint.RegionReplicaOutputSink-org.apache.hadoop.hbase.client.ClusterConnection-java.util.concurrent.ExecutorService-int-">RegionReplicaSinkWriter(RegionReplicaReplicationEndpoint.RegionReplicaOutputSink, ClusterConnection, ExecutorService, int)</a></span> - Constructor for class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/RegionReplicaReplicationEndpoint.RegionReplicaSinkWriter.html" title="class in org.apache.hadoop.hbase.replication.regionserver">RegionReplicaReplicationEndpoint.RegionReplicaSinkWriter</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#regionReplication">regionReplication</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html" title="class in org.apache.hadoop.hbase.client">ScannerCallableWithReplicas</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/client/RegionReplicaUtil.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionReplicaUtil</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
 <dd>
 <div class="block">Utility methods which contain the logic for regions and replicas.</div>
@@ -104907,7 +104911,7 @@ service.</div>
 <dd>
 <div class="block">Scanner scans both the memstore and the Store.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html#StoreScanner-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-boolean-">StoreScanner(Store, Scan, ScanInfo, NavigableSet&lt;byte[]&gt;, long, boolean)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">StoreScanner</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html#StoreScanner-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.client.Scan-org.apache.hadoop.hbase.regionserver.ScanInfo-java.util.NavigableSet-long-boolean-org.apache.hadoop.hbase.regionserver.ScanType-">StoreScanner(Store, Scan, ScanInfo, NavigableSet&lt;byte[]&gt;, long, boolean, ScanType)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">StoreScanner</a></dt>
 <dd>
 <div class="block">An internal constructor.</div>
 </dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index 5fbe10f..1b7e23c 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -167,9 +167,9 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/class-use/RegionLocations.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/RegionLocations.html b/devapidocs/org/apache/hadoop/hbase/class-use/RegionLocations.html
index 14ebf87..c7b5938 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/RegionLocations.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/RegionLocations.html
@@ -351,18 +351,6 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForCurrentReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-">addCallsForCurrentReplica</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
-                         <a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;rl)</code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">ScannerCallableWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#addCallsForOtherReplicas-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-int-int-">addCallsForOtherReplicas</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;&nbsp;cs,
-                        <a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;rl,
-                        int&nbsp;min,
-                        int&nbsp;max)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">RpcRetryingCallerWithReadReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCallerWithReadReplicas.html#addCallsForReplica-org.apache.hadoop.hbase.client.ResultBoundedCompletionService-org.apache.hadoop.hbase.RegionLocations-int-int-">addCallsForReplica</a></span>(<a href="../../../../../org/apache/hadoop/hbase/client/ResultBoundedCompletionService.html" title="class in org.apache.hadoop.hbase.client">ResultBoundedCompletionService</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&gt;&nbsp;cs,
                   <a href="../../../../../org/apache/hadoop/hbase/RegionLocations.html" title="class in org.apache.hadoop.hbase">RegionLocations</a>&nbsp;rl,
                   int&nbsp;min,

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/classification/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/classification/package-tree.html b/devapidocs/org/apache/hadoop/hbase/classification/package-tree.html
index 8b373d2..8b7d483 100644
--- a/devapidocs/org/apache/hadoop/hbase/classification/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/classification/package-tree.html
@@ -88,12 +88,12 @@
 </ul>
 <h2 title="Annotation Type Hierarchy">Annotation Type Hierarchy</h2>
 <ul>
+<li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Unstable.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceStability.Unstable</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Public.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceAudience.Public</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.LimitedPrivate.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceAudience.LimitedPrivate</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
-<li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Unstable.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceStability.Unstable</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
-<li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Evolving.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceStability.Evolving</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
-<li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Stable.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceStability.Stable</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceAudience.Private</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Stable.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceStability.Stable</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.classification.<a href="../../../../../org/apache/hadoop/hbase/classification/InterfaceStability.Evolving.html" title="annotation in org.apache.hadoop.hbase.classification"><span class="typeNameLink">InterfaceStability.Evolving</span></a> (implements java.lang.annotation.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/annotation/Annotation.html?is-external=true" title="class or interface in java.lang.annotation">Annotation</a>)</li>
 </ul>
 </div>
 <!-- ======= START OF BOTTOM NAVBAR ====== -->

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/client/ClusterStatusListener.MulticastListener.ClusterStatusHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ClusterStatusListener.MulticastListener.ClusterStatusHandler.html b/devapidocs/org/apache/hadoop/hbase/client/ClusterStatusListener.MulticastListener.ClusterStatusHandler.html
index d44aa44..fb9eecb 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ClusterStatusListener.MulticastListener.ClusterStatusHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ClusterStatusListener.MulticastListener.ClusterStatusHandler.html
@@ -221,7 +221,7 @@ extends io.netty.channel.SimpleChannelInboundHandler&lt;io.netty.channel.socket.
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html b/devapidocs/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html
index d8ac55b..e9278a5 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.355">ScannerCallableWithReplicas.RetryingRPC</a>
+<pre>class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html#line.361">ScannerCallableWithReplicas.RetryingRPC</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallable.html" title="interface in org.apache.hadoop.hbase.client">RetryingCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;, <a href="../../../../../org/apache/hadoop/hbase/client/Cancellable.html" title="interface in org.apache.hadoop.hbase.client">Cancellable</a></pre>
 </li>
@@ -247,7 +247,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>callable</h4>
-<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.356">callable</a></pre>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.362">callable</a></pre>
 </li>
 </ul>
 <a name="caller">
@@ -256,7 +256,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>caller</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCaller.html" title="interface in org.apache.hadoop.hbase.client">RpcRetryingCaller</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[]&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.357">caller</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/RpcRetryingCaller.html" title="interface in org.apache.hadoop.hbase.client">RpcRetryingCaller</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[]&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.363">caller</a></pre>
 </li>
 </ul>
 <a name="cancelled">
@@ -265,7 +265,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockListLast">
 <li class="blockList">
 <h4>cancelled</h4>
-<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.358">cancelled</a></pre>
+<pre>private volatile&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.364">cancelled</a></pre>
 </li>
 </ul>
 </li>
@@ -282,7 +282,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RetryingRPC</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.360">RetryingRPC</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&nbsp;callable)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.366">RetryingRPC</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&nbsp;callable)</pre>
 </li>
 </ul>
 </li>
@@ -299,7 +299,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>call</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.375">call</a>(int&nbsp;callTimeout)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.381">call</a>(int&nbsp;callTimeout)
                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallable.html#call-int-">RetryingCallable</a></code></span></div>
 <div class="block">Computes a result, or throws an exception if unable to do so.</div>
@@ -321,7 +321,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>prepare</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.386">prepare</a>(boolean&nbsp;reload)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.392">prepare</a>(boolean&nbsp;reload)
              throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallable.html#prepare-boolean-">RetryingCallable</a></code></span></div>
 <div class="block">Prepare by setting up any connections to servers, etc., ahead of call invocation.
@@ -342,7 +342,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>throwable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.397">throwable</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.403">throwable</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t,
                       boolean&nbsp;retrying)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallable.html#throwable-java.lang.Throwable-boolean-">RetryingCallable</a></code></span></div>
 <div class="block">Called when call throws an exception and we are going to retry; take action to
@@ -364,7 +364,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>getExceptionMessageAdditionalDetail</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.402">getExceptionMessageAdditionalDetail</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.408">getExceptionMessageAdditionalDetail</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallable.html#getExceptionMessageAdditionalDetail--">getExceptionMessageAdditionalDetail</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallable.html" title="interface in org.apache.hadoop.hbase.client">RetryingCallable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>[],<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.html" title="class in org.apache.hadoop.hbase.client">ScannerCallable</a>&gt;&gt;</code></dd>
@@ -381,7 +381,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>sleep</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.407">sleep</a>(long&nbsp;pause,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.413">sleep</a>(long&nbsp;pause,
                   int&nbsp;tries)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -400,7 +400,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockList">
 <li class="blockList">
 <h4>cancel</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.412">cancel</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.418">cancel</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/Cancellable.html#cancel--">cancel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Cancellable.html" title="interface in org.apache.hadoop.hbase.client">Cancellable</a></code></dd>
@@ -413,7 +413,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/client/RetryingCallab
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isCancelled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.422">isCancelled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.RetryingRPC.html#line.428">isCancelled</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/client/Cancellable.html#isCancelled--">isCancelled</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/Cancellable.html" title="interface in org.apache.hadoop.hbase.client">Cancellable</a></code></dd>


[48/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index c80dbce..161103c 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,24 +5,24 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.6, based on Prawn 1.2.1)
 /Producer (Apache HBase Team)
-/CreationDate (D:20170615144844+00'00')
-/ModDate (D:20170615144844+00'00')
+/CreationDate (D:20170616144825+00'00')
+/ModDate (D:20170616144825+00'00')
 >>
 endobj
 2 0 obj
 << /Type /Catalog
 /Pages 3 0 R
 /Names 25 0 R
-/Outlines 4023 0 R
-/PageLabels 4231 0 R
+/Outlines 4026 0 R
+/PageLabels 4234 0 R
 /PageMode /UseOutlines
 /ViewerPreferences [/FitWindow]
 >>
 endobj
 3 0 obj
 << /Type /Pages
-/Count 676
-/Kids [7 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 39 0 R 43 0 R 47 0 R 55 0 R 58 0 R 60 0 R 62 0 R 66 0 R 71 0 R 74 0 R 79 0 R 81 0 R 84 0 R 86 0 R 92 0 R 101 0 R 106 0 R 108 0 R 120 0 R 123 0 R 130 0 R 136 0 R 145 0 R 154 0 R 166 0 R 170 0 R 172 0 R 176 0 R 182 0 R 184 0 R 186 0 R 188 0 R 190 0 R 193 0 R 199 0 R 201 0 R 204 0 R 206 0 R 208 0 R 210 0 R 212 0 R 214 0 R 217 0 R 220 0 R 224 0 R 226 0 R 228 0 R 230 0 R 232 0 R 234 0 R 236 0 R 238 0 R 245 0 R 247 0 R 249 0 R 251 0 R 254 0 R 258 0 R 263 0 R 268 0 R 271 0 R 274 0 R 290 0 R 299 0 R 305 0 R 317 0 R 326 0 R 331 0 R 333 0 R 335 0 R 346 0 R 351 0 R 355 0 R 360 0 R 367 0 R 378 0 R 380 0 R 392 0 R 406 0 R 415 0 R 417 0 R 419 0 R 425 0 R 436 0 R 447 0 R 458 0 R 461 0 R 464 0 R 468 0 R 472 0 R 476 0 R 479 0 R 481 0 R 484 0 R 488 0 R 490 0 R 494 0 R 499 0 R 503 0 R 509 0 R 511 0 R 517 0 R 519 0 R 523 0 R 532 0 R 534 0 R 538 0 R 541 0 R 544 0 R 547 0 R 561 0 R 568 0 R 575 0 R 587 0 R 593 0 R 601 0 R 610 0 R 613 0 R 617 0 R 620 0
  R 631 0 R 639 0 R 645 0 R 650 0 R 654 0 R 656 0 R 670 0 R 682 0 R 688 0 R 694 0 R 697 0 R 706 0 R 714 0 R 718 0 R 723 0 R 728 0 R 730 0 R 732 0 R 734 0 R 742 0 R 751 0 R 755 0 R 763 0 R 771 0 R 777 0 R 781 0 R 787 0 R 792 0 R 797 0 R 805 0 R 807 0 R 811 0 R 816 0 R 822 0 R 825 0 R 832 0 R 842 0 R 846 0 R 848 0 R 851 0 R 855 0 R 860 0 R 863 0 R 875 0 R 879 0 R 884 0 R 892 0 R 897 0 R 901 0 R 905 0 R 907 0 R 910 0 R 912 0 R 916 0 R 918 0 R 922 0 R 926 0 R 930 0 R 935 0 R 940 0 R 943 0 R 945 0 R 952 0 R 958 0 R 966 0 R 975 0 R 979 0 R 984 0 R 988 0 R 990 0 R 999 0 R 1002 0 R 1007 0 R 1010 0 R 1019 0 R 1022 0 R 1028 0 R 1035 0 R 1038 0 R 1040 0 R 1049 0 R 1051 0 R 1053 0 R 1056 0 R 1058 0 R 1060 0 R 1062 0 R 1064 0 R 1066 0 R 1070 0 R 1074 0 R 1079 0 R 1081 0 R 1083 0 R 1085 0 R 1087 0 R 1092 0 R 1101 0 R 1104 0 R 1106 0 R 1108 0 R 1113 0 R 1115 0 R 1118 0 R 1120 0 R 1122 0 R 1124 0 R 1127 0 R 1132 0 R 1137 0 R 1147 0 R 1152 0 R 1166 0 R 1179 0 R 1192 0 R 1201 0 R 1215 0 R 1219 0 R 122
 9 0 R 1242 0 R 1245 0 R 1257 0 R 1266 0 R 1273 0 R 1277 0 R 1287 0 R 1292 0 R 1296 0 R 1302 0 R 1308 0 R 1315 0 R 1323 0 R 1325 0 R 1337 0 R 1339 0 R 1344 0 R 1348 0 R 1353 0 R 1363 0 R 1369 0 R 1375 0 R 1377 0 R 1379 0 R 1392 0 R 1398 0 R 1406 0 R 1411 0 R 1423 0 R 1430 0 R 1435 0 R 1445 0 R 1453 0 R 1456 0 R 1462 0 R 1466 0 R 1469 0 R 1474 0 R 1477 0 R 1481 0 R 1487 0 R 1491 0 R 1496 0 R 1502 0 R 1506 0 R 1509 0 R 1511 0 R 1519 0 R 1527 0 R 1533 0 R 1538 0 R 1542 0 R 1545 0 R 1551 0 R 1557 0 R 1562 0 R 1564 0 R 1566 0 R 1569 0 R 1571 0 R 1579 0 R 1582 0 R 1588 0 R 1596 0 R 1600 0 R 1605 0 R 1611 0 R 1614 0 R 1616 0 R 1618 0 R 1620 0 R 1627 0 R 1637 0 R 1639 0 R 1641 0 R 1643 0 R 1645 0 R 1648 0 R 1650 0 R 1652 0 R 1654 0 R 1657 0 R 1659 0 R 1661 0 R 1663 0 R 1667 0 R 1671 0 R 1680 0 R 1682 0 R 1684 0 R 1686 0 R 1688 0 R 1695 0 R 1697 0 R 1702 0 R 1704 0 R 1706 0 R 1713 0 R 1718 0 R 1724 0 R 1728 0 R 1731 0 R 1734 0 R 1738 0 R 1740 0 R 1743 0 R 1745 0 R 1747 0 R 1749 0 R 1753 0 R 1
 755 0 R 1758 0 R 1760 0 R 1762 0 R 1764 0 R 1766 0 R 1774 0 R 1777 0 R 1782 0 R 1784 0 R 1786 0 R 1788 0 R 1790 0 R 1798 0 R 1809 0 R 1812 0 R 1826 0 R 1838 0 R 1842 0 R 1848 0 R 1853 0 R 1856 0 R 1861 0 R 1863 0 R 1868 0 R 1870 0 R 1873 0 R 1875 0 R 1877 0 R 1879 0 R 1881 0 R 1885 0 R 1887 0 R 1891 0 R 1895 0 R 1902 0 R 1909 0 R 1920 0 R 1934 0 R 1946 0 R 1963 0 R 1967 0 R 1969 0 R 1973 0 R 1990 0 R 1998 0 R 2005 0 R 2014 0 R 2020 0 R 2030 0 R 2041 0 R 2047 0 R 2056 0 R 2068 0 R 2085 0 R 2096 0 R 2099 0 R 2108 0 R 2123 0 R 2130 0 R 2133 0 R 2138 0 R 2143 0 R 2153 0 R 2161 0 R 2164 0 R 2166 0 R 2170 0 R 2185 0 R 2194 0 R 2199 0 R 2203 0 R 2206 0 R 2208 0 R 2210 0 R 2212 0 R 2214 0 R 2219 0 R 2221 0 R 2231 0 R 2241 0 R 2248 0 R 2260 0 R 2265 0 R 2269 0 R 2282 0 R 2289 0 R 2295 0 R 2297 0 R 2307 0 R 2314 0 R 2325 0 R 2329 0 R 2340 0 R 2346 0 R 2356 0 R 2365 0 R 2373 0 R 2379 0 R 2384 0 R 2388 0 R 2392 0 R 2394 0 R 2400 0 R 2404 0 R 2408 0 R 2414 0 R 2421 0 R 2426 0 R 2430 0 R 2439 0 R
  2444 0 R 2449 0 R 2462 0 R 2469 0 R 2472 0 R 2478 0 R 2484 0 R 2488 0 R 2492 0 R 2500 0 R 2506 0 R 2508 0 R 2514 0 R 2519 0 R 2522 0 R 2532 0 R 2538 0 R 2547 0 R 2551 0 R 2560 0 R 2565 0 R 2568 0 R 2578 0 R 2582 0 R 2587 0 R 2589 0 R 2598 0 R 2602 0 R 2607 0 R 2609 0 R 2611 0 R 2621 0 R 2627 0 R 2634 0 R 2636 0 R 2642 0 R 2645 0 R 2648 0 R 2651 0 R 2658 0 R 2662 0 R 2667 0 R 2672 0 R 2674 0 R 2676 0 R 2680 0 R 2684 0 R 2693 0 R 2695 0 R 2698 0 R 2701 0 R 2705 0 R 2708 0 R 2710 0 R 2722 0 R 2728 0 R 2733 0 R 2739 0 R 2744 0 R 2749 0 R 2751 0 R 2758 0 R 2773 0 R 2787 0 R 2791 0 R 2806 0 R 2812 0 R 2815 0 R 2819 0 R 2821 0 R 2828 0 R 2848 0 R 2850 0 R 2857 0 R 2867 0 R 2871 0 R 2882 0 R 2893 0 R 2900 0 R 2905 0 R 2910 0 R 2914 0 R 2916 0 R 2921 0 R 2924 0 R 2930 0 R 2937 0 R 2947 0 R 2949 0 R 2955 0 R 2960 0 R 2970 0 R 2978 0 R 2984 0 R 2992 0 R 2997 0 R 3002 0 R 3009 0 R 3012 0 R 3015 0 R 3021 0 R 3028 0 R 3030 0 R 3032 0 R 3038 0 R 3040 0 R 3048 0 R 3054 0 R 3061 0 R 3067 0 R 3075 0
  R 3083 0 R 3093 0 R 3097 0 R 3107 0 R 3121 0 R 3123 0 R 3125 0 R 3129 0 R 3144 0 R 3150 0 R 3154 0 R 3157 0 R 3162 0 R 3164 0 R 3168 0 R 3170 0 R 3174 0 R 3178 0 R 3181 0 R 3190 0 R 3192 0 R 3196 0 R 3198 0 R 3201 0 R 3208 0 R 3214 0 R 3218 0 R 3221 0 R 3223 0 R 3226 0 R 3229 0 R 3233 0 R 3241 0 R 3250 0 R 3254 0 R 3259 0 R 3266 0 R 3268 0 R 3277 0 R 3282 0 R 3286 0 R 3292 0 R 3297 0 R 3301 0 R 3306 0 R 3310 0 R 3321 0 R 3331 0 R 3351 0 R 3354 0 R 3359 0 R 3362 0 R 3365 0 R 3370 0 R 3373 0 R 3378 0 R 3380 0 R 3382 0 R 3384 0 R 3386 0 R 3388 0 R 3390 0 R 3399 0 R 3403 0 R 3410 0 R 3413 0 R 3415 0 R 3422 0 R 3429 0 R 3434 0 R 3437 0 R 3439 0 R 3441 0 R 3443 0 R 3446 0 R 3453 0 R 3460 0 R 3469 0 R 3474 0 R 3477 0 R 3480 0 R 3484 0 R 3488 0 R 3492 0 R 3508 0 R 3512 0 R 3536 0 R 3540 0 R 3545 0 R 3553 0 R 3563 0 R 3572 0 R 3574 0 R 3577 0 R 3580 0 R 3596 0 R 3602 0 R 3609 0 R]
+/Count 677
+/Kids [7 0 R 13 0 R 15 0 R 17 0 R 19 0 R 21 0 R 23 0 R 39 0 R 43 0 R 47 0 R 55 0 R 58 0 R 60 0 R 62 0 R 66 0 R 71 0 R 74 0 R 79 0 R 81 0 R 84 0 R 86 0 R 92 0 R 101 0 R 106 0 R 108 0 R 120 0 R 123 0 R 130 0 R 136 0 R 145 0 R 154 0 R 166 0 R 170 0 R 172 0 R 176 0 R 182 0 R 184 0 R 186 0 R 188 0 R 190 0 R 193 0 R 199 0 R 201 0 R 204 0 R 206 0 R 208 0 R 210 0 R 212 0 R 214 0 R 217 0 R 220 0 R 224 0 R 226 0 R 228 0 R 230 0 R 232 0 R 234 0 R 236 0 R 238 0 R 245 0 R 247 0 R 249 0 R 251 0 R 254 0 R 258 0 R 263 0 R 268 0 R 271 0 R 274 0 R 290 0 R 299 0 R 305 0 R 317 0 R 326 0 R 331 0 R 333 0 R 335 0 R 346 0 R 351 0 R 355 0 R 360 0 R 367 0 R 378 0 R 380 0 R 392 0 R 406 0 R 415 0 R 417 0 R 419 0 R 425 0 R 436 0 R 447 0 R 458 0 R 461 0 R 464 0 R 468 0 R 472 0 R 476 0 R 479 0 R 481 0 R 484 0 R 488 0 R 490 0 R 494 0 R 499 0 R 503 0 R 509 0 R 511 0 R 517 0 R 519 0 R 523 0 R 532 0 R 534 0 R 538 0 R 541 0 R 544 0 R 547 0 R 561 0 R 568 0 R 575 0 R 587 0 R 593 0 R 601 0 R 610 0 R 613 0 R 617 0 R 620 0
  R 631 0 R 639 0 R 645 0 R 650 0 R 654 0 R 656 0 R 670 0 R 682 0 R 688 0 R 694 0 R 697 0 R 706 0 R 714 0 R 718 0 R 723 0 R 728 0 R 730 0 R 732 0 R 734 0 R 742 0 R 751 0 R 755 0 R 763 0 R 771 0 R 777 0 R 781 0 R 787 0 R 792 0 R 797 0 R 805 0 R 807 0 R 811 0 R 816 0 R 822 0 R 825 0 R 832 0 R 842 0 R 846 0 R 848 0 R 851 0 R 855 0 R 860 0 R 863 0 R 875 0 R 879 0 R 884 0 R 892 0 R 897 0 R 901 0 R 905 0 R 907 0 R 910 0 R 912 0 R 916 0 R 918 0 R 922 0 R 926 0 R 930 0 R 935 0 R 940 0 R 943 0 R 945 0 R 952 0 R 958 0 R 966 0 R 975 0 R 979 0 R 984 0 R 988 0 R 990 0 R 999 0 R 1002 0 R 1007 0 R 1010 0 R 1019 0 R 1022 0 R 1028 0 R 1035 0 R 1038 0 R 1040 0 R 1049 0 R 1051 0 R 1053 0 R 1056 0 R 1058 0 R 1060 0 R 1062 0 R 1064 0 R 1066 0 R 1070 0 R 1074 0 R 1079 0 R 1081 0 R 1083 0 R 1085 0 R 1087 0 R 1092 0 R 1101 0 R 1104 0 R 1106 0 R 1108 0 R 1113 0 R 1115 0 R 1118 0 R 1120 0 R 1122 0 R 1124 0 R 1127 0 R 1132 0 R 1137 0 R 1147 0 R 1152 0 R 1166 0 R 1178 0 R 1182 0 R 1195 0 R 1204 0 R 1218 0 R 122
 2 0 R 1232 0 R 1245 0 R 1248 0 R 1260 0 R 1269 0 R 1276 0 R 1280 0 R 1290 0 R 1295 0 R 1299 0 R 1305 0 R 1311 0 R 1318 0 R 1326 0 R 1328 0 R 1340 0 R 1342 0 R 1347 0 R 1351 0 R 1356 0 R 1367 0 R 1373 0 R 1379 0 R 1381 0 R 1383 0 R 1395 0 R 1401 0 R 1409 0 R 1414 0 R 1426 0 R 1433 0 R 1438 0 R 1448 0 R 1456 0 R 1459 0 R 1465 0 R 1469 0 R 1472 0 R 1477 0 R 1480 0 R 1484 0 R 1490 0 R 1494 0 R 1499 0 R 1505 0 R 1509 0 R 1512 0 R 1514 0 R 1522 0 R 1530 0 R 1536 0 R 1541 0 R 1545 0 R 1548 0 R 1554 0 R 1560 0 R 1565 0 R 1567 0 R 1569 0 R 1572 0 R 1574 0 R 1582 0 R 1585 0 R 1591 0 R 1599 0 R 1603 0 R 1608 0 R 1614 0 R 1617 0 R 1619 0 R 1621 0 R 1623 0 R 1630 0 R 1640 0 R 1642 0 R 1644 0 R 1646 0 R 1648 0 R 1651 0 R 1653 0 R 1655 0 R 1657 0 R 1660 0 R 1662 0 R 1664 0 R 1666 0 R 1670 0 R 1674 0 R 1683 0 R 1685 0 R 1687 0 R 1689 0 R 1691 0 R 1698 0 R 1700 0 R 1705 0 R 1707 0 R 1709 0 R 1716 0 R 1721 0 R 1727 0 R 1731 0 R 1734 0 R 1737 0 R 1741 0 R 1743 0 R 1746 0 R 1748 0 R 1750 0 R 1752 0 R 1
 756 0 R 1758 0 R 1761 0 R 1763 0 R 1765 0 R 1767 0 R 1769 0 R 1777 0 R 1780 0 R 1785 0 R 1787 0 R 1789 0 R 1791 0 R 1793 0 R 1801 0 R 1812 0 R 1815 0 R 1829 0 R 1841 0 R 1845 0 R 1851 0 R 1856 0 R 1859 0 R 1864 0 R 1866 0 R 1871 0 R 1873 0 R 1876 0 R 1878 0 R 1880 0 R 1882 0 R 1884 0 R 1888 0 R 1890 0 R 1894 0 R 1898 0 R 1905 0 R 1912 0 R 1923 0 R 1937 0 R 1949 0 R 1966 0 R 1970 0 R 1972 0 R 1976 0 R 1993 0 R 2001 0 R 2008 0 R 2017 0 R 2023 0 R 2033 0 R 2044 0 R 2050 0 R 2059 0 R 2071 0 R 2088 0 R 2099 0 R 2102 0 R 2111 0 R 2126 0 R 2133 0 R 2136 0 R 2141 0 R 2146 0 R 2156 0 R 2164 0 R 2167 0 R 2169 0 R 2173 0 R 2188 0 R 2197 0 R 2202 0 R 2206 0 R 2209 0 R 2211 0 R 2213 0 R 2215 0 R 2217 0 R 2222 0 R 2224 0 R 2234 0 R 2244 0 R 2251 0 R 2263 0 R 2268 0 R 2272 0 R 2285 0 R 2292 0 R 2298 0 R 2300 0 R 2310 0 R 2317 0 R 2328 0 R 2332 0 R 2343 0 R 2349 0 R 2359 0 R 2368 0 R 2376 0 R 2382 0 R 2387 0 R 2391 0 R 2395 0 R 2397 0 R 2403 0 R 2407 0 R 2411 0 R 2417 0 R 2424 0 R 2429 0 R 2433 0 R
  2442 0 R 2447 0 R 2452 0 R 2465 0 R 2472 0 R 2475 0 R 2481 0 R 2487 0 R 2491 0 R 2495 0 R 2503 0 R 2509 0 R 2511 0 R 2517 0 R 2522 0 R 2525 0 R 2535 0 R 2541 0 R 2550 0 R 2554 0 R 2563 0 R 2568 0 R 2571 0 R 2581 0 R 2585 0 R 2590 0 R 2592 0 R 2601 0 R 2605 0 R 2610 0 R 2612 0 R 2614 0 R 2624 0 R 2630 0 R 2637 0 R 2639 0 R 2645 0 R 2648 0 R 2651 0 R 2654 0 R 2661 0 R 2665 0 R 2670 0 R 2675 0 R 2677 0 R 2679 0 R 2683 0 R 2687 0 R 2696 0 R 2698 0 R 2701 0 R 2704 0 R 2708 0 R 2711 0 R 2713 0 R 2725 0 R 2731 0 R 2736 0 R 2742 0 R 2747 0 R 2752 0 R 2754 0 R 2761 0 R 2776 0 R 2790 0 R 2794 0 R 2809 0 R 2815 0 R 2818 0 R 2822 0 R 2824 0 R 2831 0 R 2851 0 R 2853 0 R 2860 0 R 2870 0 R 2874 0 R 2885 0 R 2896 0 R 2903 0 R 2908 0 R 2913 0 R 2917 0 R 2919 0 R 2924 0 R 2927 0 R 2933 0 R 2940 0 R 2950 0 R 2952 0 R 2958 0 R 2963 0 R 2973 0 R 2981 0 R 2987 0 R 2995 0 R 3000 0 R 3005 0 R 3012 0 R 3015 0 R 3018 0 R 3024 0 R 3031 0 R 3033 0 R 3035 0 R 3041 0 R 3043 0 R 3051 0 R 3057 0 R 3064 0 R 3070 0
  R 3078 0 R 3086 0 R 3096 0 R 3100 0 R 3110 0 R 3124 0 R 3126 0 R 3128 0 R 3132 0 R 3147 0 R 3153 0 R 3157 0 R 3160 0 R 3165 0 R 3167 0 R 3171 0 R 3173 0 R 3177 0 R 3181 0 R 3184 0 R 3193 0 R 3195 0 R 3199 0 R 3201 0 R 3204 0 R 3211 0 R 3217 0 R 3221 0 R 3224 0 R 3226 0 R 3229 0 R 3232 0 R 3236 0 R 3244 0 R 3253 0 R 3257 0 R 3262 0 R 3269 0 R 3271 0 R 3280 0 R 3285 0 R 3289 0 R 3295 0 R 3300 0 R 3304 0 R 3309 0 R 3313 0 R 3324 0 R 3334 0 R 3354 0 R 3357 0 R 3362 0 R 3365 0 R 3368 0 R 3373 0 R 3376 0 R 3381 0 R 3383 0 R 3385 0 R 3387 0 R 3389 0 R 3391 0 R 3393 0 R 3402 0 R 3406 0 R 3413 0 R 3416 0 R 3418 0 R 3425 0 R 3432 0 R 3437 0 R 3440 0 R 3442 0 R 3444 0 R 3446 0 R 3449 0 R 3456 0 R 3463 0 R 3472 0 R 3477 0 R 3480 0 R 3483 0 R 3487 0 R 3491 0 R 3495 0 R 3511 0 R 3515 0 R 3539 0 R 3543 0 R 3548 0 R 3556 0 R 3566 0 R 3575 0 R 3577 0 R 3580 0 R 3583 0 R 3599 0 R 3605 0 R 3612 0 R]
 >>
 endobj
 4 0 obj
@@ -180,22 +180,22 @@ endobj
 << /Type /Font
 /BaseFont /AAAAAA+NotoSerif-Bold
 /Subtype /TrueType
-/FontDescriptor 4233 0 R
+/FontDescriptor 4236 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4235 0 R
-/ToUnicode 4234 0 R
+/Widths 4238 0 R
+/ToUnicode 4237 0 R
 >>
 endobj
 11 0 obj
 << /Type /Font
 /BaseFont /AAAAAB+NotoSerif
 /Subtype /TrueType
-/FontDescriptor 4237 0 R
+/FontDescriptor 4240 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4239 0 R
-/ToUnicode 4238 0 R
+/Widths 4242 0 R
+/ToUnicode 4241 0 R
 >>
 endobj
 12 0 obj
@@ -17779,7 +17779,7 @@ endobj
 /F1.1 34 0 R
 >>
 >>
-/Annots [3611 0 R 3612 0 R 3613 0 R 3614 0 R 3615 0 R 3616 0 R 3617 0 R 3618 0 R 3619 0 R 3620 0 R 3621 0 R 3622 0 R 3623 0 R 3624 0 R 3625 0 R 3626 0 R 3627 0 R 3628 0 R 3629 0 R 3630 0 R 3631 0 R 3632 0 R 3633 0 R 3634 0 R 3635 0 R 3636 0 R 3637 0 R 3638 0 R 3639 0 R 3640 0 R 3641 0 R 3642 0 R 3643 0 R 3644 0 R 3645 0 R 3646 0 R 3647 0 R 3648 0 R 3649 0 R 3650 0 R 3651 0 R 3652 0 R 3653 0 R 3654 0 R 3655 0 R 3656 0 R 3657 0 R 3658 0 R 3659 0 R 3660 0 R 3661 0 R 3662 0 R 3663 0 R 3664 0 R 3665 0 R 3666 0 R 3667 0 R 3668 0 R 3669 0 R 3670 0 R 3671 0 R 3672 0 R 3673 0 R 3674 0 R 3675 0 R 3676 0 R 3677 0 R 3678 0 R 3679 0 R 3680 0 R 3681 0 R 3682 0 R 3683 0 R 3684 0 R 3685 0 R 3686 0 R 3687 0 R 3688 0 R 3689 0 R 3690 0 R 3691 0 R 3692 0 R 3693 0 R 3694 0 R]
+/Annots [3614 0 R 3615 0 R 3616 0 R 3617 0 R 3618 0 R 3619 0 R 3620 0 R 3621 0 R 3622 0 R 3623 0 R 3624 0 R 3625 0 R 3626 0 R 3627 0 R 3628 0 R 3629 0 R 3630 0 R 3631 0 R 3632 0 R 3633 0 R 3634 0 R 3635 0 R 3636 0 R 3637 0 R 3638 0 R 3639 0 R 3640 0 R 3641 0 R 3642 0 R 3643 0 R 3644 0 R 3645 0 R 3646 0 R 3647 0 R 3648 0 R 3649 0 R 3650 0 R 3651 0 R 3652 0 R 3653 0 R 3654 0 R 3655 0 R 3656 0 R 3657 0 R 3658 0 R 3659 0 R 3660 0 R 3661 0 R 3662 0 R 3663 0 R 3664 0 R 3665 0 R 3666 0 R 3667 0 R 3668 0 R 3669 0 R 3670 0 R 3671 0 R 3672 0 R 3673 0 R 3674 0 R 3675 0 R 3676 0 R 3677 0 R 3678 0 R 3679 0 R 3680 0 R 3681 0 R 3682 0 R 3683 0 R 3684 0 R 3685 0 R 3686 0 R 3687 0 R 3688 0 R 3689 0 R 3690 0 R 3691 0 R 3692 0 R 3693 0 R 3694 0 R 3695 0 R 3696 0 R 3697 0 R]
 >>
 endobj
 14 0 obj
@@ -31298,7 +31298,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20323335> Tj
+<2e20323336> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -31782,7 +31782,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20323430> Tj
+<2e20323431> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -32230,7 +32230,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20323432> Tj
+<2e20323433> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -32710,7 +32710,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20323539> Tj
+<2e20323630> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -33158,7 +33158,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20323837> Tj
+<2e20323838> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -33650,7 +33650,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20323839> Tj
+<2e20323930> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -33946,7 +33946,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20323930> Tj
+<2e20323931> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -34266,7 +34266,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333033> Tj
+<2e20333034> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -34714,7 +34714,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333036> Tj
+<2e20333037> Tj
 ET
 
 Q
@@ -34731,7 +34731,7 @@ endobj
 /F1.1 34 0 R
 >>
 >>
-/Annots [3695 0 R 3696 0 R 3697 0 R 3698 0 R 3699 0 R 3700 0 R 3701 0 R 3702 0 R 3703 0 R 3704 0 R 3705 0 R 3706 0 R 3707 0 R 3708 0 R 3709 0 R 3710 0 R 3711 0 R 3712 0 R 3713 0 R 3714 0 R 3715 0 R 3716 0 R 3717 0 R 3718 0 R 3719 0 R 3720 0 R 3721 0 R 3722 0 R 3723 0 R 3724 0 R 3725 0 R 3726 0 R 3727 0 R 3728 0 R 3729 0 R 3730 0 R 3731 0 R 3732 0 R 3733 0 R 3734 0 R 3735 0 R 3736 0 R 3737 0 R 3738 0 R 3739 0 R 3740 0 R 3741 0 R 3742 0 R 3743 0 R 3744 0 R 3745 0 R 3746 0 R 3747 0 R 3748 0 R 3749 0 R 3750 0 R 3751 0 R 3752 0 R 3753 0 R 3754 0 R 3755 0 R 3756 0 R 3757 0 R 3758 0 R 3759 0 R 3760 0 R 3761 0 R 3762 0 R 3763 0 R 3764 0 R 3765 0 R 3766 0 R 3767 0 R 3768 0 R 3769 0 R 3770 0 R 3771 0 R 3772 0 R 3773 0 R 3774 0 R 3775 0 R 3776 0 R 3777 0 R 3778 0 R 3779 0 R 3780 0 R 3781 0 R 3782 0 R]
+/Annots [3698 0 R 3699 0 R 3700 0 R 3701 0 R 3702 0 R 3703 0 R 3704 0 R 3705 0 R 3706 0 R 3707 0 R 3708 0 R 3709 0 R 3710 0 R 3711 0 R 3712 0 R 3713 0 R 3714 0 R 3715 0 R 3716 0 R 3717 0 R 3718 0 R 3719 0 R 3720 0 R 3721 0 R 3722 0 R 3723 0 R 3724 0 R 3725 0 R 3726 0 R 3727 0 R 3728 0 R 3729 0 R 3730 0 R 3731 0 R 3732 0 R 3733 0 R 3734 0 R 3735 0 R 3736 0 R 3737 0 R 3738 0 R 3739 0 R 3740 0 R 3741 0 R 3742 0 R 3743 0 R 3744 0 R 3745 0 R 3746 0 R 3747 0 R 3748 0 R 3749 0 R 3750 0 R 3751 0 R 3752 0 R 3753 0 R 3754 0 R 3755 0 R 3756 0 R 3757 0 R 3758 0 R 3759 0 R 3760 0 R 3761 0 R 3762 0 R 3763 0 R 3764 0 R 3765 0 R 3766 0 R 3767 0 R 3768 0 R 3769 0 R 3770 0 R 3771 0 R 3772 0 R 3773 0 R 3774 0 R 3775 0 R 3776 0 R 3777 0 R 3778 0 R 3779 0 R 3780 0 R 3781 0 R 3782 0 R 3783 0 R 3784 0 R 3785 0 R]
 >>
 endobj
 16 0 obj
@@ -35210,7 +35210,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333037> Tj
+<2e20333038> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -35610,7 +35610,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333131> Tj
+<2e20333132> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -36102,7 +36102,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333132> Tj
+<2e20333133> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -36590,7 +36590,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333235> Tj
+<2e20333236> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -36966,7 +36966,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333236> Tj
+<2e20333237> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -37262,7 +37262,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333237> Tj
+<2e20333238> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -37754,7 +37754,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333332> Tj
+<2e20333333> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -38238,7 +38238,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333334> Tj
+<2e20333335> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -38626,7 +38626,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333337> Tj
+<2e20333338> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -39062,7 +39062,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333338> Tj
+<2e20333339> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -39522,7 +39522,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333433> Tj
+<2e20333434> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -39982,7 +39982,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333435> Tj
+<2e20333436> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -40414,7 +40414,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333439> Tj
+<2e20333530> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -40882,7 +40882,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333531> Tj
+<2e20333532> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -41282,7 +41282,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333536> Tj
+<2e20333537> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -41682,7 +41682,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333633> Tj
+<2e20333634> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -42082,7 +42082,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333634> Tj
+<2e20333635> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -42482,7 +42482,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333636> Tj
+<2e20333637> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -42886,7 +42886,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333638> Tj
+<2e20333639> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -43354,7 +43354,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333734> Tj
+<2e20333735> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -43658,7 +43658,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333831> Tj
+<2e20333832> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -44018,7 +44018,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333833> Tj
+<2e20333834> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -44378,7 +44378,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333834> Tj
+<2e20333835> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -44802,7 +44802,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333835> Tj
+<2e20333836> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -45274,7 +45274,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333836> Tj
+<2e20333837> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -45770,7 +45770,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333838> Tj
+<2e20333839> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -46174,7 +46174,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333839> Tj
+<2e20333930> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -46638,7 +46638,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333933> Tj
+<2e20333934> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -47078,7 +47078,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333934> Tj
+<2e20333935> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -47470,7 +47470,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333938> Tj
+<2e20333939> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -47894,7 +47894,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20333939> Tj
+<2e20343030> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -48298,7 +48298,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343032> Tj
+<2e20343033> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -48702,7 +48702,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343037> Tj
+<2e20343038> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -49186,7 +49186,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343038> Tj
+<2e20343039> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -49634,7 +49634,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343130> Tj
+<2e20343131> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -49962,7 +49962,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343131> Tj
+<2e20343132> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -50410,7 +50410,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343132> Tj
+<2e20343133> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -50706,7 +50706,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343132> Tj
+<2e20343133> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -51118,7 +51118,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343133> Tj
+<2e20343134> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -51606,7 +51606,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343134> Tj
+<2e20343135> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -52066,7 +52066,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343138> Tj
+<2e20343139> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -52554,7 +52554,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343139> Tj
+<2e20343230> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -53038,7 +53038,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343239> Tj
+<2e20343330> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -53490,7 +53490,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343334> Tj
+<2e20343335> Tj
 ET
 
 Q
@@ -53507,7 +53507,7 @@ endobj
 /F1.1 34 0 R
 >>
 >>
-/Annots [3783 0 R 3784 0 R 3785 0 R 3786 0 R 3787 0 R 3788 0 R 3789 0 R 3790 0 R 3791 0 R 3792 0 R 3793 0 R 3794 0 R 3795 0 R 3796 0 R 3797 0 R 3798 0 R 3799 0 R 3800 0 R 3801 0 R 3802 0 R 3803 0 R 3804 0 R 3805 0 R 3806 0 R 3807 0 R 3808 0 R 3809 0 R 3810 0 R 3811 0 R 3812 0 R 3813 0 R 3814 0 R 3815 0 R 3816 0 R 3817 0 R 3818 0 R 3819 0 R 3820 0 R 3821 0 R 3822 0 R 3823 0 R 3824 0 R 3825 0 R 3826 0 R 3827 0 R 3828 0 R 3829 0 R 3830 0 R 3831 0 R 3832 0 R 3833 0 R 3834 0 R 3835 0 R 3836 0 R 3837 0 R 3838 0 R 3839 0 R 3840 0 R 3841 0 R 3842 0 R 3843 0 R 3844 0 R 3845 0 R 3846 0 R 3847 0 R 3848 0 R 3849 0 R 3850 0 R 3851 0 R 3852 0 R 3853 0 R 3854 0 R 3855 0 R 3856 0 R 3857 0 R 3858 0 R 3859 0 R 3860 0 R 3861 0 R 3862 0 R 3863 0 R 3864 0 R 3865 0 R 3866 0 R 3867 0 R 3868 0 R 3869 0 R 3870 0 R]
+/Annots [3786 0 R 3787 0 R 3788 0 R 3789 0 R 3790 0 R 3791 0 R 3792 0 R 3793 0 R 3794 0 R 3795 0 R 3796 0 R 3797 0 R 3798 0 R 3799 0 R 3800 0 R 3801 0 R 3802 0 R 3803 0 R 3804 0 R 3805 0 R 3806 0 R 3807 0 R 3808 0 R 3809 0 R 3810 0 R 3811 0 R 3812 0 R 3813 0 R 3814 0 R 3815 0 R 3816 0 R 3817 0 R 3818 0 R 3819 0 R 3820 0 R 3821 0 R 3822 0 R 3823 0 R 3824 0 R 3825 0 R 3826 0 R 3827 0 R 3828 0 R 3829 0 R 3830 0 R 3831 0 R 3832 0 R 3833 0 R 3834 0 R 3835 0 R 3836 0 R 3837 0 R 3838 0 R 3839 0 R 3840 0 R 3841 0 R 3842 0 R 3843 0 R 3844 0 R 3845 0 R 3846 0 R 3847 0 R 3848 0 R 3849 0 R 3850 0 R 3851 0 R 3852 0 R 3853 0 R 3854 0 R 3855 0 R 3856 0 R 3857 0 R 3858 0 R 3859 0 R 3860 0 R 3861 0 R 3862 0 R 3863 0 R 3864 0 R 3865 0 R 3866 0 R 3867 0 R 3868 0 R 3869 0 R 3870 0 R 3871 0 R 3872 0 R 3873 0 R]
 >>
 endobj
 18 0 obj
@@ -53974,7 +53974,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343336> Tj
+<2e20343337> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -54442,7 +54442,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343339> Tj
+<2e20343430> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -54882,7 +54882,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343430> Tj
+<2e20343431> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -55358,7 +55358,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343435> Tj
+<2e20343436> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -55814,7 +55814,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343436> Tj
+<2e20343437> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -56262,7 +56262,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343437> Tj
+<2e20343438> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -56594,7 +56594,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343438> Tj
+<2e20343439> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -56890,7 +56890,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343439> Tj
+<2e20343530> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -57314,7 +57314,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343530> Tj
+<2e20343531> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -57650,7 +57650,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343533> Tj
+<2e20343534> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -58098,7 +58098,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343534> Tj
+<2e20343535> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -58486,7 +58486,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343535> Tj
+<2e20343536> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -58822,7 +58822,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343536> Tj
+<2e20343537> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -59282,7 +59282,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343537> Tj
+<2e20343538> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -59686,7 +59686,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343537> Tj
+<2e20343538> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -60150,7 +60150,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343538> Tj
+<2e20343539> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -60582,7 +60582,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343539> Tj
+<2e20343630> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -60934,7 +60934,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343630> Tj
+<2e20343631> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -61266,7 +61266,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343633> Tj
+<2e20343634> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -61646,7 +61646,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343634> Tj
+<2e20343635> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -62050,7 +62050,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343830> Tj
+<2e20343831> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -62462,7 +62462,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343831> Tj
+<2e20343832> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -62898,7 +62898,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343837> Tj
+<2e20343838> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -63314,7 +63314,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343932> Tj
+<2e20343933> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -63726,7 +63726,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20343936> Tj
+<2e20343937> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -63978,7 +63978,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353038> Tj
+<2e20353039> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -64414,7 +64414,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353135> Tj
+<2e20353136> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -64838,7 +64838,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353137> Tj
+<2e20353138> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -65078,7 +65078,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353232> Tj
+<2e20353233> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -65394,7 +65394,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353233> Tj
+<2e20353234> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -65830,7 +65830,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353238> Tj
+<2e20353239> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -66218,7 +66218,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353239> Tj
+<2e20353330> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -66558,7 +66558,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353331> Tj
+<2e20353332> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -66982,7 +66982,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353332> Tj
+<2e20353333> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -67350,7 +67350,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353334> Tj
+<2e20353335> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -67842,7 +67842,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353335> Tj
+<2e20353336> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -68230,7 +68230,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353338> Tj
+<2e20353339> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -68614,7 +68614,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353432> Tj
+<2e20353433> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -68970,7 +68970,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353530> Tj
+<2e20353531> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -69274,7 +69274,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353531> Tj
+<2e20353532> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -69653,7 +69653,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353532> Tj
+<2e20353533> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -70141,7 +70141,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353533> Tj
+<2e20353534> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -70541,7 +70541,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353637> Tj
+<2e20353638> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -70921,7 +70921,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353831> Tj
+<2e20353832> Tj
 ET
 
 Q
@@ -70938,7 +70938,7 @@ endobj
 /F1.1 34 0 R
 >>
 >>
-/Annots [3871 0 R 3872 0 R 3873 0 R 3874 0 R 3875 0 R 3876 0 R 3877 0 R 3878 0 R 3879 0 R 3880 0 R 3881 0 R 3882 0 R 3883 0 R 3884 0 R 3885 0 R 3886 0 R 3887 0 R 3888 0 R 3889 0 R 3890 0 R 3891 0 R 3892 0 R 3893 0 R 3894 0 R 3895 0 R 3896 0 R 3897 0 R 3898 0 R 3899 0 R 3900 0 R 3901 0 R 3902 0 R 3903 0 R 3904 0 R 3905 0 R 3906 0 R 3907 0 R 3908 0 R 3909 0 R 3910 0 R 3911 0 R 3912 0 R 3913 0 R 3914 0 R 3915 0 R 3916 0 R 3917 0 R 3918 0 R 3919 0 R 3920 0 R 3921 0 R 3922 0 R 3923 0 R 3924 0 R 3925 0 R 3926 0 R 3927 0 R 3928 0 R 3929 0 R 3930 0 R 3931 0 R 3932 0 R 3933 0 R 3934 0 R 3935 0 R 3936 0 R 3937 0 R 3938 0 R 3939 0 R 3940 0 R 3941 0 R 3942 0 R 3943 0 R 3944 0 R 3945 0 R 3946 0 R 3947 0 R 3948 0 R 3949 0 R 3950 0 R 3951 0 R 3952 0 R 3953 0 R 3954 0 R 3955 0 R 3956 0 R 3957 0 R 3958 0 R 3959 0 R 3960 0 R]
+/Annots [3874 0 R 3875 0 R 3876 0 R 3877 0 R 3878 0 R 3879 0 R 3880 0 R 3881 0 R 3882 0 R 3883 0 R 3884 0 R 3885 0 R 3886 0 R 3887 0 R 3888 0 R 3889 0 R 3890 0 R 3891 0 R 3892 0 R 3893 0 R 3894 0 R 3895 0 R 3896 0 R 3897 0 R 3898 0 R 3899 0 R 3900 0 R 3901 0 R 3902 0 R 3903 0 R 3904 0 R 3905 0 R 3906 0 R 3907 0 R 3908 0 R 3909 0 R 3910 0 R 3911 0 R 3912 0 R 3913 0 R 3914 0 R 3915 0 R 3916 0 R 3917 0 R 3918 0 R 3919 0 R 3920 0 R 3921 0 R 3922 0 R 3923 0 R 3924 0 R 3925 0 R 3926 0 R 3927 0 R 3928 0 R 3929 0 R 3930 0 R 3931 0 R 3932 0 R 3933 0 R 3934 0 R 3935 0 R 3936 0 R 3937 0 R 3938 0 R 3939 0 R 3940 0 R 3941 0 R 3942 0 R 3943 0 R 3944 0 R 3945 0 R 3946 0 R 3947 0 R 3948 0 R 3949 0 R 3950 0 R 3951 0 R 3952 0 R 3953 0 R 3954 0 R 3955 0 R 3956 0 R 3957 0 R 3958 0 R 3959 0 R 3960 0 R 3961 0 R 3962 0 R 3963 0 R]
 >>
 endobj
 20 0 obj
@@ -71437,7 +71437,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353832> Tj
+<2e20353833> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -71909,7 +71909,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353834> Tj
+<2e20353835> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -72381,7 +72381,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353836> Tj
+<2e20353837> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -72641,7 +72641,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353838> Tj
+<2e20353839> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -73093,7 +73093,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353930> Tj
+<2e20353931> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -73561,7 +73561,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353931> Tj
+<2e20353932> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -74057,7 +74057,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353933> Tj
+<2e20353934> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -74377,7 +74377,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353936> Tj
+<2e20353937> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -74689,7 +74689,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20353937> Tj
+<2e20353938> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -75177,7 +75177,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363034> Tj
+<2e20363035> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -75641,7 +75641,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363035> Tj
+<2e20363036> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -76061,7 +76061,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363036> Tj
+<2e20363037> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -76445,7 +76445,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363037> Tj
+<2e20363038> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -76945,7 +76945,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363037> Tj
+<2e20363038> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -77245,7 +77245,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363038> Tj
+<2e20363039> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -77693,7 +77693,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363138> Tj
+<2e20363139> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -78089,7 +78089,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363232> Tj
+<2e20363233> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -78441,7 +78441,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363237> Tj
+<2e20363238> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -78649,7 +78649,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363334> Tj
+<2e20363335> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -79013,7 +79013,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363436> Tj
+<2e20363437> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -79397,7 +79397,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363437> Tj
+<2e20363438> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -79837,7 +79837,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363438> Tj
+<2e20363439> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -80237,7 +80237,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363439> Tj
+<2e20363530> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -80537,7 +80537,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363538> Tj
+<2e20363539> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -80933,7 +80933,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363630> Tj
+<2e20363631> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -81165,7 +81165,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363631> Tj
+<2e20363632> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -81529,7 +81529,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363632> Tj
+<2e20363633> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -81785,7 +81785,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363633> Tj
+<2e20363634> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -82189,7 +82189,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363635> Tj
+<2e20363636> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -82565,7 +82565,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363636> Tj
+<2e20363637> Tj
 ET
 
 0.259 0.545 0.792 scn
@@ -82913,7 +82913,7 @@ BT
 /F1.1 10.5 Tf
 <28> Tj
 /F1.0 10.5 Tf
-<2e20363637> Tj
+<2e20363638> Tj
 ET
 
 Q
@@ -82930,7 +82930,7 @@ endobj
 /F1.1 34 0 R
 >>
 >>
-/Annots [3961 0 R 3962 0 R 3963 0 R 3964 0 R 3965 0 R 3966 0 R 3967 0 R 3968 0 R 3969 0 R 3970 0 R 3971 0 R 3972 0 R 3973 0 R 3974 0 R 3975 0 R 3976 0 R 3977 0 R 3978 0 R 3979 0 R 3980 0 R 3981 0 R 3982 0 R 3983 0 R 3984 0 R 3985 0 R 3986 0 R 3987 0 R 3988 0 R 3989 0 R 3990 0 R 3991 0 R 3992 0 R 3993 0 R 3994 0 R 3995 0 R 3996 0 R 3997 0 R 3998 0 R 3999 0 R 4000 0 R 4001 0 R 4002 0 R 4003 0 R 4004 0 R 4005 0 R 4006 0 R 4007 0 R 4008 0 R 4009 0 R 4010 0 R 4011 0 R 4012 0 R 4013 0 R 4014 0 R 4015 0 R 4016 0 R 4017 0 R 4018 0 R 4019 0 R 4020 0 R 4021 0 R 4022 0 R]
+/Annots [3964 0 R 3965 0 R 3966 0 R 3967 0 R 3968 0 R 3969 0 R 3970 0 R 3971 0 R 3972 0 R 3973 0 R 3974 0 R 3975 0 R 3976 0 R 3977 0 R 3978 0 R 3979 0 R 3980 0 R 3981 0 R 3982 0 R 3983 0 R 3984 0 R 3985 0 R 3986 0 R 3987 0 R 3988 0 R 3989 0 R 3990 0 R 3991 0 R 3992 0 R 3993 0 R 3994 0 R 3995 0 R 3996 0 R 3997 0 R 3998 0 R 3999 0 R 4000 0 R 4001 0 R 4002 0 R 4003 0 R 4004 0 R 4005 0 R 4006 0 R 4007 0 R 4008 0 R 4009 0 R 4010 0 R 4011 0 R 4012 0 R 4013 0 R 4014 0 R 4015 0 R 4016 0 R 4017 0 R 4018 0 R 4019 0 R 4020 0 R 4021 0 R 4022 0 R 4023 0 R 4024 0 R 4025 0 R]
 >>
 endobj
 22 0 obj
@@ -83712,7 +83712,7 @@ endobj
 >>
 endobj
 26 0 obj
-<< /Kids [1143 0 R 2337 0 R 1144 0 R 2018 0 R]
+<< /Kids [1143 0 R 2340 0 R 1144 0 R 2021 0 R]
 >>
 endobj
 27 0 obj
@@ -83763,11 +83763,11 @@ endobj
 << /Type /Font
 /BaseFont /AAAAAC+mplus1mn-regular
 /Subtype /TrueType
-/FontDescriptor 4241 0 R
+/FontDescriptor 4244 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4243 0 R
-/ToUnicode 4242 0 R
+/Widths 4246 0 R
+/ToUnicode 4245 0 R
 >>
 endobj
 32 0 obj
@@ -83793,11 +83793,11 @@ endobj
 << /Type /Font
 /BaseFont /AAAAAD+NotoSerif
 /Subtype /TrueType
-/FontDescriptor 4245 0 R
+/FontDescriptor 4248 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4247 0 R
-/ToUnicode 4246 0 R
+/Widths 4250 0 R
+/ToUnicode 4249 0 R
 >>
 endobj
 35 0 obj
@@ -84214,11 +84214,11 @@ endobj
 << /Type /Font
 /BaseFont /AAAAAE+NotoSerif-Italic
 /Subtype /TrueType
-/FontDescriptor 4249 0 R
+/FontDescriptor 4252 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4251 0 R
-/ToUnicode 4250 0 R
+/Widths 4254 0 R
+/ToUnicode 4253 0 R
 >>
 endobj
 41 0 obj
@@ -107120,12 +107120,12 @@ endobj
 endobj
 161 0 obj
 << /Limits [(acid) (arch.bulk.load.arch)]
-/Names [(acid) 621 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3080 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3081 0 R (add.metrics) 3078 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3307 0 R (adding.new.node) 2585 0 R (administration) 1054 0 R (administration-2) 1077 0 R (administration-3) 1109 0 R (amazon-ec2) 3343 0 R (api-as-of-hbase-1-0-0) 1160 0 R (api-before-hbase-1-0-0) 1162 0 R (appendix) 3257 0 R (appendix_acl_matrix) 3374 0 R (appendix_contributing_to_documentation) 3260 0 R (arch.bulk.load) 1512 0 R (arch.bulk.load.adv) 1524 0 R (arch.bulk.load.also) 1520 0 R (arch.bulk.load.arch) 1515 0 R]
+/Names [(acid) 621 0 R (add-metric-name-and-function-to-hadoop-compat-interface) 3083 0 R (add-the-implementation-to-both-hadoop-1-and-hadoop-2-compat-modules) 3084 0 R (add.metrics) 3081 0 R (adding-a-new-chapter-to-the-hbase-reference-guide) 3310 0 R (adding.new.node) 2588 0 R (administration) 1054 0 R (administration-2) 1077 0 R (administration-3) 1109 0 R (amazon-ec2) 3346 0 R (api-as-of-hbase-1-0-0) 1160 0 R (api-before-hbase-1-0-0) 1162 0 R (appendix) 3260 0 R (appendix_acl_matrix) 3377 0 R (appendix_contributing_to_documentation) 3263 0 R (arch.bulk.load) 1515 0 R (arch.bulk.load.adv) 1527 0 R (arch.bulk.load.also) 1523 0 R (arch.bulk.load.arch) 1518 0 R]
 >>
 endobj
 162 0 obj
 << /Limits [(ipc-configuration-conflicts-with-hadoop) (jmx_config)]
-/Names [(ipc-configuration-conflicts-with-hadoop) 2380 0 R (irc) 2840 0 R (isolate-system-tables) 2823 0 R (java-2) 1575 0 R (java-3) 1580 0 R (java.client.config) 259 0 R (jdk-issues) 2415 0 R (jdk-version-requirements) 50 0 R (jdo) 1672 0 R (jira) 2843 0 R (jmx_config) 327 0 R]
+/Names [(ipc-configuration-conflicts-with-hadoop) 2383 0 R (irc) 2843 0 R (isolate-system-tables) 2826 0 R (java-2) 1578 0 R (java-3) 1583 0 R (java.client.config) 259 0 R (jdk-issues) 2418 0 R (jdk-version-requirements) 50 0 R (jdo) 1675 0 R (jira) 2846 0 R (jmx_config) 327 0 R]
 >>
 endobj
 163 0 obj
@@ -122674,11 +122674,11 @@ endobj
 << /Type /Font
 /BaseFont /AAAAAF+mplus1mn-bold
 /Subtype /TrueType
-/FontDescriptor 4253 0 R
+/FontDescriptor 4256 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4255 0 R
-/ToUnicode 4254 0 R
+/Widths 4258 0 R
+/ToUnicode 4257 0 R
 >>
 endobj
 244 0 obj
@@ -130320,7 +130320,7 @@ endobj
 endobj
 276 0 obj
 << /Limits [(examplephpclientprogram) (fix-target-cached_classpath-txt)]
-/Names [(examplephpclientprogram) 1726 0 R (examples) 1612 0 R (exceptions) 3605 0 R (excessive-i-o-wait-due-to-swapping-or-an-over-worked-or-failing-hard-disk) 2440 0 R (executing.the.0.96.upgrade) 413 0 R (explicit-version-example) 591 0 R (exploringcompaction.policy) 1449 0 R (export) 2510 0 R (external-zookeeper-configuration) 3219 0 R (external_apis) 1621 0 R (faq) 3311 0 R (file-info-format-in-versions-1-and-2) 3485 0 R (fix-target-cached_classpath-txt) 3234 0 R]
+/Names [(examplephpclientprogram) 1729 0 R (examples) 1615 0 R (exceptions) 3608 0 R (excessive-i-o-wait-due-to-swapping-or-an-over-worked-or-failing-hard-disk) 2443 0 R (executing.the.0.96.upgrade) 413 0 R (explicit-version-example) 591 0 R (exploringcompaction.policy) 1452 0 R (export) 2513 0 R (external-zookeeper-configuration) 3222 0 R (external_apis) 1624 0 R (faq) 3314 0 R (file-info-format-in-versions-1-and-2) 3488 0 R (fix-target-cached_classpath-txt) 3237 0 R]
 >>
 endobj
 277 0 obj
@@ -132680,7 +132680,7 @@ endobj
 endobj
 307 0 obj
 << /Limits [(recommended_configurations) (regionserver.arch.processes.memstore)]
-/Names [(recommended_configurations) 284 0 R (recommended_configurations.zk) 285 0 R (region-overlap-repairs) 3363 0 R (region-replication-for-meta-table-s-region) 1553 0 R (regions.arch) 1354 0 R (regions.arch.assignment) 1365 0 R (regions.arch.assignment.failover) 1367 0 R (regions.arch.assignment.startup) 1366 0 R (regions.arch.balancer) 1370 0 R (regions.arch.locality) 1380 0 R (regions.arch.states) 1372 0 R (regionserver.arch) 1246 0 R (regionserver.arch.api) 1248 0 R (regionserver.arch.processes) 1249 0 R (regionserver.arch.processes.compactsplit) 1250 0 R (regionserver.arch.processes.log) 1253 0 R (regionserver.arch.processes.majorcompact) 1251 0 R (regionserver.arch.processes.memstore) 1252 0 R]
+/Names [(recommended_configurations) 284 0 R (recommended_configurations.zk) 285 0 R (region-overlap-repairs) 3366 0 R (region-replication-for-meta-table-s-region) 1556 0 R (regions.arch) 1357 0 R (regions.arch.assignment) 1369 0 R (regions.arch.assignment.failover) 1371 0 R (regions.arch.assignment.startup) 1370 0 R (regions.arch.balancer) 1374 0 R (regions.arch.locality) 1384 0 R (regions.arch.states) 1376 0 R (regionserver.arch) 1249 0 R (regionserver.arch.api) 1251 0 R (regionserver.arch.processes) 1252 0 R (regionserver.arch.processes.compactsplit) 1253 0 R (regionserver.arch.processes.log) 1256 0 R (regionserver.arch.processes.majorcompact) 1254 0 R (regionserver.arch.processes.memstore) 1255 0 R]
 >>
 endobj
 308 0 obj
@@ -146536,11 +146536,11 @@ endobj
 << /Type /Font
 /BaseFont /AAAAAG+mplus1mn-regular
 /Subtype /TrueType
-/FontDescriptor 4257 0 R
+/FontDescriptor 4260 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4259 0 R
-/ToUnicode 4258 0 R
+/Widths 4262 0 R
+/ToUnicode 4261 0 R
 >>
 endobj
 422 0 obj
@@ -151251,7 +151251,7 @@ endobj
 endobj
 474 0 obj
 << /Limits [(config.wals) (coprocessors)]
-/Names [(config.wals) 300 0 R (configuration) 95 0 R (configuration-2) 2619 0 R (configuration-3) 3324 0 R (configuration-files) 102 0 R (configuration-from-scratch) 3230 0 R (configuration-properties) 1559 0 R (configuring-columns-for-mob) 1594 0 R (configuring-server-wide-behavior-of-bloom-filters) 1996 0 R (configuring-the-rest-server-and-client) 1632 0 R (confirm) 173 0 R (connection-setup) 3594 0 R (constraints) 752 0 R (contributing-to-documentation-or-other-strings) 3264 0 R (coprocessor-implementation-overview) 1803 0 R (coprocessor-overview) 1799 0 R (coprocessors) 1254 0 R]
+/Names [(config.wals) 300 0 R (configuration) 95 0 R (configuration-2) 2622 0 R (configuration-3) 3327 0 R (configuration-files) 102 0 R (configuration-from-scratch) 3233 0 R (configuration-properties) 1562 0 R (configuring-columns-for-mob) 1597 0 R (configuring-server-wide-behavior-of-bloom-filters) 1999 0 R (configuring-the-rest-server-and-client) 1635 0 R (confirm) 173 0 R (connection-setup) 3597 0 R (constraints) 752 0 R (contributing-to-documentation-or-other-strings) 3267 0 R (coprocessor-implementation-overview) 1806 0 R (coprocessor-overview) 1802 0 R (coprocessors) 1257 0 R]
 >>
 endobj
 475 0 obj
@@ -169475,7 +169475,7 @@ endobj
 endobj
 529 0 obj
 << /Limits [(namespace_special) (online-region-merges)]
-/Names [(namespace_special) 530 0 R (network-saturation-the-winner) 2442 0 R (new-committers) 3109 0 R (node.management) 2561 0 R (non-root-block-index-format-in-version-2) 3481 0 R (nosuchmethoderror-java-util-concurrent-concurrenthashmap-keyset) 2416 0 R (notes) 3607 0 R (number.of.cfs) 646 0 R (number.of.cfs.card) 648 0 R (observer-coprocessors) 1814 0 R (observer-example) 1865 0 R (offheap.blockcache) 1282 0 R (online-region-merges) 1404 0 R]
+/Names [(namespace_special) 530 0 R (network-saturation-the-winner) 2445 0 R (new-committers) 3112 0 R (node.management) 2564 0 R (non-root-block-index-format-in-version-2) 3484 0 R (nosuchmethoderror-java-util-concurrent-concurrenthashmap-keyset) 2419 0 R (notes) 3610 0 R (number.of.cfs) 646 0 R (number.of.cfs.card) 648 0 R (observer-coprocessors) 1817 0 R (observer-example) 1868 0 R (offheap.blockcache) 1285 0 R (online-region-merges) 1407 0 R]
 >>
 endobj
 530 0 obj
@@ -169756,7 +169756,7 @@ endobj
 endobj
 536 0 obj
 << /Limits [(shell-tricks) (splitter.custom)]
-/Names [(shell-tricks) 485 0 R (simple-versus-secure-access) 993 0 R (slack) 2837 0 R (slowness-due-to-high-processor-usage) 2441 0 R (snapshot-errors-due-to-reverse-dns) 2343 0 R (snapshots_azure) 2752 0 R (snapshots_s3) 2745 0 R (space-quotas) 2702 0 R (spark) 1735 0 R (spark-streaming) 1750 0 R (sparksql-dataframes) 1767 0 R (spec.ex) 311 0 R (special-case-root-and-meta-are-corrupt) 3368 0 R (special-cases) 826 0 R (special-cases-hbase-version-file-is-missing) 3367 0 R (special-cases-meta-is-not-properly-assigned) 3366 0 R (special-cases-offline-split-parent) 3371 0 R (specify.number.of.versions) 572 0 R (splitter) 885 0 R (splitter.custom) 889 0 R]
+/Names [(shell-tricks) 485 0 R (simple-versus-secure-access) 993 0 R (slack) 2840 0 R (slowness-due-to-high-processor-usage) 2444 0 R (snapshot-errors-due-to-reverse-dns) 2346 0 R (snapshots_azure) 2755 0 R (snapshots_s3) 2748 0 R (space-quotas) 2705 0 R (spark) 1738 0 R (spark-streaming) 1753 0 R (sparksql-dataframes) 1770 0 R (spec.ex) 311 0 R (special-case-root-and-meta-are-corrupt) 3371 0 R (special-cases) 826 0 R (special-cases-hbase-version-file-is-missing) 3370 0 R (special-cases-meta-is-not-properly-assigned) 3369 0 R (special-cases-offline-split-parent) 3374 0 R (specify.number.of.versions) 572 0 R (splitter) 885 0 R (splitter.custom) 889 0 R]
 >>
 endobj
 537 0 obj
@@ -175700,7 +175700,7 @@ endobj
 endobj
 580 0 obj
 << /Limits [(hbase.rolling.upgrade) (hbase.unittests)]
-/Names [(hbase.rolling.upgrade) 368 0 R (hbase.rpc) 3581 0 R (hbase.secure.bulkload) 1110 0 R (hbase.secure.configuration) 946 0 R (hbase.secure.simpleconfiguration) 991 0 R (hbase.secure.spnego.ui) 941 0 R (hbase.shell.noninteractive) 469 0 R (hbase.site) 178 0 R (hbase.tags) 1029 0 R (hbase.tests) 2971 0 R (hbase.tests.categories) 3005 0 R (hbase.tests.cluster) 3007 0 R (hbase.tests.example.code) 3010 0 R (hbase.tests.rules) 3004 0 R (hbase.tests.sleeps) 3006 0 R (hbase.tests.writing) 3003 0 R (hbase.unittests) 2981 0 R]
+/Names [(hbase.rolling.upgrade) 368 0 R (hbase.rpc) 3584 0 R (hbase.secure.bulkload) 1110 0 R (hbase.secure.configuration) 946 0 R (hbase.secure.simpleconfiguration) 991 0 R (hbase.secure.spnego.ui) 941 0 R (hbase.shell.noninteractive) 469 0 R (hbase.site) 178 0 R (hbase.tags) 1029 0 R (hbase.tests) 2974 0 R (hbase.tests.categories) 3008 0 R (hbase.tests.cluster) 3010 0 R (hbase.tests.example.code) 3013 0 R (hbase.tests.rules) 3007 0 R (hbase.tests.sleeps) 3009 0 R (hbase.tests.writing) 3006 0 R (hbase.unittests) 2984 0 R]
 >>
 endobj
 581 0 obj
@@ -180957,7 +180957,7 @@ endobj
 endobj
 605 0 obj
 << /Limits [(decisions) (disabling.blockcache)]
-/Names [(decisions) 3242 0 R (decommission) 2562 0 R (def.log.flush) 2031 0 R (default-get-example) 585 0 R (define-catalog) 1771 0 R (delete) 562 0 R (deletes-mask-puts) 604 0 R (design.invariants) 3072 0 R (design.invariants.zk.data) 3073 0 R (detailed-information-about-cluster-replication) 2652 0 R (determining-split-points) 1400 0 R (developer) 2826 0 R (developing) 3041 0 R (dfs.datanode.failed.volumes.tolerated) 292 0 R (dfs.datanode.max.transfer.threads) 137 0 R (dialog) 3138 0 R (disable-nagle-for-rpc) 814 0 R (disable.splitting) 302 0 R (disabling-metrics) 2595 0 R (disabling.blockcache) 315 0 R]
+/Names [(decisions) 3245 0 R (decommission) 2565 0 R (def.log.flush) 2034 0 R (default-get-example) 585 0 R (define-catalog) 1774 0 R (delete) 562 0 R (deletes-mask-puts) 604 0 R (design.invariants) 3075 0 R (design.invariants.zk.data) 3076 0 R (detailed-information-about-cluster-replication) 2655 0 R (determining-split-points) 1403 0 R (developer) 2829 0 R (developing) 3044 0 R (dfs.datanode.failed.volumes.tolerated) 292 0 R (dfs.datanode.max.transfer.threads) 137 0 R (dialog) 3141 0 R (disable-nagle-for-rpc) 814 0 R (disable.splitting) 302 0 R (disabling-metrics) 2598 0 R (disabling.blockcache) 315 0 R]
 >>
 endobj
 606 0 obj
@@ -195849,7 +195849,7 @@ endobj
 endobj
 699 0 obj
 << /Limits [(rpc) (scan)]
-/Names [(rpc) 3591 0 R (rpc.configs) 3610 0 R (rpc.logging) 2159 0 R (rs.failover.details) 2670 0 R (rs_metrics) 2604 0 R (rsgroup) 2816 0 R (run-canary-test-as-daemon-mode) 2480 0 R (run.insitu) 3077 0 R (running-canary-in-a-kerberos-enabled-cluster) 2486 0 R (running-hbck-to-identify-inconsistencies) 3356 0 R (running-multiple-workloads-on-a-single-cluster) 2685 0 R (running-the-shell-in-non-interactive-mode) 465 0 R (s096.migration.troubleshooting) 420 0 R (save-the-dataframe) 1772 0 R (scala) 1689 0 R (scala-sbt-file) 1692 0 R (scan) 557 0 R]
+/Names [(rpc) 3594 0 R (rpc.configs) 3613 0 R (rpc.logging) 2162 0 R (rs.failover.details) 2673 0 R (rs_metrics) 2607 0 R (rsgroup) 2819 0 R (run-canary-test-as-daemon-mode) 2483 0 R (run.insitu) 3080 0 R (running-canary-in-a-kerberos-enabled-cluster) 2489 0 R (running-hbck-to-identify-inconsistencies) 3359 0 R (running-multiple-workloads-on-a-single-cluster) 2688 0 R (running-the-shell-in-non-interactive-mode) 465 0 R (s096.migration.troubleshooting) 420 0 R (save-the-dataframe) 1775 0 R (scala) 1692 0 R (scala-sbt-file) 1695 0 R (scan) 557 0 R]
 >>
 endobj
 700 0 obj
@@ -211862,7 +211862,7 @@ endobj
 endobj
 757 0 obj
 << /Limits [(schema.versions.max) (securing-access-to-hdfs-and-zookeeper)]
-/Names [(schema.versions.max) 700 0 R (scopes) 3375 0 R (scripting) 462 0 R (secondary-replica-failover) 1558 0 R (secondary.indexes) 735 0 R (secondary.indexes.coproc) 748 0 R (secondary.indexes.dualwrite) 744 0 R (secondary.indexes.filter) 738 0 R (secondary.indexes.periodic) 740 0 R (secondary.indexes.summary) 746 0 R (sect.zookeeper.session.timeout) 286 0 R (securing-access-to-hdfs-and-zookeeper) 1011 0 R]
+/Names [(schema.versions.max) 700 0 R (scopes) 3378 0 R (scripting) 462 0 R (secondary-replica-failover) 1561 0 R (secondary.indexes) 735 0 R (secondary.indexes.coproc) 748 0 R (secondary.indexes.dualwrite) 744 0 R (secondary.indexes.filter) 738 0 R (secondary.indexes.periodic) 740 0 R (secondary.indexes.summary) 746 0 R (sect.zookeeper.session.timeout) 286 0 R (securing-access-to-hdfs-and-zookeeper) 1011 0 R]
 >>
 endobj
 758 0 obj
@@ -215259,7 +215259,7 @@ endobj
 endobj
 789 0 obj
 << /Limits [(schema.casestudies.log_steroids) (schema.versions)]
-/Names [(schema.casestudies.log_steroids) 773 0 R (schema.casestudies.log_timeseries) 759 0 R (schema.casestudies.log_timeseries.hostlead) 764 0 R (schema.casestudies.log_timeseries.revts) 765 0 R (schema.casestudies.log_timeseries.tslead) 760 0 R (schema.casestudies.log_timeseries.varkeys) 769 0 R (schema.cf.blocksize) 1999 0 R (schema.creation) 632 0 R (schema.joins) 715 0 R (schema.minversions) 703 0 R (schema.ops) 812 0 R (schema.regionsize) 1980 0 R (schema.smackdown) 798 0 R (schema.smackdown.rowsascols) 801 0 R (schema.smackdown.rowscols) 800 0 R (schema.smackdown.rowsversions) 799 0 R (schema.updates) 636 0 R (schema.versions) 698 0 R]
+/Names [(schema.casestudies.log_steroids) 773 0 R (schema.casestudies.log_timeseries) 759 0 R (schema.casestudies.log_timeseries.hostlead) 764 0 R (schema.casestudies.log_timeseries.revts) 765 0 R (schema.casestudies.log_timeseries.tslead) 760 0 R (schema.casestudies.log_timeseries.varkeys) 769 0 R (schema.cf.blocksize) 2002 0 R (schema.creation) 632 0 R (schema.joins) 715 0 R (schema.minversions) 703 0 R (schema.ops) 812 0 R (schema.regionsize) 1983 0 R (schema.smackdown) 798 0 R (schema.smackdown.rowsascols) 801 0 R (schema.smackdown.rowscols) 800 0 R (schema.smackdown.rowsversions) 799 0 R (schema.updates) 636 0 R (schema.versions) 698 0 R]
 >>
 endobj
 790 0 obj
@@ -222141,7 +222141,7 @@ endobj
 endobj
 834 0 obj
 << /Limits [(keyvalue) (logic-for-crafting-your-own-rolling-restart-script)]
-/Names [(keyvalue) 1428 0 R (keyvalue.example) 1431 0 R (language-integrated-query) 1778 0 R (life-of-a-wal-edit) 2655 0 R (limit-server-failure-impact) 817 0 R (load-the-dataframe) 1775 0 R (load_coprocessor_in_shell) 1846 0 R (localized-repairs) 3360 0 R (log-data-to-timestamp) 492 0 R (log4j) 255 0 R (logic-for-crafting-your-own-rolling-restart-script) 2583 0 R]
+/Names [(keyvalue) 1431 0 R (keyvalue.example) 1434 0 R (language-integrated-query) 1781 0 R (life-of-a-wal-edit) 2658 0 R (limit-server-failure-impact) 817 0 R (load-the-dataframe) 1778 0 R (load_coprocessor_in_shell) 1849 0 R (localized-repairs) 3363 0 R (log-data-to-timestamp) 492 0 R (log4j) 255 0 R (logic-for-crafting-your-own-rolling-restart-script) 2586 0 R]
 >>
 endobj
 835 0 obj
@@ -227063,7 +227063,7 @@ endobj
 endobj
 887 0 obj
 << /Limits [(table) (timeseries)]
-/Names [(table) 535 0 R (table-variables) 486 0 R (table.rename) 2813 0 R (table_schema_rules_of_thumb) 640 0 R (testing-compression-performance) 3435 0 R (testing-mob) 1597 0 R (the-singularity) 412 0 R (thrift) 1707 0 R (thrift) 1664 0 R (thrift.filter_language) 1714 0 R (timeline-consistency) 1536 0 R (timeseries) 661 0 R]
+/Names [(table) 535 0 R (table-variables) 486 0 R (table.rename) 2816 0 R (table_schema_rules_of_thumb) 640 0 R (testing-compression-performance) 3438 0 R (testing-mob) 1600 0 R (the-singularity) 412 0 R (thrift) 1710 0 R (thrift) 1667 0 R (thrift.filter_language) 1717 0 R (timeline-consistency) 1539 0 R (timeseries) 661 0 R]
 >>
 endobj
 888 0 obj
@@ -248393,7 +248393,7 @@ endobj
 endobj
 920 0 obj
 << /Limits [(mapreduce.example.readwrite.multi) (master.processes.catalog)]
-/Names [(mapreduce.example.readwrite.multi) 902 0 R (mapreduce.example.summary) 903 0 R (mapreduce.example.summary.file) 908 0 R (mapreduce.example.summary.noreducer) 913 0 R (mapreduce.example.summary.rdbms) 914 0 R (mapreduce.htable.access) 919 0 R (mapreduce.specex) 923 0 R (master.api) 1236 0 R (master.processes) 1237 0 R (master.processes.catalog) 1243 0 R]
+/Names [(mapreduce.example.readwrite.multi) 902 0 R (mapreduce.example.summary) 903 0 R (mapreduce.example.summary.file) 908 0 R (mapreduce.example.summary.noreducer) 913 0 R (mapreduce.example.summary.rdbms) 914 0 R (mapreduce.htable.access) 919 0 R (mapreduce.specex) 923 0 R (master.api) 1239 0 R (master.processes) 1240 0 R (master.processes.catalog) 1246 0 R]
 >>
 endobj
 921 0 obj
@@ -253010,7 +253010,7 @@ endobj
 endobj
 937 0 obj
 << /Limits [(upgrading-2) (versions)]
-/Names [(upgrading-2) 3319 0 R (upgrading-code-meta-code-to-use-protocol-buffers-protobuf) 422 0 R (upgrading-from-0-94-x-to-0-98-x) 407 0 R (use-cases-for-observer-coprocessors) 1817 0 R (user-interface) 1572 0 R (using-existing-zookeeper-ensemble) 3202 0 R (using-hbase-shell) 1858 0 R (using-rest-endpoints) 1635 0 R (using-secure-http-https-for-the-web-ui) 936 0 R (using-the-code-rolling-restart-sh-code-script) 2576 0 R (using-the-java-api) 1859 0 R (using-the-java-api-all-hbase-versions) 1850 0 R (using-the-java-api-hbase-0-96-only) 1854 0 R (verifying-replicated-data) 2649 0 R (version.delete) 594 0 R (versioned-get-example) 588 0 R (versions) 569 0 R]
+/Names [(upgrading-2) 3322 0 R (upgrading-code-meta-code-to-use-protocol-buffers-protobuf) 422 0 R (upgrading-from-0-94-x-to-0-98-x) 407 0 R (use-cases-for-observer-coprocessors) 1820 0 R (user-interface) 1575 0 R (using-existing-zookeeper-ensemble) 3205 0 R (using-hbase-shell) 1861 0 R (using-rest-endpoints) 1638 0 R (using-secure-http-https-for-the-web-ui) 936 0 R (using-the-code-rolling-restart-sh-code-script) 2579 0 R (using-the-java-api) 1862 0 R (using-the-java-api-all-hbase-versions) 1853 0 R (using-the-java-api-hbase-0-96-only) 1857 0 R (verifying-replicated-data) 2652 0 R (version.delete) 594 0 R (versioned-get-example) 588 0 R (versions) 569 0 R]
 >>
 endobj
 938 0 obj
@@ -256977,7 +256977,7 @@ endobj
 endobj
 954 0 obj
 << /Limits [(cf.in.memory) (client.connection.pooling)]
-/Names [(cf.in.memory) 2002 0 R (cf.keep.deleted) 724 0 R (changes-of-note) 383 0 R (changing.compression) 3432 0 R (changing.rowkeys) 691 0 R (chaos.monkey.properties) 3034 0 R (checking-for-success-or-failure-in-scripts) 473 0 R (choosing-region-servers-to-replicate-to) 2663 0 R (cleaning-logs) 2669 0 R (client) 3597 0 R (client-side-configuration-for-secure-operation) 953 0 R (client-side-configuration-for-secure-operation-rest-gateway) 977 0 R (client-side-configuration-for-simple-user-access-operation) 1000 0 R (client-side-configuration-for-simple-user-access-operation-rest-gateway) 1005 0 R (client-side-configuration-for-simple-user-access-operation-thrift-gateway) 1003 0 R (client-side-properties) 1567 0 R (client.connection.pooling) 1168 0 R]
+/Names [(cf.in.memory) 2005 0 R (cf.keep.deleted) 724 0 R (changes-of-note) 383 0 R (changing.compression) 3435 0 R (changing.rowkeys) 691 0 R (chaos.monkey.properties) 3037 0 R (checking-for-success-or-failure-in-scripts) 473 0 R (choosing-region-servers-to-replicate-to) 2666 0 R (cleaning-logs) 2672 0 R (client) 3600 0 R (client-side-configuration-for-secure-operation) 953 0 R (client-side-configuration-for-secure-operation-rest-gateway) 977 0 R (client-side-configuration-for-simple-user-access-operation) 1000 0 R (client-side-configuration-for-simple-user-access-operation-rest-gateway) 1005 0 R (client-side-configuration-for-simple-user-access-operation-thrift-gateway) 1003 0 R (client-side-properties) 1570 0 R (client.connection.pooling) 1168 0 R]
 >>
 endobj
 955 0 obj
@@ -258075,11 +258075,11 @@ endobj
 << /Type /Font
 /BaseFont /AAAAAH+mplus1mn-italic
 /Subtype /TrueType
-/FontDescriptor 4261 0 R
+/FontDescriptor 4264 0 R
 /FirstChar 32
 /LastChar 255
-/Widths 4263 0 R
-/ToUnicode 4262 0 R
+/Widths 4266 0 R
+/ToUnicode 4265 0 R
 >>
 endobj
 960 0 obj
@@ -286280,7 +286280,7 @@ endobj
 endobj
 1068 0 obj
 << /Limits [(hbase.visibility.labels) (hfile_tool)]
-/Names [(hbase.visibility.labels) 1067 0 R (hbase_apis) 1606 0 R (hbase_default_configurations) 180 0 R (hbase_env) 272 0 R (hbase_metrics) 2590 0 R (hbase_mob) 1589 0 R (hbase_site) 266 0 R (hbck) 2493 0 R (hbck.in.depth) 3355 0 R (health.check) 2489 0 R (hedged.reads) 2091 0 R (hfile) 1413 0 R (hfile-format) 1414 0 R (hfile-format-2) 3461 0 R (hfile.blocks) 1426 0 R (hfile_tool) 1421 0 R]
+/Names [(hbase.visibility.labels) 1067 0 R (hbase_apis) 1609 0 R (hbase_default_configurations) 180 0 R (hbase_env) 272 0 R (hbase_metrics) 2593 0 R (hbase_mob) 1592 0 R (hbase_site) 266 0 R (hbck) 2496 0 R (hbck.in.depth) 3358 0 R (health.check) 2492 0 R (hedged.reads) 2094 0 R (hfile) 1416 0 R (hfile-format) 1417 0 R (hfile-format-2) 3464 0 R (hfile.blocks) 1429 0 R (hfile_tool) 1424 0 R]
 >>
 endobj
 1069 0 obj
@@ -311584,17 +311584,17 @@ endobj
 endobj
 1142 0 obj
 << /Limits [(arch.overview.when) (asf.devprocess)]
-/Names [(arch.overview.when) 1130 0 R (arch.region.splits) 1384 0 R (arch.regions.size) 1358 0 R (arch.timelineconsistent.reads) 1534 0 R (architecture) 1125 0 R (architecture-2) 3322 0 R (architecture.client) 1153 0 R (architecture.master) 1230 0 R (asf) 3546 0 R (asf.devprocess) 3547 0 R]
+/Names [(arch.overview.when) 1130 0 R (arch.region.splits) 1388 0 R (arch.regions.size) 1361 0 R (arch.timelineconsistent.reads) 1537 0 R (architecture) 1125 0 R (architecture-2) 3325 0 R (architecture.client) 1153 0 R (architecture.master) 1233 0 R (asf) 3549 0 R (asf.devprocess) 3550 0 R]
 >>
 endobj
 1143 0 obj
 << /Limits [(acid) (config.files)]
-/Kids [161 0 R 1525 0 R 1142 0 R 3550 0 R 1385 0 R 2336 0 R 2474 0 R 954 0 R 1185 0 R 1208 0 R 1433 0 R 3056 0 R 3118 0 R 1722 0 R]
+/Kids [161 0 R 1528 0 R 1142 0 R 3551 0 R 1362 0 R 2339 0 R 2477 0 R 954 0 R 1188 0 R 1211 0 R 1436 0 R 3059 0 R 3121 0 R 1725 0 R]
 >>
 endobj
 1144 0 obj
 << /Limits [(mapreduce.example.readwrite.multi) (schema.casestudies.custorder.tables)]
-/Kids [920 0 R 1555 0 R 2887 0 R 529 0 R 2614 0 R 2797 0 R 2724 0 R 1720 0 R 3533 0 R 2017 0 R 2058 0 R 1906 0 R 2022 0 R 1283 0 R 307 0 R 1355 0 R 2678 0 R 699 0 R 2605 0 R]
+/Kids [920 0 R 1558 0 R 2890 0 R 529 0 R 2617 0 R 2800 0 R 2727 0 R 1723 0 R 3536 0 R 2020 0 R 2061 0 R 1909 0 R 2025 0 R 1286 0 R 307 0 R 1358 0 R 2681 0 R 699 0 R 2608 0 R]
 >>
 endobj
 1145 0 obj
@@ -313452,7 +313452,7 @@ endobj
 >>
 endobj
 1165 0 obj
-<< /Length 31723
+<< /Length 31796
 >>
 stream
 q
@@ -315575,7 +315575,7 @@ ET
 BT
 48.24000000000001 98.01599999999999 Td
 /F2.0 18 Tf
-<36362e332e2045787465726e616c20436c69656e7473> Tj
+<36362e332e204173796e6368726f6e6f757320436c69656e74> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -315583,21 +315583,25 @@ ET
 0.200 0.200 0.200 scn
 0.200 0.200 0.200 SCN
 
+4.344 Tw
+
 BT
 48.24000000000001 69.39599999999999 Td
 /F1.0 10.5 Tf
-<496e666f726d6174696f6e206f6e206e6f6e2d4a61766120636c69656e747320616e6420637573746f6d2070726f746f636f6c7320697320636f766572656420696e20> Tj
+<49742069732061206e65772041504920696e74726f647563656420696e20484261736520322e302077686963682061696d7320746f2070726f7669646520746865206162696c69747920746f20616363657373204842617365> Tj
 ET
 
+
+0.000 Tw
 0.000 0.000 0.000 SCN
 0.000 0.000 0.000 scn
-0.259 0.545 0.792 scn
-0.259 0.545 0.792 SCN
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
 
 BT
-386.403 69.39599999999999 Td
+48.24000000000001 53.615999999999985 Td
 /F1.0 10.5 Tf
-<4170616368652048426173652045787465726e616c2041504973> Tj
+[<6173796e6368726f6e6f75736c79> 89.84375 <2e>] TJ
 ET
 
 0.000 0.000 0.000 SCN
@@ -315644,7 +315648,7 @@ endobj
 /F4.0 40 0 R
 >>
 >>
-/Annots [1167 0 R 1169 0 R 1170 0 R 1172 0 R 1173 0 R 1174 0 R 1175 0 R 1177 0 R]
+/Annots [1167 0 R 1169 0 R 1170 0 R 1172 0 R 1173 0 R 1174 0 R 1175 0 R]
 >>
 endobj
 1167 0 obj
@@ -315734,15 +315738,959 @@ endobj
 [1166 0 R /XYZ 0 121.44 null]
 endobj
 1177 0 obj
+<< /Length 15589
+>>
+stream
+q
+/DeviceRGB cs
+1.000 1.000 1.000 scn
+0.000 0.000 612.000 792.000 re
+f
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+/DeviceRGB CS
+0.200 0.200 0.200 SCN
+
+0.267 Tw
+
+BT
+48.24 744.036 Td
+/F1.0 10.5 Tf
+[<59> 69.82421875 <6f752063616e206f627461696e20616e20>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+0.267 Tw
+
+BT
+141.45589317908656 744.036 Td
+/F3.0 10.5 Tf
+<4173796e63436f6e6e656374696f6e> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.267 Tw
+
+BT
+220.20589317908656 744.036 Td
+/F1.0 10.5 Tf
+<2066726f6d20> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+0.267 Tw
+
+BT
+250.96841691706732 744.036 Td
+/F3.0 10.5 Tf
+<436f6e6e656374696f6e466163746f7279> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.267 Tw
+
+BT
+340.2184169170673 744.036 Td
+/F1.0 10.5 Tf
+<2c20616e64207468656e206765742061206173796e6368726f6e6f7573207461626c6520696e7374616e6365> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+1.444 Tw
+
+BT
+48.24 728.256 Td
+/F1.0 10.5 Tf
+<66726f6d20697420746f206163636573732048426173652e205768656e20646f6e652c20636c6f73652074686520> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+1.444 Tw
+
+BT
+291.0205650540865 728.256 Td
+/F3.0 10.5 Tf
+<4173796e63436f6e6e656374696f6e> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+1.444 Tw
+
+BT
+369.77056505408655 728.256 Td
+/F1.0 10.5 Tf
+[<20696e7374616e636528757375616c6c79207768656e20796f75722070726f6772> 20.01953125 <616d>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 712.476 Td
+/F1.0 10.5 Tf
+<6578697473292e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.354 Tw
+
+BT
+48.24 684.6959999999999 Td
+/F1.0 10.5 Tf
+[<46> 40.0390625 <6f7220746865206173796e6368726f6e6f7573207461626c652c206d6f7374206d6574686f64732068617665207468652073616d65206d65616e696e67207769746820746865206f6c6420>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+0.354 Tw
+
+BT
+451.19484531250004 684.6959999999999 Td
+/F3.0 10.5 Tf
+<5461626c65> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.354 Tw
+
+BT
+477.44484531250004 684.6959999999999 Td
+/F1.0 10.5 Tf
+<20696e746572666163652c20657870656374> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.281 Tw
+
+BT
+48.24 668.9159999999999 Td
+/F1.0 10.5 Tf
+[<74686174207468652072657475726e2076616c7565206973207772> 20.01953125 <61707065642077697468206120436f6d706c657461626c6546757475726520757375616c6c79> 89.84375 <2e2057> 60.05859375 <6520646f206e6f74206861766520616e> 20.01953125 <7920627566666572206865726520736f>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 653.136 Td
+/F1.0 10.5 Tf
+<7468657265206973206e6f20636c6f7365206d6574686f6420666f72206173796e6368726f6e6f7573207461626c652c20796f7520646f206e6f74206e65656420746f20636c6f73652069742e20416e642069742069732074687265616420736166652e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 625.3559999999999 Td
+/F1.0 10.5 Tf
+[<546865726520617265207365766572> 20.01953125 <616c20646966666572656e63657320666f72207363616e3a>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+53.844750000000005 597.5759999999999 Td
+/F1.0 10.5 Tf
+<a5> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.122 Tw
+
+BT
+63.24 597.5759999999999 Td
+/F1.0 10.5 Tf
+<5468657265206973207374696c6c206120> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+0.122 Tw
+
+BT
+136.14794407894738 597.5759999999999 Td
+/F3.0 10.5 Tf
+<6765745363616e6e6572> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.122 Tw
+
+BT
+188.64794407894738 597.5759999999999 Td
+/F1.0 10.5 Tf
+<206d6574686f642077686963682072657475726e73206120> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+0.122 Tw
+
+BT
+315.3752491776316 597.5759999999999 Td
+/F3.0 10.5 Tf
+<526573756c745363616e6e6572> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.122 Tw
+
+BT
+383.6252491776316 597.5759999999999 Td
+/F1.0 10.5 Tf
+[<2e2059> 69.82421875 <6f752063616e2075736520697420696e20746865206f6c64207761> 20.01953125 <7920616e64206974>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+63.24 581.7959999999999 Td
+/F1.0 10.5 Tf
+[<776f726b73206c696b> 20.01953125 <6520746865206f6c6420>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+154.894294921875 581.7959999999999 Td
+/F3.0 10.5 Tf
+<436c69656e744173796e6350726566657463685363616e6e6572> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+291.39429492187503 581.7959999999999 Td
+/F1.0 10.5 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+53.844750000000005 554.016 Td
+/F1.0 10.5 Tf
+<a5> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.278 Tw
+
+BT
+63.24 554.0160000000001 Td
+/F1.0 10.5 Tf
+<5468657265206973206120> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+0.278 Tw
+
+BT
+115.48124290707236 554.0160000000001 Td
+/F3.0 10.5 Tf
+<7363616e416c6c> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.278 Tw
+
+BT
+152.23124290707236 554.0160000000001 Td
+/F1.0 10.5 Tf
+[<206d6574686f642077686963682077696c6c2072657475726e20616c6c2074686520726573756c7473206174206f6e63652e2049742061696d7320746f2070726f7669646520612073696d706c6572207761> 20.01953125 <79>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+63.24 538.236 Td
+/F1.0 10.5 Tf
+[<666f7220736d616c6c207363616e7320776869636820796f752077616e7420746f20676574207468652077686f6c6520726573756c7473206174206f6e636520757375616c6c79> 89.84375 <2e>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+53.844750000000005 510.4560000000001 Td
+/F1.0 10.5 Tf
+<a5> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.240 Tw
+
+BT
+63.24 510.4560000000001 Td
+/F1.0 10.5 Tf
+<546865204f62736572766572205061747465726e2e2054686572652069732061207363616e206d6574686f642077686963682061636365707473206120> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+0.240 Tw
+
+BT
+377.948450390625 510.4560000000001 Td
+/F3.0 10.5 Tf
+<5363616e526573756c74436f6e73756d6572> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.240 Tw
+
+BT
+472.448450390625 510.4560000000001 Td
+/F1.0 10.5 Tf
+[<206173206120706172> 20.01953125 <616d657465722e204974>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+63.24 494.67600000000004 Td
+/F1.0 10.5 Tf
+<77696c6c20706173732074686520726573756c747320746f2074686520636f6e73756d65722e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 466.8960000000001 Td
+/F1.0 10.5 Tf
+<4e6f746963652074686174207468657265206172652074776f207479706573206f66206173796e6368726f6e6f7573207461626c652c206f6e6520697320> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+352.58250000000004 466.8960000000001 Td
+/F3.0 10.5 Tf
+<4173796e635461626c65> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+405.08250000000004 466.8960000000001 Td
+/F1.0 10.5 Tf
+<20616e6420746865206f7468657220697320> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+488.82000000000005 466.8960000000001 Td
+/F3.0 10.5 Tf
+<5261774173796e635461626c65> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+557.07 466.8960000000001 Td
+/F1.0 10.5 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+2.139 Tw
+
+BT
+48.24 439.11600000000004 Td
+/F1.0 10.5 Tf
+[<46> 40.0390625 <6f7220>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+2.139 Tw
+
+BT
+69.86642797851562 439.11600000000004 Td
+/F3.0 10.5 Tf
+<4173796e635461626c65> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+2.139 Tw
+
+BT
+122.36642797851562 439.11600000000004 Td
+/F1.0 10.5 Tf
+<2c20796f75206e65656420746f2070726f7669646520612074687265616420706f6f6c207768656e2067657474696e672069742e205468652063616c6c6261636b73207265676973746572656420746f20746865> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.682 Tw
+
+BT
+48.24 423.336 Td
+/F1.0 10.5 Tf
+[<72657475726e656420436f6d706c657461626c654675747572652077696c6c20626520657865637574656420696e20746861742074687265616420706f6f6c2e2049742069732064657369676e656420666f72206e6f726d616c2075736572732e2059> 69.82421875 <6f75>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 407.55600000000004 Td
+/F1.0 10.5 Tf
+[<617265206672656520746f20646f20616e> 20.01953125 <797468696e6720696e207468652063616c6c6261636b732e>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.353 Tw
+
+BT
+48.24 379.776 Td
+/F1.0 10.5 Tf
+[<46> 40.0390625 <6f7220>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+0.353 Tw
+
+BT
+68.08100838694853 379.776 Td
+/F3.0 10.5 Tf
+<5261774173796e635461626c65> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.353 Tw
+
+BT
+136.33100838694853 379.776 Td
+/F1.0 10.5 Tf
+[<2c20616c6c207468652063616c6c6261636b732061726520657865637574656420696e7369646520746865206672> 20.01953125 <616d65776f726b2074687265616420736f206974206973206e6f7420616c6c6f77656420746f20646f>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.134 Tw
+
+BT
+48.24 363.996 Td
+/F1.0 10.5 Tf
+[<74696d6520636f6e73756d696e6720776f726b7320696e207468652063616c6c6261636b73206f746865727769736520796f75206d61> 20.01953125 <7920626c6f636b20746865206672> 20.01953125 <616d65776f726b2074687265616420616e642063617573652076657279>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.431 Tw
+
+BT
+48.24 348.216 Td
+/F1.0 10.5 Tf
+<62616420706572666f726d616e636520696d706163742e2049742069732064657369676e656420666f7220616476616e6365642075736572732077686f2077616e7420746f207772697465206869676820706572666f726d616e636520636f64652e> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+2.440 Tw
+
+BT
+48.24 332.43600000000004 Td
+/F1.0 10.5 Tf
+[<59> 69.82421875 <6f752063616e207365652074686520>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+2.440 Tw
+
+BT
+137.204007421875 332.43600000000004 Td
+/F3.0 10.5 Tf
+<6f72672e6170616368652e6861646f6f702e68626173652e636c69656e742e6578616d706c652e4874747050726f78794578616d706c65> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+2.440 Tw
+
+BT
+425.95400742187496 332.43600000000004 Td
+/F1.0 10.5 Tf
+<20746f2073656520686f7720746f2077726974652066756c6c79> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 316.656 Td
+/F1.0 10.5 Tf
+<6173796e6368726f6e6f757320636f6465207769746820> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+172.8015 316.656 Td
+/F3.0 10.5 Tf
+<5261774173796e635461626c65> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+241.05150000000003 316.656 Td
+/F1.0 10.5 Tf
+<2e20416e6420636f70726f636573736f722072656c61746564206d6574686f647320617265206f6e6c7920696e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+473.1435 316.656 Td
+/F3.0 10.5 Tf
+<5261774173796e635461626c65> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+541.3935 316.656 Td
+/F1.0 10.5 Tf
+<2e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+q
+0.5 w
+0.933 0.933 0.933 SCN
+124.866 250.500 m
+124.866 300.840 l
+S
+Q
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+60.24 270.09600000000006 Td
+/F2.0 10.5 Tf
+[<57> 60.05859375 <41524e494e47>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+136.866 288.87600000000003 Td
+/F4.0 10.5 Tf
+<4f6e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+BT
+153.66600000000003 288.87600000000003 Td
+/F3.0 10.5 Tf
+<4173796e6341646d696e> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.694 0.129 0.275 scn
+0.694 0.129 0.275 SCN
+
+0.107 Tw
+
+BT
+136.866 270.09600000000006 Td
+/F3.0 10.5 Tf
+<4173796e6341646d696e> Tj
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+0.107 Tw
+
+BT
+189.366 270.09600000000006 Td
+/F1.0 10.5 Tf
+[<206973207374696c6c20756e64657220646576656c6f706d656e7420616e64206d61726b> 20.01953125 <65642061732049412e507269766174652e2055736520697420776974682063617574696f6e>] TJ
+ET
+
+
+0.000 Tw
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+136.866 254.31600000000006 Td
+/F1.0 10.5 Tf
+[<6173207765206d61> 20.01953125 <79206368616e6765207468652041504920776974686f757420616e> 20.01953125 <7920616e6e6f756e63656d656e742e>] TJ
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 215.07600000000005 Td
+/F2.0 18 Tf
+<36362e342e2045787465726e616c20436c69656e7473> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24000000000001 186.45600000000005 Td
+/F1.0 10.5 Tf
+<496e666f726d6174696f6e206f6e206e6f6e2d4a61766120636c69656e747320616e6420637573746f6d2070726f746f636f6c7320697320636f766572656420696e20> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+0.259 0.545 0.792 scn
+0.259 0.545 0.792 SCN
+
+BT
+386.403 186.45600000000005 Td
+/F1.0 10.5 Tf
+<4170616368652048426173652045787465726e616c2041504973> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+q
+0.000 0.000 0.000 scn
+0.000 0.000 0.000 SCN
+1 w
+0 J
+0 j
+[ ] 0 d
+q
+0.5 w
+0.867 0.867 0.867 SCN
+48.240 30.120 m
+563.760 30.120 l
+S
+Q
+0.200 0.200 0.200 scn
+0.200 0.200 0.200 SCN
+
+BT
+48.24 14.508000000000001 Td
+/F1.0 9 Tf
+<323335> Tj
+ET
+
+0.000 0.000 0.000 SCN
+0.000 0.000 0.000 scn
+Q
+Q
+
+endstream
+endobj
+1178 0 obj
+<< /Type /Page
+/Parent 3 0 R
+/MediaBox [0 0 612.0 792.0]
+/Contents 1177 0 R
+/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
+/Font << /F1.0 11 0 R
+/F3.0 31 0 R
+/F2.0 10 0 R
+/F4.0 40 0 R
+>>
+>>
+/Annots [1180 0 R]
+>>
+endobj
+1179 0 obj
+[1178 0 R /XYZ 0 238.50000000000006 null]
+endobj
+1180 0 obj
 << /Border [0 0 0]
 /Dest (#external_apis)
 /Subtype /Link
-/Rect [386.403 66.32999999999998 528.3000000000001 80.60999999999999]
+/Rect [386.403 183.39000000000004 528.3000000000001 197.67000000000004]
 /Type /Annot
 >>
 endobj
-1178 0 obj
-<< /Length 26102
+1181 0 obj
+<< /Length 26114
 >>
 stream
 q
@@ -317510,9 +318458,9 @@ Q
 0.200 0.200 0.200 SCN
 
 BT
-48.24 14.508000000000001 Td
+548.6669999999999 14.508000000000001 Td
 /F1.0 9 Tf
-<323335> Tj
+<323336> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -317522,24 +318470,24 @@ Q
 
 endstream
 endobj
-1179 0 obj
+1182 0 obj
 << /Type /Page
 /Parent 3 0 R
 /MediaBox [0 0 612.0 792.0]
-/Contents 1178 0 R
+/Contents 1181 0 R
 /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
 /Font << /F2.0 10 0 R
 /F1.0 11 0 R
 /F3.0 31 0 R
 >>
 >>
-/Annots [1181 0 R 1182 0 R 1183 0 R 1187 0 R 1190 0 R]
+/Annots [1184 0 R 1185 0 R 1186 0 R 1190 0 R 1193 0 R]
 >>
 endobj
-1180 0 obj
-[1179 0 R /XYZ 0 792.0 null]
+1183 0 obj
+[1182 0 R /XYZ 0 792.0 null]
 endobj
-1181 0 obj
+1184 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -317550,7 +318498,7 @@ endobj
 /Type /Annot
 >>
 endobj
-1182 0 obj
+1185 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -317561,7 +318509,7 @@ endobj
 /Type /Annot
 >>
 endobj
-1183 0 obj
+1186 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -317572,18 +318520,18 @@ endobj
 /Type /Annot
 >>
 endobj
-1184 0 obj
-[1179 0 R /XYZ 0 624.96 null]
+1187 0 obj
+[1182 0 R /XYZ 0 624.96 null]
 endobj
-1185 0 obj
+1188 0 obj
 << /Limits [(client.connections) (client.filter.cvp.substringcomparator)]
-/Names [(client.connections) 1157 0 R (client.external) 1176 0 R (client.filter) 1180 0 R (client.filter.cv) 1188 0 R (client.filter.cv.scvf) 1189 0 R (client.filter.cvp) 1193 0 R (client.filter.cvp.bc) 1204 0 R (client.filter.cvp.bfp) 1202 0 R (client.filter.cvp.rcs) 1195 0 R (client.filter.cvp.substringcomparator) 1198 0 R]
+/Names [(client.connections) 1157 0 R (client.external) 1179 0 R (client.filter) 1183 0 R (client.filter.cv) 1191 0 R (client.filter.cv.scvf) 1192 0 R (client.filter.cvp) 1196 0 R (client.filter.cvp.bc) 1207 0 R (client.filter.cvp.bfp) 1205 0 R (client.filter.cvp.rcs) 1198 0 R (client.filter.cvp.substringcomparator) 1201 0 R]
 >>
 endobj
-1186 0 obj
-[1179 0 R /XYZ 0 557.1000000000001 null]
+1189 0 obj
+[1182 0 R /XYZ 0 557.1000000000001 null]
 endobj
-1187 0 obj
+1190 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -317594,13 +318542,13 @@ endobj
 /Type /Annot
 >>
 endobj
-1188 0 obj
-[1179 0 R /XYZ 0 195.6400000000002 null]
+1191 0 obj
+[1182 0 R /XYZ 0 195.6400000000002 null]
 endobj
-1189 0 obj
-[1179 0 R /XYZ 0 155.5600000000002 null]
+1192 0 obj
+[1182 0 R /XYZ 0 155.5600000000002 null]
 endobj
-1190 0 obj
+1193 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -317611,8 +318559,8 @@ endobj
 /Type /Annot
 >>
 endobj
-1191 0 obj
-<< /Length 20270
+1194 0 obj
+<< /Length 20258
 >>
 stream
 q
@@ -318993,9 +319941,9 @@ Q
 0.200 0.200 0.200 SCN
 
 BT
-548.6669999999999 14.508000000000001 Td
+48.24 14.508000000000001 Td
 /F1.0 9 Tf
-<323336> Tj
+<323337> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -319005,24 +319953,24 @@ Q
 
 endstream
 endobj
-1192 0 obj
+1195 0 obj
 << /Type /Page
 /Parent 3 0 R
 /MediaBox [0 0 612.0 792.0]
-/Contents 1191 0 R
+/Contents 1194 0 R
 /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
 /Font << /F1.0 11 0 R
 /F3.0 31 0 R
 /F2.0 10 0 R
 >>
 >>
-/Annots [1194 0 R 1196 0 R 1197 0 R 1199 0 R]
+/Annots [1197 0 R 1199 0 R 1200 0 R 1202 0 R]
 >>
 endobj
-1193 0 obj
-[1192 0 R /XYZ 0 591.79 null]
+1196 0 obj
+[1195 0 R /XYZ 0 591.79 null]
 endobj
-1194 0 obj
+1197 0 obj
 << /Border [0 0 0]
 /Dest (#client.filter.cv.scvf)
 /Subtype /Link
@@ -319030,10 +319978,10 @@ endobj
 /Type /Annot
 >>
 endobj
-1195 0 obj
-[1192 0 R /XYZ 0 508.1500000000001 null]
+1198 0 obj
+[1195 0 R /XYZ 0 508.1500000000001 null]
 endobj
-1196 0 obj
+1199 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -319044,7 +319992,7 @@ endobj
 /Type /Annot
 >>
 endobj
-1197 0 obj
+1200 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -319055,10 +320003,10 @@ endobj
 /Type /Annot
 >>
 endobj
-1198 0 obj
-[1192 0 R /XYZ 0 253.6500000000001 null]
+1201 0 obj
+[1195 0 R /XYZ 0 253.6500000000001 null]
 endobj
-1199 0 obj
+1202 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -319069,8 +320017,8 @@ endobj
 /Type /Annot
 >>
 endobj
-1200 0 obj
-<< /Length 15331
+1203 0 obj
+<< /Length 15343
 >>
 stream
 q
@@ -320037,9 +320985,9 @@ Q
 0.200 0.200 0.200 SCN
 
 BT
-48.24 14.508000000000001 Td
+548.6669999999999 14.508000000000001 Td
 /F1.0 9 Tf
-<323337> Tj
+<323338> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -320049,24 +320997,24 @@ Q
 
 endstream
 endobj
-1201 0 obj
+1204 0 obj
 << /Type /Page
 /Parent 3 0 R
 /MediaBox [0 0 612.0 792.0]
-/Contents 1200 0 R
+/Contents 1203 0 R
 /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
 /Font << /F3.0 31 0 R
 /F2.0 10 0 R
 /F1.0 11 0 R
 >>
 >>
-/Annots [1203 0 R 1205 0 R 1209 0 R 1211 0 R 1213 0 R]
+/Annots [1206 0 R 1208 0 R 1212 0 R 1214 0 R 1216 0 R]
 >>
 endobj
-1202 0 obj
-[1201 0 R /XYZ 0 604.08 null]
+1205 0 obj
+[1204 0 R /XYZ 0 604.08 null]
 endobj
-1203 0 obj
+1206 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -320077,10 +321025,10 @@ endobj
 /Type /Annot
 >>
 endobj
-1204 0 obj
-[1201 0 R /XYZ 0 544.0200000000002 null]
+1207 0 obj
+[1204 0 R /XYZ 0 544.0200000000002 null]
 endobj
-1205 0 obj
+1208 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -320091,18 +321039,18 @@ endobj
 /Type /Annot
 >>
 endobj
-1206 0 obj
-[1201 0 R /XYZ 0 483.9600000000004 null]
+1209 0 obj
+[1204 0 R /XYZ 0 483.9600000000004 null]
 endobj
-1207 0 obj
-[1201 0 R /XYZ 0 400.32000000000033 null]
+1210 0 obj
+[1204 0 R /XYZ 0 400.32000000000033 null]
 endobj
-1208 0 obj
+1211 0 obj
 << /Limits [(client.filter.kvm) (client.filter.structural.fl)]
-/Names [(client.filter.kvm) 1206 0 R (client.filter.kvm.cpf) 1212 0 R (client.filter.kvm.crf) 1220 0 R (client.filter.kvm.ff) 1207 0 R (client.filter.kvm.mcpf) 1216 0 R (client.filter.kvm.qf) 1210 0 R (client.filter.row) 1222 0 R (client.filter.row.rf) 1223 0 R (client.filter.structural) 1184 0 R (client.filter.structural.fl) 1186 0 R]
+/Names [(client.filter.kvm) 1209 0 R (client.filter.kvm.cpf) 1215 0 R (client.filter.kvm.crf) 1223 0 R (client.filter.kvm.ff) 1210 0 R (client.filter.kvm.mcpf) 1219 0 R (client.filter.kvm.qf) 1213 0 R (client.filter.row) 1225 0 R (client.filter.row.rf) 1226 0 R (client.filter.structural) 1187 0 R (client.filter.structural.fl) 1189 0 R]
 >>
 endobj
-1209 0 obj
+1212 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -320113,10 +321061,10 @@ endobj
 /Type /Annot
 >>
 endobj
-1210 0 obj
-[1201 0 R /XYZ 0 324.4800000000003 null]
+1213 0 obj
+[1204 0 R /XYZ 0 324.4800000000003 null]
 endobj
-1211 0 obj
+1214 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -320127,10 +321075,10 @@ endobj
 /Type /Annot
 >>
 endobj
-1212 0 obj
-[1201 0 R /XYZ 0 264.4200000000003 null]
+1215 0 obj
+[1204 0 R /XYZ 0 264.4200000000003 null]
 endobj
-1213 0 obj
+1216 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -320141,8 +321089,8 @@ endobj
 /Type /Annot
 >>
 endobj
-1214 0 obj
-<< /Length 61018
+1217 0 obj
+<< /Length 61006
 >>
 stream
 q
@@ -324611,9 +325559,9 @@ Q
 0.200 0.200 0.200 SCN
 
 BT
-548.6669999999999 14.508000000000001 Td
+48.24 14.508000000000001 Td
 /F1.0 9 Tf
-<323338> Tj
+<323339> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -324623,24 +325571,24 @@ Q
 
 endstream
 endobj
-1215 0 obj
+1218 0 obj
 << /Type /Page
 /Parent 3 0 R
 /MediaBox [0 0 612.0 792.0]
-/Contents 1214 0 R
+/Contents 1217 0 R
 /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
 /Font << /F3.0 31 0 R
 /F2.0 10 0 R
 /F1.0 11 0 R
 >>
 >>
-/Annots [1217 0 R]
+/Annots [1220 0 R]
 >>
 endobj
-1216 0 obj
-[1215 0 R /XYZ 0 486.15999999999997 null]
+1219 0 obj
+[1218 0 R /XYZ 0 486.15999999999997 null]
 endobj
-1217 0 obj
+1220 0 obj
 << /Border [0 0 0]
 /A << /Type /Action
 /S /URI
@@ -324651,8 +325599,8 @@ endobj
 /Type /Annot
 >>
 endobj
-1218 0 obj
-<< /Length 37813
+1221 0 obj
+<< /Length 37825
 >>
 stream
 q
@@ -327275,9 +328223,9 @@ Q
 0.200 0.200 0.200 SCN
 
 BT
-48.24 14.508000000000001 Td
+548.6669999999999 14.508000000000001 Td
 /F1.0 9 Tf
-<323339> Tj
+<323430> Tj
 ET
 
 0.000 0.000 0.000 SCN
@@ -327287,24 +328235,24 @@ Q
 
 endstream
 endobj
-1219 0 obj
+1222 0 obj
 << /Type /Page
 /Parent 3 0 R
 /MediaBox [0 0 612.0 792.0]
-/Contents 1218 0 R
+/Contents 1221 0 R
 /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
 /Font << /F2.0 10 0 R
 /F1.0 11 0 R
 /F3.0 31 0 R
 >>
 >>
-/Annots [1221 0 R 1224 0 R 1227 0 R]
+/Annots [1224 0 R 1227 0 R 1230 0 R]
 >>
 endobj
-1220 0 obj

<TRUNCATED>

[10/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index 47fdc49..65539c4 100644
--- a/export_control.html
+++ b/export_control.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -336,7 +336,7 @@ for more details.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/checkstyle.html b/hbase-annotations/checkstyle.html
index 48329bb..2f53863 100644
--- a/hbase-annotations/checkstyle.html
+++ b/hbase-annotations/checkstyle.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependencies.html b/hbase-annotations/dependencies.html
index 1aeadf0..ea57364 100644
--- a/hbase-annotations/dependencies.html
+++ b/hbase-annotations/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>
@@ -154,7 +154,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr></table></div><a name="Project_Dependencies_system"></a>
 <div class="section">
@@ -269,7 +269,7 @@
 <p><b>Description: </b>This is the core API of hamcrest matcher framework to be used by third-party framework providers. This includes the a foundation set of matcher implementations for common operations.</p>
 <p><b>URL: </b><a class="externalLink" href="https://github.com/hamcrest/JavaHamcrest/hamcrest-core">https://github.com/hamcrest/JavaHamcrest/hamcrest-core</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/bsd-license.php">New BSD License</a></p></td></tr></table></div></li></ul></li>
-<li>org.mockito:mockito-all:jar:1.10.8 (test) <img id="_img13" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep12', '_img13' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep12" style="display:none">
+<li>org.mockito:mockito-all:jar:1.10.19 (test) <img id="_img13" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep12', '_img13' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep12" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Mockito</th></tr>
@@ -329,11 +329,11 @@
 <td>1.5</td>
 <td>debug</td></tr>
 <tr class="b">
-<td>mockito-all-1.10.8.jar</td>
-<td>1.16 MB</td>
-<td>1,183</td>
-<td>736</td>
-<td>77</td>
+<td>mockito-all-1.10.19.jar</td>
+<td>1.18 MB</td>
+<td>1,215</td>
+<td>752</td>
+<td>79</td>
 <td>1.5</td>
 <td>debug</td></tr>
 <tr class="a">
@@ -346,10 +346,10 @@
 <th>Debug</th></tr>
 <tr class="b">
 <td>5</td>
-<td>1.98 MB</td>
-<td>1,945</td>
-<td>1,403</td>
-<td>132</td>
+<td>2.00 MB</td>
+<td>1,977</td>
+<td>1,419</td>
+<td>134</td>
 <td>1.5</td>
 <td>5</td></tr>
 <tr class="a">
@@ -362,10 +362,10 @@
 <td>compile: 3</td></tr>
 <tr class="b">
 <td>test: 2</td>
-<td>test: 1.20 MB</td>
-<td>test: 1,235</td>
-<td>test: 781</td>
-<td>test: 80</td>
+<td>test: 1.22 MB</td>
+<td>test: 1,267</td>
+<td>test: 797</td>
+<td>test: 82</td>
 <td>-</td>
 <td>test: 2</td></tr></table></div>
       </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-convergence.html b/hbase-annotations/dependency-convergence.html
index 6e8a505..721690e 100644
--- a/hbase-annotations/dependency-convergence.html
+++ b/hbase-annotations/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>
@@ -129,10 +129,10 @@
 <td>33</td></tr>
 <tr class="b">
 <th>Number of dependencies (NOD):</th>
-<td>93</td></tr>
+<td>92</td></tr>
 <tr class="a">
 <th>Number of unique artifacts (NOA):</th>
-<td>94</td></tr>
+<td>93</td></tr>
 <tr class="b">
 <th>Number of SNAPSHOT artifacts (NOS):</th>
 <td>0</td></tr>
@@ -266,7 +266,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.3.1</td>
+<td width="25%">1.4</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-it">org.apache.hbase:hbase-it</a></li>
@@ -309,7 +309,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.4</td>
+<td width="25%">2.5</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -366,18 +366,6 @@
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-spark">org.apache.hbase:hbase-spark</a></li>
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
 <div class="section">
-<h4><a name="commons-net:commons-net"></a>commons-net:commons-net</h4>
-<table border="0" class="bodyTable">
-<tr class="b">
-<td><img alt="success" src="images/icon_success_sml.gif" /></td>
-<td>
-<table border="0" class="bodyTable">
-<tr class="a">
-<td width="25%">3.1</td>
-<td>
-<ol style="list-style-type: lower-alpha">
-<li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
-<div class="section">
 <h4><a name="io.dropwizard.metrics:metrics-core"></a>io.dropwizard.metrics:metrics-core</h4>
 <table border="0" class="bodyTable">
 <tr class="b">
@@ -385,7 +373,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.1.2</td>
+<td width="25%">3.2.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -416,7 +404,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.1.1.Final</td>
+<td width="25%">4.1.9.Final</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -444,7 +432,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.2.2</td>
+<td width="25%">2.2.12</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li></ol></td></tr></table></td></tr></table></div>
@@ -556,7 +544,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.6</td>
+<td width="25%">2.12.2</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">org.apache.hbase:hbase-external-blockcache</a></li></ol></td></tr></table></td></tr></table></div>
@@ -608,7 +596,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -620,7 +608,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -632,7 +620,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1217,7 +1205,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.1.0-incubating</td>
+<td width="25%">3.2.0-incubating</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1235,7 +1223,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.5.2</td>
+<td width="25%">4.5.3</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1249,7 +1237,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.4.4</td>
+<td width="25%">4.4.6</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1337,7 +1325,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.4.8</td>
+<td width="25%">3.4.9</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1492,7 +1480,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.22.2</td>
+<td width="25%">2.25.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li>
@@ -1568,7 +1556,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">9.1.9.0</td>
+<td width="25%">9.1.10.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-shell">org.apache.hbase:hbase-shell</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1580,7 +1568,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.10.8</td>
+<td width="25%">1.10.19</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">org.apache.hbase:hbase-annotations</a></li>
@@ -1660,7 +1648,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1672,7 +1660,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-testing-util">org.apache.hbase:hbase-testing-util</a></li></ol></td></tr></table></td></tr></table></div></div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-info.html b/hbase-annotations/dependency-info.html
index 98b022f..6e44736 100644
--- a/hbase-annotations/dependency-info.html
+++ b/hbase-annotations/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-management.html b/hbase-annotations/dependency-management.html
index cf69385..30423b7 100644
--- a/hbase-annotations/dependency-management.html
+++ b/hbase-annotations/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>
@@ -149,9 +149,9 @@
 <tr class="b">
 <td>commons-cli</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">commons-cli</a></td>
-<td>1.3.1</td>
+<td>1.4</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-codec</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-codec/">commons-codec</a></td>
@@ -166,10 +166,10 @@
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-io</td>
-<td><a class="externalLink" href="http://commons.apache.org/io/">commons-io</a></td>
-<td>2.4</td>
+<td><a class="externalLink" href="http://commons.apache.org/proper/commons-io/">commons-io</a></td>
+<td>2.5</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="b">
 <td>commons-lang</td>
 <td><a class="externalLink" href="http://commons.apache.org/lang/">commons-lang</a></td>
@@ -183,411 +183,405 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
 <tr class="b">
-<td>commons-net</td>
-<td><a class="externalLink" href="http://commons.apache.org/net/">commons-net</a></td>
-<td>3.1</td>
-<td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
 <td>io.dropwizard.metrics</td>
 <td><a class="externalLink" href="http://metrics.codahale.com/metrics-core/">metrics-core</a></td>
-<td>3.1.2</td>
+<td>3.2.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>io.netty</td>
 <td><a class="externalLink" href="http://netty.io/netty-all/">netty-all</a></td>
-<td>4.1.1.Final</td>
+<td>4.1.9.Final</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>javax.servlet</td>
 <td><a class="externalLink" href="http://servlet-spec.java.net">javax.servlet-api</a></td>
 <td>3.1.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>javax.xml.bind</td>
-<td><a class="externalLink" href="https://jaxb.dev.java.net/">jaxb-api</a></td>
-<td>2.2.2</td>
+<td><a class="externalLink" href="http://jaxb.java.net/">jaxb-api</a></td>
+<td>2.2.12</td>
 <td>jar</td>
-<td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
-<tr class="a">
+<td><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
+<tr class="b">
 <td>junit</td>
 <td><a class="externalLink" href="http://junit.org">junit</a></td>
 <td>4.12</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>log4j</td>
 <td><a class="externalLink" href="http://logging.apache.org/log4j/1.2/">log4j</a></td>
 <td>1.2.17</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>net.spy</td>
 <td><a class="externalLink" href="http://www.couchbase.org/code/couchbase/java">spymemcached</a></td>
-<td>2.11.6</td>
+<td>2.12.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-crypto/">commons-crypto</a></td>
 <td>1.0.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math</a></td>
 <td>2.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-client">curator-client</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-framework">curator-framework</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-recipes">curator-recipes</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-auth</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-client</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-hdfs</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-core</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-jobclient</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-minicluster</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-client">hbase-client</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-common">hbase-common</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-endpoint">hbase-endpoint</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-examples">hbase-examples</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">hbase-external-blockcache</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop-compat">hbase-hadoop-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop2-compat">hbase-hadoop2-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics">hbase-metrics</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics-api">hbase-metrics-api</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol">hbase-protocol</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol-shaded">hbase-protocol-shaded</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-rsgroup">hbase-rsgroup</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-server">hbase-server</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-shell">hbase-shell</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">hbase-thrift</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.htrace</td>
 <td><a class="externalLink" href="http://incubator.apache.org/projects/htrace.html">htrace-core</a></td>
-<td>3.1.0-incubating</td>
+<td>3.2.0-incubating</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">httpclient</a></td>
-<td>4.5.2</td>
+<td>4.5.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">httpcore</a></td>
-<td>4.4.4</td>
+<td>4.4.6</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-client">kerb-client</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-simplekdc">kerb-simplekdc</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.thrift</td>
 <td><a class="externalLink" href="http://thrift.apache.org">libthrift</a></td>
 <td>0.9.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.zookeeper</td>
 <td>zookeeper</td>
-<td>3.4.8</td>
+<td>3.4.9</td>
 <td>jar</td>
-<td>-</td></tr>
-<tr class="b">
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-core-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-jaxrs</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-mapper-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-xc</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jettison</td>
-<td><a class="externalLink" href="http://codehaus.org/jettison/">jettison</a></td>
-<td>1.3.3</td>
+<td><a class="externalLink" href="https://github.com/jettison-json/jettison">jettison</a></td>
+<td>1.3.8</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jsp</a></td>
 <td>9.2.19.v20160908</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.jersey.containers</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">jersey-container-servlet-core</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.jersey.media</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-media-json-jackson1/">jersey-media-json-jackson1</a></td>
 <td>2.23.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
-<td>9.1.9.0</td>
+<td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
-<td>1.7.7</td>
+<td>1.7.24</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr></table></div>
 <div class="section">
@@ -715,7 +709,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr></table></div></div>
       </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/index.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/index.html b/hbase-annotations/index.html
index 2530032..9a1343d 100644
--- a/hbase-annotations/index.html
+++ b/hbase-annotations/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/integration.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/integration.html b/hbase-annotations/integration.html
index 5eaa069..af7625e 100644
--- a/hbase-annotations/integration.html
+++ b/hbase-annotations/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/issue-tracking.html b/hbase-annotations/issue-tracking.html
index 4b4a55a..7c6b73e 100644
--- a/hbase-annotations/issue-tracking.html
+++ b/hbase-annotations/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/license.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/license.html b/hbase-annotations/license.html
index 3d4bcfd..e5ed151 100644
--- a/hbase-annotations/license.html
+++ b/hbase-annotations/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/mail-lists.html b/hbase-annotations/mail-lists.html
index cf9bf59..afd9ef8 100644
--- a/hbase-annotations/mail-lists.html
+++ b/hbase-annotations/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugin-management.html b/hbase-annotations/plugin-management.html
index 40db120..1ed6a4b 100644
--- a/hbase-annotations/plugin-management.html
+++ b/hbase-annotations/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugins.html b/hbase-annotations/plugins.html
index b96fa24..5c67cd0 100644
--- a/hbase-annotations/plugins.html
+++ b/hbase-annotations/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-info.html b/hbase-annotations/project-info.html
index 63f5372..e7d4004 100644
--- a/hbase-annotations/project-info.html
+++ b/hbase-annotations/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-reports.html b/hbase-annotations/project-reports.html
index 320222d..ea5f8ba 100644
--- a/hbase-annotations/project-reports.html
+++ b/hbase-annotations/project-reports.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-summary.html b/hbase-annotations/project-summary.html
index 6606faa..38a6494 100644
--- a/hbase-annotations/project-summary.html
+++ b/hbase-annotations/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/source-repository.html b/hbase-annotations/source-repository.html
index ec6d1bf..78ca29a 100644
--- a/hbase-annotations/source-repository.html
+++ b/hbase-annotations/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-annotations/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/team-list.html b/hbase-annotations/team-list.html
index 7f3db84..9f06543 100644
--- a/hbase-annotations/team-list.html
+++ b/hbase-annotations/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Annotations">Apache HBase - Annotations</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependencies.html b/hbase-archetypes/dependencies.html
index f2bab23..3ce79d7 100644
--- a/hbase-archetypes/dependencies.html
+++ b/hbase-archetypes/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>
@@ -163,7 +163,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr></table></div></div><a name="Project_Transitive_Dependencies"></a>
 <div class="section">
@@ -255,7 +255,7 @@
 <p><b>Description: </b>This is the core API of hamcrest matcher framework to be used by third-party framework providers. This includes the a foundation set of matcher implementations for common operations.</p>
 <p><b>URL: </b><a class="externalLink" href="https://github.com/hamcrest/JavaHamcrest/hamcrest-core">https://github.com/hamcrest/JavaHamcrest/hamcrest-core</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/bsd-license.php">New BSD License</a></p></td></tr></table></div></li></ul></li>
-<li>org.mockito:mockito-all:jar:1.10.8 (test) <img id="_img11" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep10', '_img11' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep10" style="display:none">
+<li>org.mockito:mockito-all:jar:1.10.19 (test) <img id="_img11" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep10', '_img11' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep10" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Mockito</th></tr>
@@ -315,11 +315,11 @@
 <td>1.5</td>
 <td>debug</td></tr>
 <tr class="b">
-<td>mockito-all-1.10.8.jar</td>
-<td>1.16 MB</td>
-<td>1,183</td>
-<td>736</td>
-<td>77</td>
+<td>mockito-all-1.10.19.jar</td>
+<td>1.18 MB</td>
+<td>1,215</td>
+<td>752</td>
+<td>79</td>
 <td>1.5</td>
 <td>debug</td></tr>
 <tr class="a">
@@ -332,10 +332,10 @@
 <th>Debug</th></tr>
 <tr class="b">
 <td>5</td>
-<td>1.98 MB</td>
-<td>1,945</td>
-<td>1,403</td>
-<td>132</td>
+<td>2.00 MB</td>
+<td>1,977</td>
+<td>1,419</td>
+<td>134</td>
 <td>1.5</td>
 <td>5</td></tr>
 <tr class="a">
@@ -348,10 +348,10 @@
 <td>compile: 3</td></tr>
 <tr class="b">
 <td>test: 2</td>
-<td>test: 1.20 MB</td>
-<td>test: 1,235</td>
-<td>test: 781</td>
-<td>test: 80</td>
+<td>test: 1.22 MB</td>
+<td>test: 1,267</td>
+<td>test: 797</td>
+<td>test: 82</td>
 <td>-</td>
 <td>test: 2</td></tr></table></div>
       </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependency-convergence.html b/hbase-archetypes/dependency-convergence.html
index c4a92e6..f519208 100644
--- a/hbase-archetypes/dependency-convergence.html
+++ b/hbase-archetypes/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>
@@ -138,10 +138,10 @@
 <td>33</td></tr>
 <tr class="b">
 <th>Number of dependencies (NOD):</th>
-<td>93</td></tr>
+<td>92</td></tr>
 <tr class="a">
 <th>Number of unique artifacts (NOA):</th>
-<td>94</td></tr>
+<td>93</td></tr>
 <tr class="b">
 <th>Number of SNAPSHOT artifacts (NOS):</th>
 <td>0</td></tr>
@@ -275,7 +275,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.3.1</td>
+<td width="25%">1.4</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-it">org.apache.hbase:hbase-it</a></li>
@@ -318,7 +318,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.4</td>
+<td width="25%">2.5</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -375,18 +375,6 @@
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-spark">org.apache.hbase:hbase-spark</a></li>
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
 <div class="section">
-<h4><a name="commons-net:commons-net"></a>commons-net:commons-net</h4>
-<table border="0" class="bodyTable">
-<tr class="b">
-<td><img alt="success" src="images/icon_success_sml.gif" /></td>
-<td>
-<table border="0" class="bodyTable">
-<tr class="a">
-<td width="25%">3.1</td>
-<td>
-<ol style="list-style-type: lower-alpha">
-<li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
-<div class="section">
 <h4><a name="io.dropwizard.metrics:metrics-core"></a>io.dropwizard.metrics:metrics-core</h4>
 <table border="0" class="bodyTable">
 <tr class="b">
@@ -394,7 +382,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.1.2</td>
+<td width="25%">3.2.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -425,7 +413,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.1.1.Final</td>
+<td width="25%">4.1.9.Final</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -453,7 +441,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.2.2</td>
+<td width="25%">2.2.12</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li></ol></td></tr></table></td></tr></table></div>
@@ -565,7 +553,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.6</td>
+<td width="25%">2.12.2</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">org.apache.hbase:hbase-external-blockcache</a></li></ol></td></tr></table></td></tr></table></div>
@@ -617,7 +605,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -629,7 +617,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -641,7 +629,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1226,7 +1214,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.1.0-incubating</td>
+<td width="25%">3.2.0-incubating</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1244,7 +1232,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.5.2</td>
+<td width="25%">4.5.3</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1258,7 +1246,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.4.4</td>
+<td width="25%">4.4.6</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1346,7 +1334,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.4.8</td>
+<td width="25%">3.4.9</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1501,7 +1489,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.22.2</td>
+<td width="25%">2.25.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li>
@@ -1577,7 +1565,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">9.1.9.0</td>
+<td width="25%">9.1.10.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-shell">org.apache.hbase:hbase-shell</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1589,7 +1577,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.10.8</td>
+<td width="25%">1.10.19</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">org.apache.hbase:hbase-annotations</a></li>
@@ -1669,7 +1657,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1681,7 +1669,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-testing-util">org.apache.hbase:hbase-testing-util</a></li></ol></td></tr></table></td></tr></table></div></div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/dependency-info.html b/hbase-archetypes/dependency-info.html
index 6da127d..bb6f065 100644
--- a/hbase-archetypes/dependency-info.html
+++ b/hbase-archetypes/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Archetypes">Apache HBase - Archetypes</a>


[20/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
index 38500dd..e1e4110 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
@@ -35,3706 +35,3705 @@
 <span class="sourceLineNo">027</span>import java.net.BindException;<a name="line.27"></a>
 <span class="sourceLineNo">028</span>import java.net.InetAddress;<a name="line.28"></a>
 <span class="sourceLineNo">029</span>import java.net.InetSocketAddress;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.security.PrivilegedExceptionAction;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.ArrayList;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.Collection;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.Collections;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.util.Comparator;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import java.util.HashMap;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import java.util.HashSet;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import java.util.Iterator;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import java.util.List;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import java.util.Map;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import java.util.Objects;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import java.util.Map.Entry;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import java.util.Set;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import java.util.SortedMap;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import java.util.TreeMap;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import java.util.TreeSet;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import java.util.concurrent.ConcurrentMap;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.util.concurrent.ConcurrentSkipListMap;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.util.concurrent.CountDownLatch;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.util.concurrent.TimeUnit;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.util.concurrent.locks.ReentrantReadWriteLock;<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>import javax.management.MalformedObjectNameException;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import javax.management.ObjectName;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import javax.servlet.http.HttpServlet;<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.commons.lang.SystemUtils;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.commons.lang.math.RandomUtils;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.commons.logging.Log;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.commons.logging.LogFactory;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.conf.Configuration;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.fs.FileSystem;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.fs.Path;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.Abortable;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.ChoreService;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.ClockOutOfSyncException;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.CoordinatedStateManager;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.CoordinatedStateManagerFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.HConstants;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.HealthCheckChore;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.PleaseHoldException;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.ScheduledChore;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.ServerName;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.Stoppable;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.TableDescriptors;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.TableName;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.YouAreDeadException;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.ZNodeClearer;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.client.ConnectionUtils;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.client.Put;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.client.RpcRetryingCallerFactory;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.client.locking.EntityLock;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.client.locking.LockServiceClient;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.conf.ConfigurationManager;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.coordination.SplitLogWorkerCoordination;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.exceptions.UnknownProtocolException;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.executor.ExecutorService;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.fs.HFileSystem;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.io.hfile.HFile;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.io.util.MemorySizeUtil;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.ipc.RpcCallContext;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.ipc.RpcServerInterface;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.ipc.ServerRpcController;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.HMaster;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.mob.MobCacheConfig;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.procedure.RegionServerProcedureManagerHost;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.quotas.FileSystemUtilizationChore;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.quotas.QuotaUtil;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.quotas.RegionServerRpcQuotaManager;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.quotas.RegionServerSpaceQuotaManager;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionConfiguration;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionProgress;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.regionserver.handler.CloseMetaHandler;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.regionserver.handler.CloseRegionHandler;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.regionserver.handler.RegionReplicaFlushHandler;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.regionserver.throttle.FlushThroughputControllerFactory;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.regionserver.throttle.ThroughputController;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.regionserver.wal.MetricsWAL;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.regionserver.wal.WALActionsListener;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.replication.regionserver.Replication;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.replication.regionserver.ReplicationLoad;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.security.User;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.*;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceCall;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionStoreSequenceIds;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.Coprocessor;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.Coprocessor.Builder;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionServerInfo;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier.RegionSpecifierType;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUse;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportRequest;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRSFatalErrorRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.trace.SpanReceiverHost;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.util.Addressing;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.util.CompressionTest;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.FSTableDescriptors;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.HasThread;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.util.JSONBean;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.ServerRegionReplicaUtil;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.Sleeper;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.wal.WAL;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.wal.WALFactory;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.zookeeper.ClusterStatusTracker;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.zookeeper.RecoveringRegionWatcher;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.zookeeper.ZKClusterId;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.zookeeper.ZKSplitLog;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hadoop.metrics2.util.MBeans;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hadoop.util.ReflectionUtils;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hadoop.util.StringUtils;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>import org.apache.zookeeper.KeeperException;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.zookeeper.KeeperException.NoNodeException;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.zookeeper.data.Stat;<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>import com.google.common.annotations.VisibleForTesting;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import com.google.common.base.Preconditions;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import com.google.common.collect.Maps;<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>import sun.misc.Signal;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>import sun.misc.SignalHandler;<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>/**<a name="line.215"></a>
-<span class="sourceLineNo">216</span> * HRegionServer makes a set of HRegions available to clients. It checks in with<a name="line.216"></a>
-<span class="sourceLineNo">217</span> * the HMaster. There are many HRegionServers in a single HBase deployment.<a name="line.217"></a>
-<span class="sourceLineNo">218</span> */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.219"></a>
-<span class="sourceLineNo">220</span>@SuppressWarnings({ "deprecation"})<a name="line.220"></a>
-<span class="sourceLineNo">221</span>public class HRegionServer extends HasThread implements<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    RegionServerServices, LastSequenceId, ConfigurationObserver {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  // Time to pause if master says 'please hold'. Make configurable if needed.<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  private static final int INIT_PAUSE_TIME_MS = 1000;<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  public static final String REGION_LOCK_AWAIT_TIME_SEC =<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      "hbase.regionserver.region.lock.await.time.sec";<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public static final int DEFAULT_REGION_LOCK_AWAIT_TIME_SEC = 300;  // 5 min<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  private static final Log LOG = LogFactory.getLog(HRegionServer.class);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * For testing only!  Set to true to skip notifying region assignment to master .<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="MS_SHOULD_BE_FINAL")<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  public static boolean TEST_SKIP_REPORTING_TRANSITION = false;<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>  /*<a name="line.237"></a>
-<span class="sourceLineNo">238</span>   * Strings to be used in forming the exception message for<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * RegionsAlreadyInTransitionException.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   */<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  protected static final String OPEN = "OPEN";<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  protected static final String CLOSE = "CLOSE";<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  //RegionName vs current action in progress<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  //true - if open region action in progress<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  //false - if close region action in progress<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  protected final ConcurrentMap&lt;byte[], Boolean&gt; regionsInTransitionInRS =<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    new ConcurrentSkipListMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  // Cache flushing<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  protected MemStoreFlusher cacheFlusher;<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>  protected HeapMemoryManager hMemManager;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected CountDownLatch initLatch = null;<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>  /**<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * Cluster connection to be shared by services.<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * Initialized at server startup and closed when server shuts down.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * Clients must never close it explicitly.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   */<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  protected ClusterConnection clusterConnection;<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /*<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   * Long-living meta table locator, which is created when the server is started and stopped<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   * when server shuts down. References to this locator shall be used to perform according<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * operations in EventHandlers. Primary reason for this decision is to make it mockable<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * for tests.<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   */<a name="line.268"></a>
-<span class="sourceLineNo">269</span>  protected MetaTableLocator metaTableLocator;<a name="line.269"></a>
-<span class="sourceLineNo">270</span><a name="line.270"></a>
-<span class="sourceLineNo">271</span>  // Watch if a region is out of recovering state from ZooKeeper<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  @SuppressWarnings("unused")<a name="line.272"></a>
-<span class="sourceLineNo">273</span>  private RecoveringRegionWatcher recoveringRegionWatcher;<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>  /**<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * Go here to get table descriptors.<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   */<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  protected TableDescriptors tableDescriptors;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  // Replication services. If no replication, this handler will be null.<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  protected ReplicationSourceService replicationSourceHandler;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  protected ReplicationSinkService replicationSinkHandler;<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  // Compactions<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public CompactSplit compactSplitThread;<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>  /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * Map of regions currently being served by this region server. Key is the<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * encoded region name.  All access should be synchronized.<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   */<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected final Map&lt;String, Region&gt; onlineRegions = new ConcurrentHashMap&lt;&gt;();<a name="line.291"></a>
-<span class="sourceLineNo">292</span><a name="line.292"></a>
-<span class="sourceLineNo">293</span>  /**<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   * Map of encoded region names to the DataNode locations they should be hosted on<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   * We store the value as InetSocketAddress since this is used only in HDFS<a name="line.295"></a>
-<span class="sourceLineNo">296</span>   * API (create() that takes favored nodes as hints for placing file blocks).<a name="line.296"></a>
-<span class="sourceLineNo">297</span>   * We could have used ServerName here as the value class, but we'd need to<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   * convert it to InetSocketAddress at some point before the HDFS API call, and<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   * it seems a bit weird to store ServerName since ServerName refers to RegionServers<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   * and here we really mean DataNode locations.<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   */<a name="line.301"></a>
-<span class="sourceLineNo">302</span>  protected final Map&lt;String, InetSocketAddress[]&gt; regionFavoredNodesMap =<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      new ConcurrentHashMap&lt;&gt;();<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>  /**<a name="line.305"></a>
-<span class="sourceLineNo">306</span>   * Set of regions currently being in recovering state which means it can accept writes(edits from<a name="line.306"></a>
-<span class="sourceLineNo">307</span>   * previous failed region server) but not reads. A recovering region is also an online region.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>   */<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  protected final Map&lt;String, Region&gt; recoveringRegions = Collections<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      .synchronizedMap(new HashMap&lt;String, Region&gt;());<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  // Leases<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  protected Leases leases;<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>  // Instance of the hbase executor service.<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  protected ExecutorService service;<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>  // If false, the file system has become unavailable<a name="line.318"></a>
-<span class="sourceLineNo">319</span>  protected volatile boolean fsOk;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  protected HFileSystem fs;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  protected HFileSystem walFs;<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  // Set when a report to the master comes back with a message asking us to<a name="line.323"></a>
-<span class="sourceLineNo">324</span>  // shutdown. Also set by call to stop when debugging or running unit tests<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  // of HRegionServer in isolation.<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  private volatile boolean stopped = false;<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  // Go down hard. Used if file system becomes unavailable and also in<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  // debugging and unit tests.<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  private volatile boolean abortRequested;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  ConcurrentMap&lt;String, Integer&gt; rowlocks = new ConcurrentHashMap&lt;&gt;();<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>  // A state before we go into stopped state.  At this stage we're closing user<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  // space regions.<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  private boolean stopping = false;<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>  volatile boolean killed = false;<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  protected final Configuration conf;<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  private Path rootDir;<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  private Path walRootDir;<a name="line.343"></a>
-<span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>  protected final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  final int numRetries;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  protected final int threadWakeFrequency;<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  protected final int msgInterval;<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  protected final int numRegionsToReport;<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>  // Stub to do region server status calls against the master.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>  private volatile RegionServerStatusService.BlockingInterface rssStub;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  private volatile LockService.BlockingInterface lockStub;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  // RPC client. Used to make the stub above that does region server status checking.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  RpcClient rpcClient;<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  private RpcRetryingCallerFactory rpcRetryingCallerFactory;<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>  private UncaughtExceptionHandler uncaughtExceptionHandler;<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  // Info server. Default access so can be used by unit tests. REGIONSERVER<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  // is name of the webapp and the attribute name used stuffing this instance<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  // into web context.<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  protected InfoServer infoServer;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  private JvmPauseMonitor pauseMonitor;<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  /** region server process name */<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  public static final String REGIONSERVER = "regionserver";<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>  MetricsRegionServer metricsRegionServer;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  MetricsTable metricsTable;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  private SpanReceiverHost spanReceiverHost;<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  /**<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * ChoreService used to schedule tasks that we want to run periodically<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   */<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  private final ChoreService choreService;<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  /*<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * Check for compactions requests.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  ScheduledChore compactionChecker;<a name="line.385"></a>
-<span class="sourceLineNo">386</span><a name="line.386"></a>
-<span class="sourceLineNo">387</span>  /*<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   * Check for flushes<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   */<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  ScheduledChore periodicFlusher;<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  protected volatile WALFactory walFactory;<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  // WAL roller. log is protected rather than private to avoid<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  // eclipse warning when accessed by inner classes<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  protected final LogRoller walRoller;<a name="line.396"></a>
-<span class="sourceLineNo">397</span><a name="line.397"></a>
-<span class="sourceLineNo">398</span>  // flag set after we're done setting up server threads<a name="line.398"></a>
-<span class="sourceLineNo">399</span>  final AtomicBoolean online = new AtomicBoolean(false);<a name="line.399"></a>
-<span class="sourceLineNo">400</span><a name="line.400"></a>
-<span class="sourceLineNo">401</span>  // zookeeper connection and watcher<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  protected ZooKeeperWatcher zooKeeper;<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  // master address tracker<a name="line.404"></a>
-<span class="sourceLineNo">405</span>  private MasterAddressTracker masterAddressTracker;<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>  // Cluster Status Tracker<a name="line.407"></a>
-<span class="sourceLineNo">408</span>  protected ClusterStatusTracker clusterStatusTracker;<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>  // Log Splitting Worker<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  private SplitLogWorker splitLogWorker;<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  // A sleeper that sleeps for msgInterval.<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  protected final Sleeper sleeper;<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  private final int operationTimeout;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private final int shortOperationTimeout;<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  private final RegionServerAccounting regionServerAccounting;<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>  // Cache configuration and block cache reference<a name="line.421"></a>
-<span class="sourceLineNo">422</span>  protected CacheConfig cacheConfig;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  // Cache configuration for mob<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  final MobCacheConfig mobCacheConfig;<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>  /** The health check chore. */<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  private HealthCheckChore healthCheckChore;<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  /** The nonce manager chore. */<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  private ScheduledChore nonceManagerChore;<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>  private Map&lt;String, com.google.protobuf.Service&gt; coprocessorServiceHandlers = Maps.newHashMap();<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>  /**<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   * The server name the Master sees us as.  Its made from the hostname the<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * master passes us, port, and server startcode. Gets set after registration<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * against  Master.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  protected ServerName serverName;<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>  /*<a name="line.441"></a>
-<span class="sourceLineNo">442</span>   * hostname specified by hostname config<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   */<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  protected String useThisHostnameInstead;<a name="line.444"></a>
-<span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>  // key to the config parameter of server hostname<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  // the specification of server hostname is optional. The hostname should be resolvable from<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  // both master and region server<a name="line.448"></a>
-<span class="sourceLineNo">449</span>  @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  final static String RS_HOSTNAME_KEY = "hbase.regionserver.hostname";<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  protected final static String MASTER_HOSTNAME_KEY = "hbase.master.hostname";<a name="line.452"></a>
-<span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>  /**<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * This servers startcode.<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   */<a name="line.456"></a>
-<span class="sourceLineNo">457</span>  protected final long startcode;<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>  /**<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   * Unique identifier for the cluster we are a part of.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   */<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  private String clusterId;<a name="line.462"></a>
-<span class="sourceLineNo">463</span><a name="line.463"></a>
-<span class="sourceLineNo">464</span>  /**<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * MX Bean for RegionServerInfo<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   */<a name="line.466"></a>
-<span class="sourceLineNo">467</span>  private ObjectName mxBean = null;<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>  /**<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   * Chore to clean periodically the moved region list<a name="line.470"></a>
-<span class="sourceLineNo">471</span>   */<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  private MovedRegionsCleaner movedRegionsCleaner;<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>  // chore for refreshing store files for secondary regions<a name="line.474"></a>
-<span class="sourceLineNo">475</span>  private StorefileRefresherChore storefileRefresher;<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>  private RegionServerCoprocessorHost rsHost;<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>  private RegionServerProcedureManagerHost rspmHost;<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>  private RegionServerRpcQuotaManager rsQuotaManager;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  private RegionServerSpaceQuotaManager rsSpaceQuotaManager;<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  /**<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * Nonce manager. Nonces are used to make operations like increment and append idempotent<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * in the case where client doesn't receive the response from a successful operation and<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   * retries. We track the successful ops for some time via a nonce sent by client and handle<a name="line.487"></a>
-<span class="sourceLineNo">488</span>   * duplicate operations (currently, by failing them; in future we might use MVCC to return<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * result). Nonces are also recovered from WAL during, recovery; however, the caveats (from<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   * HBASE-3787) are:<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   * - WAL recovery is optimized, and under high load we won't read nearly nonce-timeout worth<a name="line.491"></a>
-<span class="sourceLineNo">492</span>   *   of past records. If we don't read the records, we don't read and recover the nonces.<a name="line.492"></a>
-<span class="sourceLineNo">493</span>   *   Some WALs within nonce-timeout at recovery may not even be present due to rolling/cleanup.<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   * - There's no WAL recovery during normal region move, so nonces will not be transfered.<a name="line.494"></a>
-<span class="sourceLineNo">495</span>   * We can have separate additional "Nonce WAL". It will just contain bunch of numbers and<a name="line.495"></a>
-<span class="sourceLineNo">496</span>   * won't be flushed on main path - because WAL itself also contains nonces, if we only flush<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * it before memstore flush, for a given nonce we will either see it in the WAL (if it was<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   * never flushed to disk, it will be part of recovery), or we'll see it as part of the nonce<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * log (or both occasionally, which doesn't matter). Nonce log file can be deleted after the<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * latest nonce in it expired. It can also be recovered during move.<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   */<a name="line.501"></a>
-<span class="sourceLineNo">502</span>  final ServerNonceManager nonceManager;<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span>  private UserProvider userProvider;<a name="line.504"></a>
-<span class="sourceLineNo">505</span><a name="line.505"></a>
-<span class="sourceLineNo">506</span>  protected final RSRpcServices rpcServices;<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>  protected BaseCoordinatedStateManager csm;<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>  /**<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   * Configuration manager is used to register/deregister and notify the configuration observers<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * when the regionserver is notified that there was a change in the on disk configs.<a name="line.512"></a>
-<span class="sourceLineNo">513</span>   */<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  protected final ConfigurationManager configurationManager;<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>  @VisibleForTesting<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  CompactedHFilesDischarger compactedFileDischarger;<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>  private volatile ThroughputController flushThroughputController;<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>  protected SecureBulkLoadManager secureBulkLoadManager;<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>  protected FileSystemUtilizationChore fsUtilizationChore;<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>  /**<a name="line.525"></a>
-<span class="sourceLineNo">526</span>   * Starts a HRegionServer at the default location.<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   */<a name="line.527"></a>
-<span class="sourceLineNo">528</span>  public HRegionServer(Configuration conf) throws IOException, InterruptedException {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    this(conf, CoordinatedStateManagerFactory.getCoordinatedStateManager(conf));<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>  /**<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * Starts a HRegionServer at the default location<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @param csm implementation of CoordinatedStateManager to be used<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   */<a name="line.535"></a>
-<span class="sourceLineNo">536</span>  public HRegionServer(Configuration conf, CoordinatedStateManager csm) throws IOException {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    super("RegionServer");  // thread name<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    this.fsOk = true;<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    this.conf = conf;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    MemorySizeUtil.checkForClusterFreeHeapMemoryLimit(this.conf);<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    HFile.checkHFileVersion(this.conf);<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    checkCodecs(this.conf);<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    this.userProvider = UserProvider.instantiate(conf);<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    FSUtils.setupShortCircuitRead(this.conf);<a name="line.544"></a>
-<span class="sourceLineNo">545</span><a name="line.545"></a>
-<span class="sourceLineNo">546</span>    Replication.decorateRegionServerConfiguration(this.conf);<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    // Disable usage of meta replicas in the regionserver<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    this.conf.setBoolean(HConstants.USE_META_REPLICAS, false);<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    // Config'ed params<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    this.numRetries = this.conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.551"></a>
-<span class="sourceLineNo">552</span>        HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    this.threadWakeFrequency = conf.getInt(HConstants.THREAD_WAKE_FREQUENCY, 10 * 1000);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    this.msgInterval = conf.getInt("hbase.regionserver.msginterval", 3 * 1000);<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>    this.sleeper = new Sleeper(this.msgInterval, this);<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>    boolean isNoncesEnabled = conf.getBoolean(HConstants.HBASE_RS_NONCES_ENABLED, true);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    this.nonceManager = isNoncesEnabled ? new ServerNonceManager(this.conf) : null;<a name="line.559"></a>
-<span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>    this.numRegionsToReport = conf.getInt(<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      "hbase.regionserver.numregionstoreport", 10);<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>    this.operationTimeout = conf.getInt(<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);<a name="line.566"></a>
-<span class="sourceLineNo">567</span><a name="line.567"></a>
-<span class="sourceLineNo">568</span>    this.shortOperationTimeout = conf.getInt(<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      HConstants.HBASE_RPC_SHORTOPERATION_TIMEOUT_KEY,<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      HConstants.DEFAULT_HBASE_RPC_SHORTOPERATION_TIMEOUT);<a name="line.570"></a>
-<span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span>    this.abortRequested = false;<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    this.stopped = false;<a name="line.573"></a>
-<span class="sourceLineNo">574</span><a name="line.574"></a>
-<span class="sourceLineNo">575</span>    rpcServices = createRpcServices();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    this.startcode = System.currentTimeMillis();<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    if (this instanceof HMaster) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      useThisHostnameInstead = conf.get(MASTER_HOSTNAME_KEY);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    } else {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      useThisHostnameInstead = conf.get(RS_HOSTNAME_KEY);<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    }<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    String hostName = shouldUseThisHostnameInstead() ? useThisHostnameInstead :<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      rpcServices.isa.getHostName();<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    serverName = ServerName.valueOf(hostName, rpcServices.isa.getPort(), startcode);<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>    rpcControllerFactory = RpcControllerFactory.instantiate(this.conf);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    rpcRetryingCallerFactory = RpcRetryingCallerFactory.instantiate(this.conf);<a name="line.587"></a>
-<span class="sourceLineNo">588</span><a name="line.588"></a>
-<span class="sourceLineNo">589</span>    // login the zookeeper client principal (if using security)<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    ZKUtil.loginClient(this.conf, HConstants.ZK_CLIENT_KEYTAB_FILE,<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      HConstants.ZK_CLIENT_KERBEROS_PRINCIPAL, hostName);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    // login the server principal (if using secure Hadoop)<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    login(userProvider, hostName);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    // init superusers and add the server principal (if using security)<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    // or process owner as default super user.<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    Superusers.initialize(conf);<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>    regionServerAccounting = new RegionServerAccounting(conf);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>    cacheConfig = new CacheConfig(conf);<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    mobCacheConfig = new MobCacheConfig(conf);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      @Override<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      public void uncaughtException(Thread t, Throwable e) {<a name="line.603"></a>
-<span class="sourceLineNo">604</span>        abort("Uncaught exception in service thread " + t.getName(), e);<a name="line.604"></a>
-<span class="sourceLineNo">605</span>      }<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    };<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>    initializeFileSystem();<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    service = new ExecutorService(getServerName().toShortString());<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>    // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      // Open connection to zookeeper and set primary watcher<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      zooKeeper = new ZooKeeperWatcher(conf, getProcessName() + ":" +<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span>      this.csm = (BaseCoordinatedStateManager) csm;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      this.csm.initialize(this);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      this.csm.start();<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>      masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      masterAddressTracker.start();<a name="line.624"></a>
-<span class="sourceLineNo">625</span><a name="line.625"></a>
-<span class="sourceLineNo">626</span>      clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      clusterStatusTracker.start();<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    this.configurationManager = new ConfigurationManager();<a name="line.629"></a>
-<span class="sourceLineNo">630</span><a name="line.630"></a>
-<span class="sourceLineNo">631</span>    rpcServices.start();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    putUpWebUI();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    this.walRoller = new LogRoller(this, this);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    this.choreService = new ChoreService(getServerName().toString(), true);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    this.flushThroughputController = FlushThroughputControllerFactory.create(this, conf);<a name="line.635"></a>
-<span class="sourceLineNo">636</span><a name="line.636"></a>
-<span class="sourceLineNo">637</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>        @Override<a name="line.639"></a>
-<span class="sourceLineNo">640</span>        public void handle(Signal signal) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>          getConfiguration().reloadConfiguration();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>          configurationManager.notifyAllObservers(getConfiguration());<a name="line.642"></a>
-<span class="sourceLineNo">643</span>        }<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      });<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    // Create the CompactedFileDischarger chore service. This chore helps to<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    // remove the compacted files<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    // that will no longer be used in reads.<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    // Default is 2 mins. The default value for TTLCleaner is 5 mins so we set this to<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    // 2 mins so that compacted files can be archived before the TTLCleaner runs<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    int cleanerInterval =<a name="line.651"></a>
-<span class="sourceLineNo">652</span>        conf.getInt("hbase.hfile.compaction.discharger.interval", 2 * 60 * 1000);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    this.compactedFileDischarger =<a name="line.653"></a>
-<span class="sourceLineNo">654</span>        new CompactedHFilesDischarger(cleanerInterval, this, this);<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    choreService.scheduleChore(compactedFileDischarger);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span>  private void initializeFileSystem() throws IOException {<a name="line.658"></a>
-<span class="sourceLineNo">659</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    // (unless all is set to defaults).<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.670"></a>
-<span class="sourceLineNo">671</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.671"></a>
-<span class="sourceLineNo">672</span>  }<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>    return new FSTableDescriptors(this.conf,<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false);<a name="line.676"></a>
-<span class="sourceLineNo">677</span>  }<a name="line.677"></a>
-<span class="sourceLineNo">678</span><a name="line.678"></a>
-<span class="sourceLineNo">679</span>  protected void setInitLatch(CountDownLatch latch) {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    this.initLatch = latch;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>  /*<a name="line.683"></a>
-<span class="sourceLineNo">684</span>   * Returns true if configured hostname should be used<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   */<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  protected boolean shouldUseThisHostnameInstead() {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    return useThisHostnameInstead != null &amp;&amp; !useThisHostnameInstead.isEmpty();<a name="line.687"></a>
-<span class="sourceLineNo">688</span>  }<a name="line.688"></a>
-<span class="sourceLineNo">689</span><a name="line.689"></a>
-<span class="sourceLineNo">690</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    user.login("hbase.regionserver.keytab.file",<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      "hbase.regionserver.kerberos.principal", host);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>  }<a name="line.693"></a>
-<span class="sourceLineNo">694</span><a name="line.694"></a>
-<span class="sourceLineNo">695</span>  protected void waitForMasterActive(){<a name="line.695"></a>
-<span class="sourceLineNo">696</span>  }<a name="line.696"></a>
-<span class="sourceLineNo">697</span><a name="line.697"></a>
-<span class="sourceLineNo">698</span>  protected String getProcessName() {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    return REGIONSERVER;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
-<span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>  protected boolean canCreateBaseZNode() {<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    return false;<a name="line.703"></a>
-<span class="sourceLineNo">704</span>  }<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>  protected boolean canUpdateTableDescriptor() {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>    return false;<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  }<a name="line.708"></a>
-<span class="sourceLineNo">709</span><a name="line.709"></a>
-<span class="sourceLineNo">710</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return new RSRpcServices(this);<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  }<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>  protected void configureInfoServer() {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    return RSDumpServlet.class;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>  }<a name="line.721"></a>
-<span class="sourceLineNo">722</span><a name="line.722"></a>
-<span class="sourceLineNo">723</span>  @Override<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    /*<a name="line.725"></a>
-<span class="sourceLineNo">726</span>     * No stacking of instances is allowed for a single service name<a name="line.726"></a>
-<span class="sourceLineNo">727</span>     */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.728"></a>
-<span class="sourceLineNo">729</span>        instance.getDescriptorForType();<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      LOG.error("Coprocessor service " + serviceName<a name="line.732"></a>
-<span class="sourceLineNo">733</span>          + " already registered, rejecting request from " + instance);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      return false;<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    }<a name="line.735"></a>
-<span class="sourceLineNo">736</span><a name="line.736"></a>
-<span class="sourceLineNo">737</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    if (LOG.isDebugEnabled()) {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      LOG.debug("Registered regionserver coprocessor service: service=" + serviceName);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    }<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    return true;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span>  /**<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * the local server. Safe to use going to local or remote server.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * Create this instance in a method can be intercepted and mocked in tests.<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @throws IOException<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   */<a name="line.749"></a>
-<span class="sourceLineNo">750</span>  @VisibleForTesting<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    // and remote invocations.<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      serverName, rpcServices, rpcServices);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   * @param c<a name="line.761"></a>
-<span class="sourceLineNo">762</span>   * @throws IOException<a name="line.762"></a>
-<span class="sourceLineNo">763</span>   */<a name="line.763"></a>
-<span class="sourceLineNo">764</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.764"></a>
-<span class="sourceLineNo">765</span>    // check to see if the codec list is available:<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    if (codecs == null) return;<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    for (String codec : codecs) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>        throw new IOException("Compression codec " + codec +<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          " not supported, aborting RS construction");<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    }<a name="line.773"></a>
-<span class="sourceLineNo">774</span>  }<a name="line.774"></a>
-<span class="sourceLineNo">775</span><a name="line.775"></a>
-<span class="sourceLineNo">776</span>  public String getClusterId() {<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    return this.clusterId;<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  }<a name="line.778"></a>
-<span class="sourceLineNo">779</span><a name="line.779"></a>
-<span class="sourceLineNo">780</span>  /**<a name="line.780"></a>
-<span class="sourceLineNo">781</span>   * Setup our cluster connection if not already initialized.<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   * @throws IOException<a name="line.782"></a>
-<span class="sourceLineNo">783</span>   */<a name="line.783"></a>
-<span class="sourceLineNo">784</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    if (clusterConnection == null) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span>      clusterConnection = createClusterConnection();<a name="line.786"></a>
-<span class="sourceLineNo">787</span>      metaTableLocator = new MetaTableLocator();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    }<a name="line.788"></a>
-<span class="sourceLineNo">789</span>  }<a name="line.789"></a>
-<span class="sourceLineNo">790</span><a name="line.790"></a>
-<span class="sourceLineNo">791</span>  /**<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   * All initialization needed before we go register with Master.<a name="line.792"></a>
-<span class="sourceLineNo">793</span>   *<a name="line.793"></a>
-<span class="sourceLineNo">794</span>   * @throws IOException<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * @throws InterruptedException<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   */<a name="line.796"></a>
-<span class="sourceLineNo">797</span>  private void preRegistrationInitialization(){<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    try {<a name="line.798"></a>
-<span class="sourceLineNo">799</span>      setupClusterConnection();<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>      this.secureBulkLoadManager = new SecureBulkLoadManager(this.conf, clusterConnection);<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      this.secureBulkLoadManager.start();<a name="line.802"></a>
-<span class="sourceLineNo">803</span><a name="line.803"></a>
-<span class="sourceLineNo">804</span>      // Health checker thread.<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      if (isHealthCheckerConfigured()) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>        int sleepTime = this.conf.getInt(HConstants.HEALTH_CHORE_WAKE_FREQ,<a name="line.806"></a>
-<span class="sourceLineNo">807</span>          HConstants.DEFAULT_THREAD_WAKE_FREQUENCY);<a name="line.807"></a>
-<span class="sourceLineNo">808</span>        healthCheckChore = new HealthCheckChore(sleepTime, this, getConfiguration());<a name="line.808"></a>
-<span class="sourceLineNo">809</span>      }<a name="line.809"></a>
-<span class="sourceLineNo">810</span><a name="line.810"></a>
-<span class="sourceLineNo">811</span>      initializeZooKeeper();<a name="line.811"></a>
-<span class="sourceLineNo">812</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.812"></a>
-<span class="sourceLineNo">813</span>        initializeThreads();<a name="line.813"></a>
-<span class="sourceLineNo">814</span>      }<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    } catch (Throwable t) {<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      // Call stop if error or process will stick around for ever since server<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      // puts up non-daemon threads.<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      this.rpcServices.stop();<a name="line.818"></a>
-<span class="sourceLineNo">819</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    }<a name="line.820"></a>
-<span class="sourceLineNo">821</span>  }<a name="line.821"></a>
-<span class="sourceLineNo">822</span><a name="line.822"></a>
-<span class="sourceLineNo">823</span>  /**<a name="line.823"></a>
-<span class="sourceLineNo">824</span>   * Bring up connection to zk ensemble and then wait until a master for this<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * cluster and then after that, wait until cluster 'up' flag has been set.<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * This is the order in which master does things.<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * Finally open long-living server short-circuit connection.<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * @throws IOException<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * @throws InterruptedException<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   */<a name="line.830"></a>
-<span class="sourceLineNo">831</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    justification="cluster Id znode read would give us correct response")<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    // block until a master is available.  No point in starting up if no master<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    // running.<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    // when ready.<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.841"></a>
-<span class="sourceLineNo">842</span><a name="line.842"></a>
-<span class="sourceLineNo">843</span>    doLatch(this.initLatch);<a name="line.843"></a>
-<span class="sourceLineNo">844</span><a name="line.844"></a>
-<span class="sourceLineNo">845</span>    // Retrieve clusterId<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    // Since cluster status is now up<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    // ID should have already been set by HMaster<a name="line.847"></a>
-<span class="sourceLineNo">848</span>    try {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      if (clusterId == null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        this.abort("Cluster ID has not been set");<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      LOG.info("ClusterId : "+clusterId);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    } catch (KeeperException e) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      this.abort("Failed to retrieve Cluster ID",e);<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    }<a name="line.856"></a>
-<span class="sourceLineNo">857</span><a name="line.857"></a>
-<span class="sourceLineNo">858</span>    // In case colocated master, wait here till it's active.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    // So backup masters won't start as regionservers.<a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // This is to avoid showing backup masters as regionservers<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // in master web UI, or assigning any region to them.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    waitForMasterActive();<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    if (isStopped() || isAborted()) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      return; // No need for further initialization<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    }<a name="line.865"></a>
-<span class="sourceLineNo">866</span><a name="line.866"></a>
-<span class="sourceLineNo">867</span>    // watch for snapshots and other procedures<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    try {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      rspmHost.loadProcedures(conf);<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      rspmHost.initialize(this);<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    } catch (KeeperException e) {<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    }<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    // register watcher for recovering regions<a name="line.875"></a>
-<span class="sourceLineNo">876</span>    this.recoveringRegionWatcher = new RecoveringRegionWatcher(this.zooKeeper, this);<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  }<a name="line.877"></a>
-<span class="sourceLineNo">878</span><a name="line.878"></a>
-<span class="sourceLineNo">879</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED",<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      justification="We don't care about the return")<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private void doLatch(final CountDownLatch latch) throws InterruptedException {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    if (latch != null) {<a name="line.882"></a>
-<span class="sourceLineNo">883</span>      // Result is ignored intentionally but if I remove the below, findbugs complains (the<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      // above justification on this method doesn't seem to suppress it).<a name="line.884"></a>
-<span class="sourceLineNo">885</span>      boolean result = latch.await(20, TimeUnit.SECONDS);<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    }<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  /**<a name="line.889"></a>
-<span class="sourceLineNo">890</span>   * Utilty method to wait indefinitely on a znode availability while checking<a name="

<TRUNCATED>

[46/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 7811d43..702dfb7 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -3177,7 +3177,7 @@
 <td><a href="#org.apache.hadoop.hbase.master.assignment.SplitTableRegionProcedure.java">org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>72</td></tr>
+<td>73</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.master.assignment.UnassignProcedure.java">org/apache/hadoop/hbase/master/assignment/UnassignProcedure.java</a></td>
 <td>0</td>
@@ -4132,7 +4132,7 @@
 <td><a href="#org.apache.hadoop.hbase.regionserver.HRegionServer.java">org/apache/hadoop/hbase/regionserver/HRegionServer.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>137</td></tr>
+<td>136</td></tr>
 <tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.java">org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.java</a></td>
 <td>0</td>
@@ -7234,7 +7234,7 @@
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_blocks.html#NeedBraces">NeedBraces</a></td>
-<td>1971</td>
+<td>1972</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>coding</td>
@@ -7287,7 +7287,7 @@
 <tr class="b">
 <td>imports</td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_imports.html#AvoidStarImport">AvoidStarImport</a></td>
-<td>14</td>
+<td>15</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
@@ -7308,7 +7308,7 @@
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_imports.html#UnusedImports">UnusedImports</a>
 <ul>
 <li>processJavadoc: <tt>&quot;true&quot;</tt></li></ul></td>
-<td>87</td>
+<td>86</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td>indentation</td>
@@ -7326,12 +7326,12 @@
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocTagContinuationIndentation">JavadocTagContinuationIndentation</a>
 <ul>
 <li>offset: <tt>&quot;2&quot;</tt></li></ul></td>
-<td>811</td>
+<td>798</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>3214</td>
+<td>3227</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>misc</td>
@@ -7349,7 +7349,7 @@
 <ul>
 <li>max: <tt>&quot;100&quot;</tt></li>
 <li>ignorePattern: <tt>&quot;^package.*|^import.*|a href|href|http://|https://|ftp://|org.apache.thrift.|com.google.protobuf.|hbase.protobuf.generated&quot;</tt></li></ul></td>
-<td>922</td>
+<td>921</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td></td>
@@ -13127,7 +13127,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 43 has parse error. Missed HTML close tag 'TableName'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>181</td></tr>
 <tr class="a">
@@ -16676,7 +16676,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 64 has parse error. Missed HTML close tag 'code'. Sometimes it means that close tag missed for one of previous tags.</td>
 <td>1956</td></tr>
 <tr class="b">
@@ -18892,25 +18892,25 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>252</td></tr>
+<td>259</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>255</td></tr>
+<td>262</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
-<td>347</td></tr>
+<td>353</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>387</td></tr></table></div>
+<td>393</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.client.SecureBulkLoadClient.java">org/apache/hadoop/hbase/client/SecureBulkLoadClient.java</h3>
 <table border="0" class="table table-striped">
@@ -21335,7 +21335,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 37 has parse error. Details: no viable alternative at input '&lt;ColumnFamily,' while parsing HTML_ELEMENT</td>
 <td>29</td></tr></table></div>
 <div class="section">
@@ -36914,7 +36914,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 80 has parse error. Details: no viable alternative at input '&lt;TableName&gt; tables)\n   * Used when region startKeys of each table is available, input as &lt;TableName,' while parsing HTML_TAG</td>
 <td>206</td></tr>
 <tr class="a">
@@ -36944,19 +36944,19 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 66 has parse error. Details: no viable alternative at input '&lt;table,' while parsing HTML_ELEMENT</td>
 <td>334</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 66 has parse error. Details: no viable alternative at input '&lt;table,' while parsing HTML_ELEMENT</td>
 <td>342</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 32 has parse error. Details: no viable alternative at input '&lt;tableName,' while parsing HTML_ELEMENT</td>
 <td>351</td></tr>
 <tr class="b">
@@ -36968,7 +36968,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 24 has parse error. Details: no viable alternative at input '&lt;tableName,' while parsing HTML_ELEMENT</td>
 <td>379</td></tr>
 <tr class="b">
@@ -36980,7 +36980,7 @@
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 43 has parse error. Details: no viable alternative at input '&lt;table,' while parsing HTML_ELEMENT</td>
 <td>421</td></tr>
 <tr class="b">
@@ -36998,7 +36998,7 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>JavadocTagContinuationIndentation</td>
+<td>NonEmptyAtclauseDescription</td>
 <td>Javadoc comment at column 36 has parse error. Details: no viable alternative at input '&lt;TableName,' while parsing HTML_ELEMENT</td>
 <td>487</td></tr></table></div>
 <div class="section">
@@ -45392,68 +45392,92 @@
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
+<td>AvoidStarImport</td>
+<td>Using the '.*' form of import should be avoided - java.util.*.</td>
+<td>28</td></tr>
+<tr class="a">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.HColumnDescriptor.</td>
-<td>45</td></tr>
-<tr class="a">
+<td>42</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.regionserver.HRegionFileSystem' import.</td>
-<td>66</td></tr>
-<tr class="b">
+<td>63</td></tr>
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>151</td></tr>
-<tr class="a">
+<td>148</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 8, expected level should be 10.</td>
-<td>152</td></tr>
+<td>149</td></tr>
+<tr class="a">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>indentation</td>
+<td>Indentation</td>
+<td>'if' child have incorrect indentation level 10, expected level should be 12.</td>
+<td>150</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 10, expected level should be 12.</td>
-<td>153</td></tr>
+<td>151</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if' child have incorrect indentation level 10, expected level should be 12.</td>
-<td>154</td></tr>
+<td>'if rcurly' have incorrect indentation level 8, expected level should be 10.</td>
+<td>152</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'if rcurly' have incorrect indentation level 8, expected level should be 10.</td>
+<td>'else' child have incorrect indentation level 10, expected level should be 12.</td>
+<td>154</td></tr>
+<tr class="a">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>indentation</td>
+<td>Indentation</td>
+<td>'else rcurly' have incorrect indentation level 8, expected level should be 10.</td>
 <td>155</td></tr>
+<tr class="b">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>indentation</td>
+<td>Indentation</td>
+<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
+<td>156</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'else' child have incorrect indentation level 10, expected level should be 12.</td>
+<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>157</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'else rcurly' have incorrect indentation level 8, expected level should be 10.</td>
+<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>158</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
+<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>159</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
+<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>160</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
@@ -45471,13 +45495,13 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
+<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>163</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
+<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>164</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
@@ -45495,13 +45519,13 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
+<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>167</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
+<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>168</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
@@ -45519,13 +45543,13 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
+<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>171</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
+<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>172</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
@@ -45543,13 +45567,13 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
+<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>175</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
+<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>176</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
@@ -45567,13 +45591,13 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
+<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>179</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
+<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>180</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
@@ -45591,13 +45615,13 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
+<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>183</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
+<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>184</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
@@ -45625,28 +45649,28 @@
 <td>188</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
-<td>189</td></tr>
+<td>sizes</td>
+<td>LineLength</td>
+<td>Line is longer than 100 characters (found 106).</td>
+<td>191</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>190</td></tr>
+<td>213</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
-<td>191</td></tr>
+<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
+<td>214</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>sizes</td>
-<td>LineLength</td>
-<td>Line is longer than 100 characters (found 106).</td>
-<td>194</td></tr>
+<td>indentation</td>
+<td>Indentation</td>
+<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
+<td>215</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
@@ -45657,44 +45681,44 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>217</td></tr>
+<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
+<td>218</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>218</td></tr>
+<td>219</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>219</td></tr>
+<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
+<td>220</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
+<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>221</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>222</td></tr>
+<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
+<td>223</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
-<td>223</td></tr>
+<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
+<td>224</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>224</td></tr>
+<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
+<td>225</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
@@ -45735,138 +45759,120 @@
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
+<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>232</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
-<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>233</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
-<td>234</td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
-<td>235</td></tr>
+<td>233</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>indentation</td>
-<td>Indentation</td>
-<td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
-<td>236</td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>342</td></tr>
-<tr class="a">
+<td>339</td></tr>
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>390</td></tr>
-<tr class="b">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>javadoc</td>
-<td>NonEmptyAtclauseDescription</td>
-<td>At-clause should have a non-empty description.</td>
-<td>412</td></tr>
+<td>387</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>413</td></tr>
+<td>408</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>426</td></tr>
+<td>409</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>455</td></tr>
+<td>422</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>485</td></tr>
+<td>451</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>sizes</td>
-<td>LineLength</td>
-<td>Line is longer than 100 characters (found 112).</td>
-<td>573</td></tr>
+<td>javadoc</td>
+<td>NonEmptyAtclauseDescription</td>
+<td>At-clause should have a non-empty description.</td>
+<td>481</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
+<td>blocks</td>
+<td>NeedBraces</td>
+<td>'if' construct must use '{}'s.</td>
+<td>499</td></tr>
+<tr class="a">
+<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>663</td></tr></table></div>
+<td>679</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.assignment.UnassignProcedure.java">org/apache/hadoop/hbase/master/assignment/UnassignProcedure.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.master.procedure.RSProcedureDispatcher.RegionCloseOperation' import.</td>
 <td>39</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.master.RegionState.State' import.</td>
 <td>40</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.regionserver.RegionServerAbortedException' import.</td>
 <td>47</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>149</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>EmptyBlock</td>
 <td>Must have at least one statement.</td>
 <td>180</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>198</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>212</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -45875,13 +45881,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.assignment.Util.java">org/apache/hadoop/hbase/master/assignment/Util.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>FinalClass</td>
@@ -45890,457 +45896,457 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer.java">org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.annotations.VisibleForTesting' import.</td>
 <td>58</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 107).</td>
 <td>116</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 104).</td>
 <td>133</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td>134</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td>135</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 262 lines (max allowed is 150).</td>
 <td>176</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 114).</td>
 <td>286</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 107).</td>
 <td>360</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
 <td>361</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>362</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'type' must be private and have accessor methods.</td>
 <td>494</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td>495</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 33 should have line break after.</td>
 <td>495</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 34 should have line break after.</td>
 <td>497</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>LeftCurly</td>
 <td>'{' at column 32 should have line break after.</td>
 <td>499</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'region' must be private and have accessor methods.</td>
 <td>503</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'server' must be private and have accessor methods.</td>
 <td>504</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'region' must be private and have accessor methods.</td>
 <td>523</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'fromServer' must be private and have accessor methods.</td>
 <td>524</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'toServer' must be private and have accessor methods.</td>
 <td>525</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td>535</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'fromServer' must be private and have accessor methods.</td>
 <td>544</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'fromRegion' must be private and have accessor methods.</td>
 <td>545</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'toServer' must be private and have accessor methods.</td>
 <td>546</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'toRegion' must be private and have accessor methods.</td>
 <td>547</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>MethodParamPad</td>
 <td>'(' is preceded with whitespace.</td>
 <td>557</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>571</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>572</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>575</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>576</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>577</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>578</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>579</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>581</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>582</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td>582</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>583</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>584</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>585</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>586</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>588</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>589</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 113).</td>
 <td>589</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>590</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 109).</td>
 <td>590</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>591</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>592</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>593</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>594</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>595</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 103).</td>
 <td>606</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 113).</td>
 <td>627</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>684</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
 <td>685</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>686</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 108).</td>
 <td>706</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 108).</td>
 <td>721</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'for' have incorrect indentation level 10, expected level should be 6.</td>
 <td>961</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'for' child have incorrect indentation level 13, expected level should be 8.</td>
 <td>962</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'for rcurly' have incorrect indentation level 10, expected level should be 6.</td>
 <td>963</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 10, expected level should be 6.</td>
 <td>964</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'for' have incorrect indentation level 10, expected level should be 6.</td>
 <td>969</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'for' child have incorrect indentation level 12, expected level should be 8.</td>
 <td>970</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'for rcurly' have incorrect indentation level 10, expected level should be 6.</td>
 <td>971</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 10, expected level should be 6.</td>
 <td>972</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1054</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1055</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1057</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1058</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1088</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1095</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1118</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1120</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>1189</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -46349,13 +46355,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.balancer.ClusterLoadState.java">org/apache/hadoop/hbase/master/balancer/ClusterLoadState.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -46364,31 +46370,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.balancer.FavoredStochasticBalancer.java">org/apache/hadoop/hbase/master/balancer/FavoredStochasticBalancer.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.ServerName.NON_STARTCODE' import.</td>
 <td>24</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.collect.Lists' import.</td>
 <td>50</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'segregateRegionsAndAssignRegionsWithFavoredNodes' have incorrect indentation level 2, expected level should be 4.</td>
 <td>199</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>InnerAssignment</td>
@@ -46397,25 +46403,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.balancer.LoadBalancerFactory.java">org/apache/hadoop/hbase/master/balancer/LoadBalancerFactory.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
 <td>21</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>design</td>
 <td>HideUtilityClassConstructor</td>
 <td>Utility classes should not have a public or default constructor.</td>
 <td>29</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -46424,13 +46430,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.balancer.MetricsBalancerSourceImpl.java">org/apache/hadoop/hbase/master/balancer/MetricsBalancerSourceImpl.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -46439,43 +46445,43 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.balancer.MetricsStochasticBalancerSourceImpl.java">org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancerSourceImpl.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def' child have incorrect indentation level 8, expected level should be one of the following: 4, 6.</td>
 <td>42</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 8, expected level should be one of the following: 4, 6.</td>
 <td>44</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 10, expected level should be one of the following: 6, 8.</td>
 <td>46</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 8, expected level should be one of the following: 4, 6.</td>
 <td>47</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 6, expected level should be one of the following: 2, 4.</td>
 <td>48</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -46484,19 +46490,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.balancer.RegionInfoComparator.java">org/apache/hadoop/hbase/master/balancer/RegionInfoComparator.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>34</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -46505,79 +46511,79 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.balancer.RegionLocationFinder.java">org/apache/hadoop/hbase/master/balancer/RegionLocationFinder.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.hbase.master.MasterServices' import.</td>
 <td>42</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.cache.CacheBuilder' import.</td>
 <td>46</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td>66</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 8, expected level should be one of the following: 4, 6.</td>
 <td>77</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 10, expected level should be one of the following: 6, 8.</td>
 <td>79</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 8, expected level should be one of the following: 4, 6.</td>
 <td>85</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def modifier' have incorrect indentation level 8, expected level should be one of the following: 4, 6.</td>
 <td>87</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def' child have incorrect indentation level 10, expected level should be one of the following: 6, 8.</td>
 <td>89</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'method def rcurly' have incorrect indentation level 8, expected level should be one of the following: 4, 6.</td>
 <td>90</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'object def rcurly' have incorrect indentation level 6, expected level should be one of the following: 2, 4.</td>
 <td>91</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>216</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
@@ -46586,13 +46592,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.balancer.ServerAndLoad.java">org/apache/hadoop/hbase/master/balancer/ServerAndLoad.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -46601,211 +46607,211 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.balancer.SimpleLoadBalancer.java">org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.collect.MinMaxPriorityQueue' import.</td>
 <td>43</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 104).</td>
 <td>113</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>115</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 114).</td>
 <td>115</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 112).</td>
 <td>134</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>MethodLength</td>
 <td>Method length is 206 lines (max allowed is 150).</td>
 <td>246</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>266</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>316</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>320</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>335</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>354</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>357</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>366</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>387</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>389</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>408</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>438</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td>456</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 109).</td>
 <td>461</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 107).</td>
 <td>462</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>')' is preceded with whitespace.</td>
 <td>462</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 112).</td>
 <td>464</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 107).</td>
 <td>499</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 120).</td>
 <td>500</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 109).</td>
 <td>501</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>513</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'else' construct must use '{}'s.</td>
 <td>514</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td>530</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>537</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
 <td>558</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>559</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>565</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>582</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -46814,157 +46820,157 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.balancer.StochasticLoadBalancer.java">org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.collect.Lists' import.</td>
 <td>53</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 8, expected level should be 6.</td>
 <td>245</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>260</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>262</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>444</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>556</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>826</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>967</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>968</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>969</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>970</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>971</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>972</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>973</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>974</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>975</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>976</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>977</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>978</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>979</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>980</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>981</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>982</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 119).</td>
 <td>992</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -46973,19 +46979,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.BaseFileCleanerDelegate.java">org/apache/hadoop/hbase/master/cleaner/BaseFileCleanerDelegate.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'com.google.common.base.Predicate' import.</td>
 <td>23</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
@@ -46994,19 +47000,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.BaseLogCleanerDelegate.java">org/apache/hadoop/hbase/master/cleaner/BaseLogCleanerDelegate.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.fs.FileStatus' import.</td>
 <td>21</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>annotation</td>
 <td>MissingDeprecated</td>
@@ -47015,25 +47021,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.CleanerChore.java">org/apache/hadoop/hbase/master/cleaner/CleanerChore.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>117</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>258</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -47042,19 +47048,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.FileCleanerDelegate.java">org/apache/hadoop/hbase/master/cleaner/FileCleanerDelegate.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configurable' import.</td>
 <td>21</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -47063,19 +47069,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.HFileCleaner.java">org/apache/hadoop/hbase/master/cleaner/HFileCleaner.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'org.apache.hadoop.conf.Configuration' import.</td>
 <td>30</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -47084,19 +47090,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.HFileLinkCleaner.java">org/apache/hadoop/hbase/master/cleaner/HFileLinkCleaner.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>50</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -47105,49 +47111,49 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.ReplicationZKNodeCleaner.java">org/apache/hadoop/hbase/master/cleaner/ReplicationZKNodeCleaner.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.util.Map.Entry' import.</td>
 <td>27</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>73</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>104</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>136</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>156</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>180</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -47156,13 +47162,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner.java">org/apache/hadoop/hbase/master/cleaner/TimeToLiveHFileCleaner.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -47171,13 +47177,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.cleaner.TimeToLiveLogCleaner.java">org/apache/hadoop/hbase/master/cleaner/TimeToLiveLogCleaner.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -47186,25 +47192,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.locking.LockManager.java">org/apache/hadoop/hbase/master/locking/LockManager.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.IOException' import.</td>
 <td>30</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 101).</td>
 <td>77</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -47213,37 +47219,37 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.locking.LockProcedure.java">org/apache/hadoop/hbase/master/locking/LockProcedure.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
 <td>Wrong order for 'java.io.IOException' import.</td>
 <td>38</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>210</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>213</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>239</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -47252,13 +47258,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.normalizer.MergeNormalizationPlan.java">org/apache/hadoop/hbase/master/normalizer/MergeNormalizationPlan.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -47267,13 +47273,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.normalizer.RegionNormalizerChore.java">org/apache/hadoop/hbase/master/normalizer/RegionNormalizerChore.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -47282,13 +47288,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.normalizer.SplitNormalizationPlan.java">org/apache/hadoop/hbase/master/normalizer/SplitNormalizationPlan.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>ImportOrder</td>
@@ -47297,13 +47303,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.procedure.AbstractStateMachineNamespaceProcedure.java">org/apache/hadoop/hbase/master/procedure/AbstractStateMachineNamespaceProcedure.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -47312,19 +47318,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.procedure.AbstractStateMachineRegionProcedure.java">org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>85</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -47333,19 +47339,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.procedure.AbstractStateMachineTableProcedure.java">org/apache/hadoop/hbase/master/procedure/AbstractStateMachineTableProcedure.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
 <td>82</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -47354,193 +47360,193 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.master.procedure.AddColumnFamilyProcedure.java">org/apache/hadoop/hbase/master/procedure/AddColumnFamilyProcedure.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><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>85</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>86</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>87</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>88</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>89</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>90</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>91</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>92</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>93</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>94</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>95</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>96</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>97</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>98</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>99</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>100</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>101</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' have incorrect indentation level 8, expected level should be 10.</td>
 <td>102</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if' child have incorrect indentation level 10, expected level should be 12.</td>
 <td>103</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'if rcurly' have incorrect indentation level 8, expected level should be 10.</td>
 <td>105</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>106</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'case' child have incorrect indentation level 6, expected level should be 8.</td>
 <td>107</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'block' child have incorrect indentation level 8, expected level should be 10.</td>
 <td>108</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
 <td>194</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>225</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>246</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>247</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>299</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>300</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
 <td>327</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
@@ -47549,61 

<TRUNCATED>

[05/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/dependencies.html b/hbase-archetypes/hbase-shaded-client-project/dependencies.html
index 0d520bb..90c0278 100644
--- a/hbase-archetypes/hbase-shaded-client-project/dependencies.html
+++ b/hbase-archetypes/hbase-shaded-client-project/dependencies.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>
@@ -166,7 +166,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr></table></div></div><a name="Project_Transitive_Dependencies"></a>
 <div class="section">
@@ -293,9 +293,9 @@
 <tr class="b">
 <td>commons-cli</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">commons-cli</a></td>
-<td>1.3.1</td>
+<td>1.4</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-codec</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-codec/">commons-codec</a></td>
@@ -328,10 +328,10 @@
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License</a></td></tr>
 <tr class="b">
 <td>commons-io</td>
-<td><a class="externalLink" href="http://commons.apache.org/io/">commons-io</a></td>
-<td>2.4</td>
+<td><a class="externalLink" href="http://commons.apache.org/proper/commons-io/">commons-io</a></td>
+<td>2.5</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-lang</td>
 <td><a class="externalLink" href="http://commons.apache.org/lang/">commons-lang</a></td>
@@ -353,304 +353,298 @@
 <tr class="b">
 <td>io.dropwizard.metrics</td>
 <td><a class="externalLink" href="http://metrics.codahale.com/metrics-core/">metrics-core</a></td>
-<td>3.1.2</td>
+<td>3.2.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a></td></tr>
 <tr class="a">
 <td>io.netty</td>
 <td><a class="externalLink" href="http://netty.io/netty-all/">netty-all</a></td>
-<td>4.1.1.Final</td>
+<td>4.1.9.Final</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
 <tr class="b">
-<td>javax.activation</td>
-<td><a class="externalLink" href="http://java.sun.com/products/javabeans/jaf/index.jsp">activation</a></td>
-<td>1.1</td>
-<td>jar</td>
-<td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDLv1.0.html">Common Development and Distribution License (CDDL) v1.0</a></td></tr>
-<tr class="a">
 <td>javax.inject</td>
 <td><a class="externalLink" href="http://code.google.com/p/atinject/">javax.inject</a></td>
 <td>1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>javax.xml.bind</td>
-<td><a class="externalLink" href="https://jaxb.dev.java.net/">jaxb-api</a></td>
-<td>2.2.2</td>
+<td><a class="externalLink" href="http://jaxb.java.net/">jaxb-api</a></td>
+<td>2.2.12</td>
 <td>jar</td>
-<td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>-<a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
-<tr class="a">
+<td><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>-<a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
+<tr class="b">
 <td>net.java.dev.jets3t</td>
 <td><a class="externalLink" href="http://www.jets3t.org">jets3t</a></td>
 <td>0.9.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.avro</td>
 <td><a class="externalLink" href="http://avro.apache.org">avro</a></td>
 <td>1.7.4</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/compress/">commons-compress</a></td>
 <td>1.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-crypto/">commons-crypto</a></td>
 <td>1.0.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math</a></td>
 <td>2.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math3</a></td>
 <td>3.1.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-client">curator-client</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-framework">curator-framework</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-recipes">curator-recipes</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.directory.api</td>
 <td><a class="externalLink" href="http://directory.apache.org/api-parent/api-asn1-parent/api-asn1-api/">api-asn1-api</a></td>
 <td>1.0.0-M20</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.directory.api</td>
 <td><a class="externalLink" href="http://directory.apache.org/api-parent/api-util/">api-util</a></td>
 <td>1.0.0-M20</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.directory.server</td>
 <td><a class="externalLink" href="http://directory.apache.org/apacheds/1.5/apacheds-i18n">apacheds-i18n</a></td>
 <td>2.0.0-M15</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.directory.server</td>
 <td><a class="externalLink" href="http://directory.apache.org/apacheds/1.5/apacheds-kerberos-codec">apacheds-kerberos-codec</a></td>
 <td>2.0.0-M15</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-annotations</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-auth</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-core</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-yarn-api</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-yarn-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-client">hbase-client</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-common">hbase-common</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop-compat">hbase-hadoop-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop2-compat">hbase-hadoop2-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics">hbase-metrics</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics-api">hbase-metrics-api</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol">hbase-protocol</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol-shaded">hbase-protocol-shaded</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.htrace</td>
 <td><a class="externalLink" href="http://incubator.apache.org/projects/htrace.html">htrace-core</a></td>
-<td>3.1.0-incubating</td>
+<td>3.2.0-incubating</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">httpclient</a></td>
-<td>4.5.2</td>
+<td>4.5.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">httpcore</a></td>
-<td>4.4.4</td>
+<td>4.4.6</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.zookeeper</td>
 <td>zookeeper</td>
-<td>3.4.8</td>
+<td>3.4.9</td>
 <td>jar</td>
-<td>-</td></tr>
-<tr class="a">
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-core-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-jaxrs</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>-<a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-mapper-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-xc</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>-<a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jettison</td>
-<td><a class="externalLink" href="http://codehaus.org/jettison/">jettison</a></td>
-<td>1.3.3</td>
+<td><a class="externalLink" href="https://github.com/jettison-json/jettison">jettison</a></td>
+<td>1.3.8</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.mortbay.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-parent/project/modules/jetty">jetty</a></td>
 <td>6.1.26</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.mortbay.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty/jetty-parent/project/jetty-util">jetty-util</a></td>
 <td>6.1.26</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
-<td>1.7.7</td>
+<td>1.7.24</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-log4j12</a></td>
-<td>1.7.7</td>
+<td>1.7.24</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.tukaani</td>
 <td><a class="externalLink" href="http://tukaani.org/xz/java.html">xz</a></td>
 <td>1.0</td>
 <td>jar</td>
 <td>Public Domain</td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.xerial.snappy</td>
 <td><a class="externalLink" href="http://code.google.com/p/snappy-java/">snappy-java</a></td>
 <td>1.0.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>xmlenc</td>
 <td><a class="externalLink" href="http://xmlenc.sourceforge.net">xmlenc</a></td>
 <td>0.52</td>
@@ -1029,21 +1023,21 @@
 <tr class="a">
 <td>org.glassfish.hk2</td>
 <td><a class="externalLink" href="https://hk2.java.net/hk2-api">hk2-api</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
 <tr class="b">
 <td>org.glassfish.hk2</td>
 <td><a class="externalLink" href="https://hk2.java.net/hk2-locator">hk2-locator</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
 <tr class="a">
 <td>org.glassfish.hk2</td>
 <td><a class="externalLink" href="https://hk2.java.net/hk2-utils">hk2-utils</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
@@ -1057,56 +1051,56 @@
 <tr class="a">
 <td>org.glassfish.hk2.external</td>
 <td><a class="externalLink" href="https://hk2.java.net/external/aopalliance-repackaged">aopalliance-repackaged</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
 <tr class="b">
 <td>org.glassfish.hk2.external</td>
 <td><a class="externalLink" href="https://hk2.java.net/external/javax.inject">javax.inject</a></td>
-<td>2.4.0-b34</td>
+<td>2.5.0-b32</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></td></tr>
 <tr class="a">
 <td>org.glassfish.jersey.bundles.repackaged</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/project/jersey-guava/">jersey-guava</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
 <td>org.glassfish.jersey.containers</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">jersey-container-servlet-core</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="a">
 <td>org.glassfish.jersey.core</td>
 <td><a class="externalLink" href="https://jersey.java.net/jersey-client/">jersey-client</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
 <td>org.glassfish.jersey.core</td>
 <td><a class="externalLink" href="https://jersey.java.net/jersey-common/">jersey-common</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="a">
 <td>org.glassfish.jersey.core</td>
 <td><a class="externalLink" href="https://jersey.java.net/jersey-server/">jersey-server</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
 <tr class="b">
 <td>org.glassfish.jersey.media</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-media-jaxb/">jersey-media-jaxb</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
@@ -1148,7 +1142,7 @@
 <tr class="b">
 <td>org.javassist</td>
 <td><a class="externalLink" href="http://www.javassist.org/">javassist</a></td>
-<td>3.18.1-GA</td>
+<td>3.20.0-GA</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/MPL-1.1.html">MPL 1.1</a>-<a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1.html">LGPL 2.1</a>-<a class="externalLink" href="http://www.apache.org/licenses/">Apache License 2.0</a></td></tr></table></div><a name="Project_Transitive_Dependencies_system"></a>
@@ -1285,16 +1279,16 @@
 <p><b>Description: </b>Types that extend and augment the Java Collections Framework.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/collections/">http://commons.apache.org/collections/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>commons-io:commons-io:jar:2.4 (compile) <img id="_img19" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep18', '_img19' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep18" style="display:none">
+<li>commons-io:commons-io:jar:2.5 (compile) <img id="_img19" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep18', '_img19' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep18" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
-<th>Commons IO</th></tr>
+<th>Apache Commons IO</th></tr>
 <tr class="b">
 <td>
-<p><b>Description: </b>The Commons IO library contains utility classes, stream implementations, file filters, 
+<p><b>Description: </b>The Apache Commons IO library contains utility classes, stream implementations, file filters, 
 file comparators, endian transformation classes, and much more.</p>
-<p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/io/">http://commons.apache.org/io/</a></p>
-<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
+<p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/proper/commons-io/">http://commons.apache.org/proper/commons-io/</a></p>
+<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
 <li>com.google.protobuf:protobuf-java:jar:2.5.0 (compile) <img id="_img21" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep20', '_img21' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep20" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
@@ -1305,7 +1299,7 @@ file comparators, endian transformation classes, and much more.</p>
     extensible format.</p>
 <p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/protobuf">http://code.google.com/p/protobuf</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/bsd-license.php">New BSD license</a></p></td></tr></table></div></li>
-<li>org.apache.htrace:htrace-core:jar:3.1.0-incubating (compile) <img id="_img23" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep22', '_img23' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep22" style="display:none">
+<li>org.apache.htrace:htrace-core:jar:3.2.0-incubating (compile) <img id="_img23" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep22', '_img23' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep22" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>htrace-core</th></tr>
@@ -1412,7 +1406,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Shaded protobuf protocol classes used by HBase internally.</p>
 <p><b>URL: </b><a class="externalLink" href="http://hbase.apache.org/hbase-protocol-shaded">http://hbase.apache.org/hbase-protocol-shaded</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>io.netty:netty-all:jar:4.1.1.Final (compile) <img id="_img37" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep36', '_img37' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep36" style="display:none">
+<li>io.netty:netty-all:jar:4.1.9.Final (compile) <img id="_img37" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep36', '_img37' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep36" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Netty/All-in-One</th></tr>
@@ -1423,14 +1417,14 @@ The following provides more details on the included cryptographic software:
     clients.</p>
 <p><b>URL: </b><a class="externalLink" href="http://netty.io/netty-all/">http://netty.io/netty-all/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.zookeeper:zookeeper:jar:3.4.8 (compile) <img id="_img39" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep38', '_img39' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep38" style="display:none">
+<li>org.apache.zookeeper:zookeeper:jar:3.4.9 (compile) <img id="_img39" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep38', '_img39' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep38" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>zookeeper</th></tr>
 <tr class="b">
 <td>
 <p><b>Description: </b>There is currently no description associated with this project.</p>
-<p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li>
+<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
 <li>org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13 (compile) <img id="_img41" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep40', '_img41' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep40" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
@@ -1460,7 +1454,7 @@ built on Jackson JSON processor</p>
     that uses byte arrays directly instead of java Strings and chars</p>
 <p><b>URL: </b><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">http://nexus.sonatype.org/oss-repository-hosting.html/joni</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></p></td></tr></table></div></li>
-<li>io.dropwizard.metrics:metrics-core:jar:3.1.2 (compile) <img id="_img47" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep46', '_img47' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep46" style="display:none">
+<li>io.dropwizard.metrics:metrics-core:jar:3.2.1 (compile) <img id="_img47" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep46', '_img47' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep46" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Metrics Core</th></tr>
@@ -1471,7 +1465,7 @@ built on Jackson JSON processor</p>
         components in your production environment.</p>
 <p><b>URL: </b><a class="externalLink" href="http://metrics.codahale.com/metrics-core/">http://metrics.codahale.com/metrics-core/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.curator:curator-recipes:jar:2.11.0 (compile) <img id="_img49" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep48', '_img49' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep48" style="display:none">
+<li>org.apache.curator:curator-recipes:jar:2.12.0 (compile) <img id="_img49" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep48', '_img49' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep48" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Curator Recipes</th></tr>
@@ -1480,7 +1474,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>All of the recipes listed on the ZooKeeper recipes doc (except two phase commit).</p>
 <p><b>URL: </b><a class="externalLink" href="http://curator.apache.org/curator-recipes">http://curator.apache.org/curator-recipes</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.curator:curator-framework:jar:2.11.0 (compile) <img id="_img51" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep50', '_img51' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep50" style="display:none">
+<li>org.apache.curator:curator-framework:jar:2.12.0 (compile) <img id="_img51" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep50', '_img51' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep50" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Curator Framework</th></tr>
@@ -1489,7 +1483,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>High-level API that greatly simplifies using ZooKeeper.</p>
 <p><b>URL: </b><a class="externalLink" href="http://curator.apache.org/curator-framework">http://curator.apache.org/curator-framework</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.curator:curator-client:jar:2.11.0 (compile) <img id="_img53" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep52', '_img53' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep52" style="display:none">
+<li>org.apache.curator:curator-client:jar:2.12.0 (compile) <img id="_img53" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep52', '_img53' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep52" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Curator Client</th></tr>
@@ -1713,7 +1707,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>The jetty xml utilities.</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a><a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.22.2 (test) <img id="_img101" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep100', '_img101' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep100" style="display:none">
+<li>org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1 (test) <img id="_img101" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep100', '_img101' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep100" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-container-servlet-core</th></tr>
@@ -1723,7 +1717,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">https://jersey.java.net/project/jersey-container-servlet-core/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.hk2.external:javax.inject:jar:2.4.0-b34 (test) <img id="_img103" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep102', '_img103' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep102" style="display:none">
+<li>org.glassfish.hk2.external:javax.inject:jar:2.5.0-b32 (test) <img id="_img103" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep102', '_img103' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep102" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>javax.inject:1 as OSGi bundle</th></tr>
@@ -1732,7 +1726,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Injection API (JSR 330) version ${javax.inject.version} repackaged as OSGi bundle</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/external/javax.inject">https://hk2.java.net/external/javax.inject</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.core:jersey-common:jar:2.22.2 (test) <img id="_img105" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep104', '_img105' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep104" style="display:none">
+<li>org.glassfish.jersey.core:jersey-common:jar:2.25.1 (test) <img id="_img105" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep104', '_img105' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep104" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-core-common</th></tr>
@@ -1751,7 +1745,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Common Annotations for the JavaTM Platform API</p>
 <p><b>URL: </b><a class="externalLink" href="http://jcp.org/en/jsr/detail?id=250">http://jcp.org/en/jsr/detail?id=250</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.22.2 (test) <img id="_img109" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep108', '_img109' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep108" style="display:none">
+<li>org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.25.1 (test) <img id="_img109" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep108', '_img109' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep108" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-repackaged-guava</th></tr>
@@ -1760,7 +1754,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Jersey Guava Repackaged</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/project/project/jersey-guava/">https://jersey.java.net/project/project/jersey-guava/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
-<li>org.glassfish.hk2:hk2-api:jar:2.4.0-b34 (test) <img id="_img111" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep110', '_img111' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep110" style="display:none">
+<li>org.glassfish.hk2:hk2-api:jar:2.5.0-b32 (test) <img id="_img111" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep110', '_img111' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep110" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>HK2 API module</th></tr>
@@ -1770,7 +1764,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-api">https://hk2.java.net/hk2-api</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.hk2:hk2-utils:jar:2.4.0-b34 (test) <img id="_img113" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep112', '_img113' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep112" style="display:none">
+<li>org.glassfish.hk2:hk2-utils:jar:2.5.0-b32 (test) <img id="_img113" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep112', '_img113' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep112" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>HK2 Implementation Utilities</th></tr>
@@ -1779,7 +1773,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>HK2 Implementation Utilities</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-utils">https://hk2.java.net/hk2-utils</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li>
-<li>org.glassfish.hk2.external:aopalliance-repackaged:jar:2.4.0-b34 (test) <img id="_img115" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep114', '_img115' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep114" style="display:none">
+<li>org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b32 (test) <img id="_img115" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep114', '_img115' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep114" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>aopalliance version 1.0 repackaged as a module</th></tr>
@@ -1788,7 +1782,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Dependency Injection Kernel</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/external/aopalliance-repackaged">https://hk2.java.net/external/aopalliance-repackaged</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.hk2:hk2-locator:jar:2.4.0-b34 (test) <img id="_img117" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep116', '_img117' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep116" style="display:none">
+<li>org.glassfish.hk2:hk2-locator:jar:2.5.0-b32 (test) <img id="_img117" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep116', '_img117' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep116" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>ServiceLocator Default Implementation</th></tr>
@@ -1798,7 +1792,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://hk2.java.net/hk2-locator">https://hk2.java.net/hk2-locator</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/nonav/public/CDDL+GPL_1_1.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div>
 <ul>
-<li>org.javassist:javassist:jar:3.18.1-GA (test) <img id="_img119" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep118', '_img119' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep118" style="display:none">
+<li>org.javassist:javassist:jar:3.20.0-GA (test) <img id="_img119" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep118', '_img119' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep118" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Javassist</th></tr>
@@ -1817,7 +1811,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>See http://wiki.glassfish.java.net/Wiki.jsp?page=JdkSpiOsgi for more information</p>
 <p><b>URL: </b><a class="externalLink" href="http://glassfish.org/osgi-resource-locator/">http://glassfish.org/osgi-resource-locator/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></p></td></tr></table></div></li></ul></li>
-<li>org.glassfish.jersey.core:jersey-server:jar:2.22.2 (test) <img id="_img123" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep122', '_img123' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep122" style="display:none">
+<li>org.glassfish.jersey.core:jersey-server:jar:2.25.1 (test) <img id="_img123" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep122', '_img123' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep122" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-core-server</th></tr>
@@ -1827,7 +1821,7 @@ built on Jackson JSON processor</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-server/">https://jersey.java.net/jersey-server/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div>
 <ul>
-<li>org.glassfish.jersey.core:jersey-client:jar:2.22.2 (test) <img id="_img125" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep124', '_img125' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep124" style="display:none">
+<li>org.glassfish.jersey.core:jersey-client:jar:2.25.1 (test) <img id="_img125" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep124', '_img125' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep124" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-core-client</th></tr>
@@ -1836,7 +1830,7 @@ built on Jackson JSON processor</p>
 <p><b>Description: </b>Jersey core client implementation</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-client/">https://jersey.java.net/jersey-client/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></p></td></tr></table></div></li>
-<li>org.glassfish.jersey.media:jersey-media-jaxb:jar:2.22.2 (test) <img id="_img127" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep126', '_img127' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep126" style="display:none">
+<li>org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1 (test) <img id="_img127" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep126', '_img127' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep126" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-media-jaxb</th></tr>
@@ -1893,7 +1887,7 @@ Jackson JSON processor's data binding functionality.</p>
 Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://jackson.codehaus.org">http://jackson.codehaus.org</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a><a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></p></td></tr></table></div></li></ul></li>
-<li>commons-cli:commons-cli:jar:1.3.1 (compile) <img id="_img139" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep138', '_img139' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep138" style="display:none">
+<li>commons-cli:commons-cli:jar:1.4 (compile) <img id="_img139" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep138', '_img139' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep138" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Commons CLI</th></tr>
@@ -1901,7 +1895,7 @@ Jackson JSON processor's data binding functionality.</p>
 <td>
 <p><b>Description: </b>Apache Commons CLI provides a simple API for presenting, processing and validating a command line interface.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">http://commons.apache.org/proper/commons-cli/</a></p>
-<p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
+<p><b>Project License: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
 <li>org.apache.commons:commons-math:jar:2.2 (compile) <img id="_img141" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep140', '_img141' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep140" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
@@ -1986,7 +1980,7 @@ Jackson JSON processor's data binding functionality.</p>
         over hadoop version differences</p>
 <p><b>URL: </b><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop2-compat">http://hbase.apache.org/hbase-hadoop2-compat</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.slf4j:slf4j-log4j12:jar:1.7.7 (compile) <img id="_img159" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep158', '_img159' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep158" style="display:none">
+<li>org.slf4j:slf4j-log4j12:jar:1.7.24 (compile) <img id="_img159" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep158', '_img159' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep158" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>SLF4J LOG4J-12 Binding</th></tr>
@@ -1996,7 +1990,7 @@ Jackson JSON processor's data binding functionality.</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.slf4j.org">http://www.slf4j.org</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></p></td></tr></table></div>
 <ul>
-<li>org.slf4j:slf4j-api:jar:1.7.7 (compile) <img id="_img161" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep160', '_img161' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep160" style="display:none">
+<li>org.slf4j:slf4j-api:jar:1.7.24 (compile) <img id="_img161" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep160', '_img161' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep160" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>SLF4J API Module</th></tr>
@@ -2108,14 +2102,14 @@ Supported protocols include: Echo, Finger, FTP, NNTP, NTP, POP3(S), SMTP(S), Tel
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-json/">https://jersey.java.net/jersey-json/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div>
 <ul>
-<li>org.codehaus.jettison:jettison:jar:1.3.3 (compile) <img id="_img185" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep184', '_img185' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep184" style="display:none">
+<li>org.codehaus.jettison:jettison:jar:1.3.8 (compile) <img id="_img185" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep184', '_img185' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep184" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Jettison</th></tr>
 <tr class="b">
 <td>
 <p><b>Description: </b>A StAX implementation for JSON.</p>
-<p><b>URL: </b><a class="externalLink" href="http://codehaus.org/jettison/">http://codehaus.org/jettison/</a></p>
+<p><b>URL: </b><a class="externalLink" href="https://github.com/jettison-json/jettison">https://github.com/jettison-json/jettison</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p></td></tr></table></div></li>
 <li>com.sun.xml.bind:jaxb-impl:jar:2.2.3-1 (compile) <img id="_img187" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep186', '_img187' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep186" style="display:none">
 <table border="0" class="bodyTable">
@@ -2157,7 +2151,7 @@ Supported protocols include: Echo, Finger, FTP, NNTP, NTP, POP3(S), SMTP(S), Tel
 <p><b>URL: </b><a class="externalLink" href="http://www.jets3t.org">http://www.jets3t.org</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.httpcomponents:httpcore:jar:4.4.4 (compile) <img id="_img195" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep194', '_img195' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep194" style="display:none">
+<li>org.apache.httpcomponents:httpcore:jar:4.4.6 (compile) <img id="_img195" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep194', '_img195' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep194" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache HttpCore</th></tr>
@@ -2303,7 +2297,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Auth - Java HTTP SPNEGO</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.httpcomponents:httpclient:jar:4.5.2 (compile) <img id="_img225" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep224', '_img225' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep224" style="display:none">
+<li>org.apache.httpcomponents:httpclient:jar:4.5.3 (compile) <img id="_img225" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep224', '_img225' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep224" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache HttpClient</th></tr>
@@ -2392,26 +2386,16 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>javax.xml.bind:jaxb-api:jar:2.2.2 (compile) <img id="_img245" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep244', '_img245' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep244" style="display:none">
+<li>javax.xml.bind:jaxb-api:jar:2.2.12 (compile) <img id="_img245" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep244', '_img245' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep244" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
-<th>JAXB API bundle for GlassFish V3</th></tr>
+<th>Java Architecture for XML Binding</th></tr>
 <tr class="b">
 <td>
 <p><b>Description: </b>JAXB (JSR 222) API</p>
-<p><b>URL: </b><a class="externalLink" href="https://jaxb.dev.java.net/">https://jaxb.dev.java.net/</a></p>
-<p><b>Project License: </b><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div>
-<ul>
-<li>javax.activation:activation:jar:1.1 (compile) <img id="_img247" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep246', '_img247' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep246" style="display:none">
-<table border="0" class="bodyTable">
-<tr class="a">
-<th>JavaBeans Activation Framework (JAF)</th></tr>
-<tr class="b">
-<td>
-<p><b>Description: </b>JavaBeans Activation Framework (JAF) is a standard extension to the Java platform that lets you take advantage of standard services to: determine the type of an arbitrary piece of data; encapsulate access to it; discover the operations available on it; and instantiate the appropriate bean to perform the operation(s).</p>
-<p><b>URL: </b><a class="externalLink" href="http://java.sun.com/products/javabeans/jaf/index.jsp">http://java.sun.com/products/javabeans/jaf/index.jsp</a></p>
-<p><b>Project License: </b><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDLv1.0.html">Common Development and Distribution License (CDDL) v1.0</a></p></td></tr></table></div></li></ul></li>
-<li>com.sun.jersey:jersey-client:jar:1.9 (compile) <img id="_img249" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep248', '_img249' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep248" style="display:none">
+<p><b>URL: </b><a class="externalLink" href="http://jaxb.java.net/">http://jaxb.java.net/</a></p>
+<p><b>Project License: </b><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div></li>
+<li>com.sun.jersey:jersey-client:jar:1.9 (compile) <img id="_img247" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep246', '_img247' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep246" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-client</th></tr>
@@ -2422,7 +2406,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
         RESTful Web services.</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-client/">https://jersey.java.net/jersey-client/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div></li>
-<li>com.google.inject:guice:jar:3.0 (compile) <img id="_img251" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep250', '_img251' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep250" style="display:none">
+<li>com.google.inject:guice:jar:3.0 (compile) <img id="_img249" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep248', '_img249' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep248" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Google Guice - Core Library</th></tr>
@@ -2432,7 +2416,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/google-guice/guice/">http://code.google.com/p/google-guice/guice/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>javax.inject:javax.inject:jar:1 (compile) <img id="_img253" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep252', '_img253' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep252" style="display:none">
+<li>javax.inject:javax.inject:jar:1 (compile) <img id="_img251" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep250', '_img251' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep250" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>javax.inject</th></tr>
@@ -2441,7 +2425,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>The javax.inject API</p>
 <p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/atinject/">http://code.google.com/p/atinject/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>aopalliance:aopalliance:jar:1.0 (compile) <img id="_img255" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep254', '_img255' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep254" style="display:none">
+<li>aopalliance:aopalliance:jar:1.0 (compile) <img id="_img253" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep252', '_img253' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep252" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>AOP alliance</th></tr>
@@ -2450,7 +2434,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>AOP Alliance</p>
 <p><b>URL: </b><a class="externalLink" href="http://aopalliance.sourceforge.net">http://aopalliance.sourceforge.net</a></p>
 <p><b>Project License: </b>Public Domain</p></td></tr></table></div></li></ul></li>
-<li>com.sun.jersey.contribs:jersey-guice:jar:1.9 (compile) <img id="_img257" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep256', '_img257' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep256" style="display:none">
+<li>com.sun.jersey.contribs:jersey-guice:jar:1.9 (compile) <img id="_img255" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep254', '_img255' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep254" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>jersey-guice</th></tr>
@@ -2460,7 +2444,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
         with other projects/frameworks.</p>
 <p><b>URL: </b><a class="externalLink" href="https://jersey.java.net/jersey-contribs/jersey-guice/">https://jersey.java.net/jersey-contribs/jersey-guice/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></p></td></tr></table></div></li></ul></li>
-<li>com.google.inject.extensions:guice-servlet:jar:3.0 (compile) <img id="_img259" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep258', '_img259' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep258" style="display:none">
+<li>com.google.inject.extensions:guice-servlet:jar:3.0 (compile) <img id="_img257" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep256', '_img257' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep256" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Google Guice - Extensions - Servlet</th></tr>
@@ -2469,7 +2453,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Guice is a lightweight dependency injection framework for Java 5 and above</p>
 <p><b>URL: </b><a class="externalLink" href="http://code.google.com/p/google-guice/extensions-parent/guice-servlet/">http://code.google.com/p/google-guice/extensions-parent/guice-servlet/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.7.1 (test) <img id="_img261" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep260', '_img261' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep260" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.7.1 (test) <img id="_img259" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep258', '_img259' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep258" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-mapreduce-client-jobclient</th></tr>
@@ -2478,7 +2462,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.7.1 (test) <img id="_img263" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep262', '_img263' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep262" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.7.1 (test) <img id="_img261" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep260', '_img261' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep260" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-mapreduce-client-common</th></tr>
@@ -2487,7 +2471,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-yarn-client:jar:2.7.1 (test) <img id="_img265" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep264', '_img265' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep264" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-client:jar:2.7.1 (test) <img id="_img263" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep262', '_img263' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep262" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-client</th></tr>
@@ -2495,7 +2479,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-yarn-server-common:jar:2.7.1 (test) <img id="_img267" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep266', '_img267' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep266" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-server-common:jar:2.7.1 (test) <img id="_img265" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep264', '_img265' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep264" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-server-common</th></tr>
@@ -2503,7 +2487,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.7.1 (test) <img id="_img269" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep268', '_img269' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep268" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.7.1 (test) <img id="_img267" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep266', '_img267' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep266" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-mapreduce-client-shuffle</th></tr>
@@ -2512,7 +2496,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.7.1 (test) <img id="_img271" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep270', '_img271' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep270" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-server-nodemanager:jar:2.7.1 (test) <img id="_img269" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep268', '_img269' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep268" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-server-nodemanager</th></tr>
@@ -2520,7 +2504,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li></ul></li></ul></li>
-<li>org.apache.hadoop:hadoop-hdfs:jar:2.7.1 (test) <img id="_img273" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep272', '_img273' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep272" style="display:none">
+<li>org.apache.hadoop:hadoop-hdfs:jar:2.7.1 (test) <img id="_img271" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep270', '_img271' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep270" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Hadoop HDFS</th></tr>
@@ -2529,7 +2513,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop HDFS</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>commons-daemon:commons-daemon:jar:1.0.13 (test) <img id="_img275" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep274', '_img275' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep274" style="display:none">
+<li>commons-daemon:commons-daemon:jar:1.0.13 (test) <img id="_img273" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep272', '_img273' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep272" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Commons Daemon</th></tr>
@@ -2538,7 +2522,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Commons Daemon software provides an alternative invocation mechanism for unix-daemon-like Java code.</p>
 <p><b>URL: </b><a class="externalLink" href="http://commons.apache.org/daemon/">http://commons.apache.org/daemon/</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.fusesource.leveldbjni:leveldbjni-all:jar:1.8 (test) <img id="_img277" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep276', '_img277' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep276" style="display:none">
+<li>org.fusesource.leveldbjni:leveldbjni-all:jar:1.8 (test) <img id="_img275" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep274', '_img275' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep274" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>leveldbjni-all</th></tr>
@@ -2547,7 +2531,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>An uber jar which contains all the leveldbjni platform libraries and dependencies</p>
 <p><b>URL: </b><a class="externalLink" href="http://leveldbjni.fusesource.org/leveldbjni-all">http://leveldbjni.fusesource.org/leveldbjni-all</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.opensource.org/licenses/BSD-3-Clause">The BSD 3-Clause License</a></p></td></tr></table></div></li></ul></li>
-<li>org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.7.1 (test) <img id="_img279" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep278', '_img279' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep278" style="display:none">
+<li>org.apache.hadoop:hadoop-hdfs:test-jar:tests:2.7.1 (test) <img id="_img277" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep276', '_img277' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep276" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Hadoop HDFS</th></tr>
@@ -2555,7 +2539,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop HDFS</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-minicluster:jar:2.7.1 (test) <img id="_img281" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep280', '_img281' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep280" style="display:none">
+<li>org.apache.hadoop:hadoop-minicluster:jar:2.7.1 (test) <img id="_img279" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep278', '_img279' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep278" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Hadoop Mini-Cluster</th></tr>
@@ -2564,7 +2548,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Mini-Cluster</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-common:test-jar:tests:2.7.1 (test) <img id="_img283" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep282', '_img283' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep282" style="display:none">
+<li>org.apache.hadoop:hadoop-common:test-jar:tests:2.7.1 (test) <img id="_img281" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep280', '_img281' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep280" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache Hadoop Common</th></tr>
@@ -2572,7 +2556,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Common</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.7.1 (test) <img id="_img285" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep284', '_img285' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep284" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-server-tests:test-jar:tests:2.7.1 (test) <img id="_img283" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep282', '_img283' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep282" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-server-tests</th></tr>
@@ -2581,7 +2565,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.7.1 (test) <img id="_img287" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep286', '_img287' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep286" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-server-resourcemanager:jar:2.7.1 (test) <img id="_img285" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep284', '_img285' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep284" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-server-resourcemanager</th></tr>
@@ -2590,7 +2574,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.7.1 (test) <img id="_img289" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep288', '_img289' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep288" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-server-applicationhistoryservice:jar:2.7.1 (test) <img id="_img287" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep286', '_img287' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep286" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-server-applicationhistoryservice</th></tr>
@@ -2598,7 +2582,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.7.1 (test) <img id="_img291" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep290', '_img291' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep290" style="display:none">
+<li>org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.7.1 (test) <img id="_img289" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep288', '_img289' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep288" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-yarn-server-web-proxy</th></tr>
@@ -2606,7 +2590,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.zookeeper:zookeeper:test-jar:tests:3.4.6 (test) <img id="_img293" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep292', '_img293' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep292" style="display:none">
+<li>org.apache.zookeeper:zookeeper:test-jar:tests:3.4.6 (test) <img id="_img291" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep290', '_img291' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep290" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>zookeeper</th></tr>
@@ -2614,7 +2598,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>There is currently no description associated with this project.</p>
 <p><b>Project License: </b>No license is defined for this project.</p></td></tr></table></div></li></ul></li></ul></li>
-<li>org.apache.hadoop:hadoop-mapreduce-client-jobclient:test-jar:tests:2.7.1 (test) <img id="_img295" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep294', '_img295' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep294" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-jobclient:test-jar:tests:2.7.1 (test) <img id="_img293" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep292', '_img293' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep292" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-mapreduce-client-jobclient</th></tr>
@@ -2622,7 +2606,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.apache.hadoop:hadoop-mapreduce-client-hs:jar:2.7.1 (test) <img id="_img297" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep296', '_img297' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep296" style="display:none">
+<li>org.apache.hadoop:hadoop-mapreduce-client-hs:jar:2.7.1 (test) <img id="_img295" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep294', '_img295' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep294" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>hadoop-mapreduce-client-hs</th></tr>
@@ -2630,7 +2614,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <td>
 <p><b>Description: </b>Apache Hadoop Project POM</p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li></ul></li></ul></li>
-<li>org.apache.hbase:hbase-shaded-client:jar:3.0.0-SNAPSHOT (compile) <img id="_img299" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep298', '_img299' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep298" style="display:none">
+<li>org.apache.hbase:hbase-shaded-client:jar:3.0.0-SNAPSHOT (compile) <img id="_img297" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep296', '_img297' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep296" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Apache HBase - Shaded - Client</th></tr>
@@ -2639,7 +2623,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Module of HBase with most deps shaded.</p>
 <p><b>URL: </b><a class="externalLink" href="http://hbase.apache.org/hbase-shaded/hbase-shaded-client">http://hbase.apache.org/hbase-shaded/hbase-shaded-client</a></p>
 <p><b>Project License: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>junit:junit:jar:4.12 (test) <img id="_img301" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep300', '_img301' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep300" style="display:none">
+<li>junit:junit:jar:4.12 (test) <img id="_img299" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep298', '_img299' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep298" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>JUnit</th></tr>
@@ -2649,7 +2633,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>URL: </b><a class="externalLink" href="http://junit.org">http://junit.org</a></p>
 <p><b>Project License: </b><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License 1.0</a></p></td></tr></table></div>
 <ul>
-<li>org.hamcrest:hamcrest-core:jar:1.3 (test) <img id="_img303" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep302', '_img303' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep302" style="display:none">
+<li>org.hamcrest:hamcrest-core:jar:1.3 (test) <img id="_img301" src="./images/icon_info_sml.gif" alt="Information" onclick="toggleDependencyDetail( '_dep300', '_img301' );" style="cursor: pointer;vertical-align:text-bottom;"></img><div id="_dep300" style="display:none">
 <table border="0" class="bodyTable">
 <tr class="a">
 <th>Hamcrest Core</th></tr>
@@ -2658,7 +2642,7 @@ These include: bzip2, gzip, pack200, xz and ar, cpio, jar, tar, zip, dump.</p>
 <p><b>Description: </b>Thi

<TRUNCATED>

[11/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
index ed2fd92..590534b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
@@ -70,14 +70,14 @@
 <span class="sourceLineNo">062</span>    @org.jamon.annotations.Argument(name = "master", type = "HMaster")},<a name="line.62"></a>
 <span class="sourceLineNo">063</span>  optionalArguments = {<a name="line.63"></a>
 <span class="sourceLineNo">064</span>    @org.jamon.annotations.Argument(name = "frags", type = "Map&lt;String,Integer&gt;"),<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager"),<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.68"></a>
-<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;")})<a name="line.72"></a>
+<span class="sourceLineNo">065</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    @org.jamon.annotations.Argument(name = "serverManager", type = "ServerManager"),<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    @org.jamon.annotations.Argument(name = "catalogJanitorEnabled", type = "boolean"),<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    @org.jamon.annotations.Argument(name = "deadServers", type = "Set&lt;ServerName&gt;"),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    @org.jamon.annotations.Argument(name = "metaLocation", type = "ServerName"),<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    @org.jamon.annotations.Argument(name = "servers", type = "List&lt;ServerName&gt;"),<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    @org.jamon.annotations.Argument(name = "assignmentManager", type = "AssignmentManager")})<a name="line.72"></a>
 <span class="sourceLineNo">073</span>public class MasterStatusTmpl<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  extends org.jamon.AbstractTemplateProxy<a name="line.74"></a>
 <span class="sourceLineNo">075</span>{<a name="line.75"></a>
@@ -135,142 +135,142 @@
 <span class="sourceLineNo">127</span>      return m_frags__IsNotDefault;<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    private boolean m_frags__IsNotDefault;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    // 24, 1<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.131"></a>
+<span class="sourceLineNo">130</span>    // 26, 1<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    public void setFilter(String filter)<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      // 24, 1<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      m_deadServers = deadServers;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      m_deadServers__IsNotDefault = true;<a name="line.135"></a>
+<span class="sourceLineNo">133</span>      // 26, 1<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      m_filter = filter;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      m_filter__IsNotDefault = true;<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.137"></a>
+<span class="sourceLineNo">137</span>    public String getFilter()<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    {<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      return m_deadServers;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>      return m_filter;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>    }<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    public boolean getDeadServers__IsNotDefault()<a name="line.142"></a>
+<span class="sourceLineNo">141</span>    private String m_filter;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    public boolean getFilter__IsNotDefault()<a name="line.142"></a>
 <span class="sourceLineNo">143</span>    {<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      return m_deadServers__IsNotDefault;<a name="line.144"></a>
+<span class="sourceLineNo">144</span>      return m_filter__IsNotDefault;<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    }<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private boolean m_deadServers__IsNotDefault;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    // 29, 1<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.148"></a>
+<span class="sourceLineNo">146</span>    private boolean m_filter__IsNotDefault;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // 28, 1<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    public void setServerManager(ServerManager serverManager)<a name="line.148"></a>
 <span class="sourceLineNo">149</span>    {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      // 29, 1<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      m_assignmentManager = assignmentManager;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      m_assignmentManager__IsNotDefault = true;<a name="line.152"></a>
+<span class="sourceLineNo">150</span>      // 28, 1<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      m_serverManager = serverManager;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      m_serverManager__IsNotDefault = true;<a name="line.152"></a>
 <span class="sourceLineNo">153</span>    }<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    public AssignmentManager getAssignmentManager()<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    public ServerManager getServerManager()<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      return m_assignmentManager;<a name="line.156"></a>
+<span class="sourceLineNo">156</span>      return m_serverManager;<a name="line.156"></a>
 <span class="sourceLineNo">157</span>    }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    private AssignmentManager m_assignmentManager;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.159"></a>
+<span class="sourceLineNo">158</span>    private ServerManager m_serverManager;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    public boolean getServerManager__IsNotDefault()<a name="line.159"></a>
 <span class="sourceLineNo">160</span>    {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      return m_assignmentManager__IsNotDefault;<a name="line.161"></a>
+<span class="sourceLineNo">161</span>      return m_serverManager__IsNotDefault;<a name="line.161"></a>
 <span class="sourceLineNo">162</span>    }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    // 27, 1<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    public void setFormat(String format)<a name="line.165"></a>
+<span class="sourceLineNo">163</span>    private boolean m_serverManager__IsNotDefault;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    // 25, 1<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.165"></a>
 <span class="sourceLineNo">166</span>    {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      // 27, 1<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      m_format = format;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>      m_format__IsNotDefault = true;<a name="line.169"></a>
+<span class="sourceLineNo">167</span>      // 25, 1<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      m_catalogJanitorEnabled = catalogJanitorEnabled;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      m_catalogJanitorEnabled__IsNotDefault = true;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>    }<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    public String getFormat()<a name="line.171"></a>
+<span class="sourceLineNo">171</span>    public boolean getCatalogJanitorEnabled()<a name="line.171"></a>
 <span class="sourceLineNo">172</span>    {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      return m_format;<a name="line.173"></a>
+<span class="sourceLineNo">173</span>      return m_catalogJanitorEnabled;<a name="line.173"></a>
 <span class="sourceLineNo">174</span>    }<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private String m_format;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    public boolean getFormat__IsNotDefault()<a name="line.176"></a>
+<span class="sourceLineNo">175</span>    private boolean m_catalogJanitorEnabled;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    public boolean getCatalogJanitorEnabled__IsNotDefault()<a name="line.176"></a>
 <span class="sourceLineNo">177</span>    {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      return m_format__IsNotDefault;<a name="line.178"></a>
+<span class="sourceLineNo">178</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.178"></a>
 <span class="sourceLineNo">179</span>    }<a name="line.179"></a>
-<span class="sourceLineNo">180</span>    private boolean m_format__IsNotDefault;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    // 26, 1<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    public void setFilter(String filter)<a name="line.182"></a>
+<span class="sourceLineNo">180</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    // 24, 1<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    public void setDeadServers(Set&lt;ServerName&gt; deadServers)<a name="line.182"></a>
 <span class="sourceLineNo">183</span>    {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>      // 26, 1<a name="line.184"></a>
-<span class="sourceLineNo">185</span>      m_filter = filter;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      m_filter__IsNotDefault = true;<a name="line.186"></a>
+<span class="sourceLineNo">184</span>      // 24, 1<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      m_deadServers = deadServers;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      m_deadServers__IsNotDefault = true;<a name="line.186"></a>
 <span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    public String getFilter()<a name="line.188"></a>
+<span class="sourceLineNo">188</span>    public Set&lt;ServerName&gt; getDeadServers()<a name="line.188"></a>
 <span class="sourceLineNo">189</span>    {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      return m_filter;<a name="line.190"></a>
+<span class="sourceLineNo">190</span>      return m_deadServers;<a name="line.190"></a>
 <span class="sourceLineNo">191</span>    }<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    private String m_filter;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    public boolean getFilter__IsNotDefault()<a name="line.193"></a>
+<span class="sourceLineNo">192</span>    private Set&lt;ServerName&gt; m_deadServers;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    public boolean getDeadServers__IsNotDefault()<a name="line.193"></a>
 <span class="sourceLineNo">194</span>    {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      return m_filter__IsNotDefault;<a name="line.195"></a>
+<span class="sourceLineNo">195</span>      return m_deadServers__IsNotDefault;<a name="line.195"></a>
 <span class="sourceLineNo">196</span>    }<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    private boolean m_filter__IsNotDefault;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    // 22, 1<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.199"></a>
+<span class="sourceLineNo">197</span>    private boolean m_deadServers__IsNotDefault;<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // 27, 1<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    public void setFormat(String format)<a name="line.199"></a>
 <span class="sourceLineNo">200</span>    {<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      // 22, 1<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      m_metaLocation = metaLocation;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      m_metaLocation__IsNotDefault = true;<a name="line.203"></a>
+<span class="sourceLineNo">201</span>      // 27, 1<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      m_format = format;<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      m_format__IsNotDefault = true;<a name="line.203"></a>
 <span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    public ServerName getMetaLocation()<a name="line.205"></a>
+<span class="sourceLineNo">205</span>    public String getFormat()<a name="line.205"></a>
 <span class="sourceLineNo">206</span>    {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      return m_metaLocation;<a name="line.207"></a>
+<span class="sourceLineNo">207</span>      return m_format;<a name="line.207"></a>
 <span class="sourceLineNo">208</span>    }<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    private ServerName m_metaLocation;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.210"></a>
+<span class="sourceLineNo">209</span>    private String m_format;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    public boolean getFormat__IsNotDefault()<a name="line.210"></a>
 <span class="sourceLineNo">211</span>    {<a name="line.211"></a>
-<span class="sourceLineNo">212</span>      return m_metaLocation__IsNotDefault;<a name="line.212"></a>
+<span class="sourceLineNo">212</span>      return m_format__IsNotDefault;<a name="line.212"></a>
 <span class="sourceLineNo">213</span>    }<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    // 28, 1<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    public void setServerManager(ServerManager serverManager)<a name="line.216"></a>
+<span class="sourceLineNo">214</span>    private boolean m_format__IsNotDefault;<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    // 22, 1<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    public void setMetaLocation(ServerName metaLocation)<a name="line.216"></a>
 <span class="sourceLineNo">217</span>    {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      // 28, 1<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      m_serverManager = serverManager;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      m_serverManager__IsNotDefault = true;<a name="line.220"></a>
+<span class="sourceLineNo">218</span>      // 22, 1<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      m_metaLocation = metaLocation;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      m_metaLocation__IsNotDefault = true;<a name="line.220"></a>
 <span class="sourceLineNo">221</span>    }<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    public ServerManager getServerManager()<a name="line.222"></a>
+<span class="sourceLineNo">222</span>    public ServerName getMetaLocation()<a name="line.222"></a>
 <span class="sourceLineNo">223</span>    {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      return m_serverManager;<a name="line.224"></a>
+<span class="sourceLineNo">224</span>      return m_metaLocation;<a name="line.224"></a>
 <span class="sourceLineNo">225</span>    }<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    private ServerManager m_serverManager;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    public boolean getServerManager__IsNotDefault()<a name="line.227"></a>
+<span class="sourceLineNo">226</span>    private ServerName m_metaLocation;<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    public boolean getMetaLocation__IsNotDefault()<a name="line.227"></a>
 <span class="sourceLineNo">228</span>    {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      return m_serverManager__IsNotDefault;<a name="line.229"></a>
+<span class="sourceLineNo">229</span>      return m_metaLocation__IsNotDefault;<a name="line.229"></a>
 <span class="sourceLineNo">230</span>    }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>    private boolean m_serverManager__IsNotDefault;<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    // 25, 1<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    public void setCatalogJanitorEnabled(boolean catalogJanitorEnabled)<a name="line.233"></a>
+<span class="sourceLineNo">231</span>    private boolean m_metaLocation__IsNotDefault;<a name="line.231"></a>
+<span class="sourceLineNo">232</span>    // 23, 1<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.233"></a>
 <span class="sourceLineNo">234</span>    {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      // 25, 1<a name="line.235"></a>
-<span class="sourceLineNo">236</span>      m_catalogJanitorEnabled = catalogJanitorEnabled;<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      m_catalogJanitorEnabled__IsNotDefault = true;<a name="line.237"></a>
+<span class="sourceLineNo">235</span>      // 23, 1<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      m_servers = servers;<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      m_servers__IsNotDefault = true;<a name="line.237"></a>
 <span class="sourceLineNo">238</span>    }<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    public boolean getCatalogJanitorEnabled()<a name="line.239"></a>
+<span class="sourceLineNo">239</span>    public List&lt;ServerName&gt; getServers()<a name="line.239"></a>
 <span class="sourceLineNo">240</span>    {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      return m_catalogJanitorEnabled;<a name="line.241"></a>
+<span class="sourceLineNo">241</span>      return m_servers;<a name="line.241"></a>
 <span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>    private boolean m_catalogJanitorEnabled;<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    public boolean getCatalogJanitorEnabled__IsNotDefault()<a name="line.244"></a>
+<span class="sourceLineNo">243</span>    private List&lt;ServerName&gt; m_servers;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    public boolean getServers__IsNotDefault()<a name="line.244"></a>
 <span class="sourceLineNo">245</span>    {<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      return m_catalogJanitorEnabled__IsNotDefault;<a name="line.246"></a>
+<span class="sourceLineNo">246</span>      return m_servers__IsNotDefault;<a name="line.246"></a>
 <span class="sourceLineNo">247</span>    }<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    private boolean m_catalogJanitorEnabled__IsNotDefault;<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    // 23, 1<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    public void setServers(List&lt;ServerName&gt; servers)<a name="line.250"></a>
+<span class="sourceLineNo">248</span>    private boolean m_servers__IsNotDefault;<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    // 29, 1<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    public void setAssignmentManager(AssignmentManager assignmentManager)<a name="line.250"></a>
 <span class="sourceLineNo">251</span>    {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      // 23, 1<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      m_servers = servers;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      m_servers__IsNotDefault = true;<a name="line.254"></a>
+<span class="sourceLineNo">252</span>      // 29, 1<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      m_assignmentManager = assignmentManager;<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      m_assignmentManager__IsNotDefault = true;<a name="line.254"></a>
 <span class="sourceLineNo">255</span>    }<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    public List&lt;ServerName&gt; getServers()<a name="line.256"></a>
+<span class="sourceLineNo">256</span>    public AssignmentManager getAssignmentManager()<a name="line.256"></a>
 <span class="sourceLineNo">257</span>    {<a name="line.257"></a>
-<span class="sourceLineNo">258</span>      return m_servers;<a name="line.258"></a>
+<span class="sourceLineNo">258</span>      return m_assignmentManager;<a name="line.258"></a>
 <span class="sourceLineNo">259</span>    }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    private List&lt;ServerName&gt; m_servers;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    public boolean getServers__IsNotDefault()<a name="line.261"></a>
+<span class="sourceLineNo">260</span>    private AssignmentManager m_assignmentManager;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public boolean getAssignmentManager__IsNotDefault()<a name="line.261"></a>
 <span class="sourceLineNo">262</span>    {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      return m_servers__IsNotDefault;<a name="line.263"></a>
+<span class="sourceLineNo">263</span>      return m_assignmentManager__IsNotDefault;<a name="line.263"></a>
 <span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    private boolean m_servers__IsNotDefault;<a name="line.265"></a>
+<span class="sourceLineNo">265</span>    private boolean m_assignmentManager__IsNotDefault;<a name="line.265"></a>
 <span class="sourceLineNo">266</span>  }<a name="line.266"></a>
 <span class="sourceLineNo">267</span>  @Override<a name="line.267"></a>
 <span class="sourceLineNo">268</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.268"></a>
@@ -289,59 +289,59 @@
 <span class="sourceLineNo">281</span>    return this;<a name="line.281"></a>
 <span class="sourceLineNo">282</span>  }<a name="line.282"></a>
 <span class="sourceLineNo">283</span>  <a name="line.283"></a>
-<span class="sourceLineNo">284</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.285"></a>
+<span class="sourceLineNo">284</span>  protected String filter;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.285"></a>
 <span class="sourceLineNo">286</span>  {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.287"></a>
+<span class="sourceLineNo">287</span>    (getImplData()).setFilter(p_filter);<a name="line.287"></a>
 <span class="sourceLineNo">288</span>    return this;<a name="line.288"></a>
 <span class="sourceLineNo">289</span>  }<a name="line.289"></a>
 <span class="sourceLineNo">290</span>  <a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected AssignmentManager assignmentManager;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.292"></a>
+<span class="sourceLineNo">291</span>  protected ServerManager serverManager;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.292"></a>
 <span class="sourceLineNo">293</span>  {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.294"></a>
+<span class="sourceLineNo">294</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.294"></a>
 <span class="sourceLineNo">295</span>    return this;<a name="line.295"></a>
 <span class="sourceLineNo">296</span>  }<a name="line.296"></a>
 <span class="sourceLineNo">297</span>  <a name="line.297"></a>
-<span class="sourceLineNo">298</span>  protected String format;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.299"></a>
+<span class="sourceLineNo">298</span>  protected boolean catalogJanitorEnabled;<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setCatalogJanitorEnabled(boolean p_catalogJanitorEnabled)<a name="line.299"></a>
 <span class="sourceLineNo">300</span>  {<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    (getImplData()).setFormat(p_format);<a name="line.301"></a>
+<span class="sourceLineNo">301</span>    (getImplData()).setCatalogJanitorEnabled(p_catalogJanitorEnabled);<a name="line.301"></a>
 <span class="sourceLineNo">302</span>    return this;<a name="line.302"></a>
 <span class="sourceLineNo">303</span>  }<a name="line.303"></a>
 <span class="sourceLineNo">304</span>  <a name="line.304"></a>
-<span class="sourceLineNo">305</span>  protected String filter;<a name="line.305"></a>
-<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFilter(String p_filter)<a name="line.306"></a>
+<span class="sourceLineNo">305</span>  protected Set&lt;ServerName&gt; deadServers;<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setDeadServers(Set&lt;ServerName&gt; p_deadServers)<a name="line.306"></a>
 <span class="sourceLineNo">307</span>  {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>    (getImplData()).setFilter(p_filter);<a name="line.308"></a>
+<span class="sourceLineNo">308</span>    (getImplData()).setDeadServers(p_deadServers);<a name="line.308"></a>
 <span class="sourceLineNo">309</span>    return this;<a name="line.309"></a>
 <span class="sourceLineNo">310</span>  }<a name="line.310"></a>
 <span class="sourceLineNo">311</span>  <a name="line.311"></a>
-<span class="sourceLineNo">312</span>  protected ServerName metaLocation;<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.313"></a>
+<span class="sourceLineNo">312</span>  protected String format;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setFormat(String p_format)<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  {<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.315"></a>
+<span class="sourceLineNo">315</span>    (getImplData()).setFormat(p_format);<a name="line.315"></a>
 <span class="sourceLineNo">316</span>    return this;<a name="line.316"></a>
 <span class="sourceLineNo">317</span>  }<a name="line.317"></a>
 <span class="sourceLineNo">318</span>  <a name="line.318"></a>
-<span class="sourceLineNo">319</span>  protected ServerManager serverManager;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServerManager(ServerManager p_serverManager)<a name="line.320"></a>
+<span class="sourceLineNo">319</span>  protected ServerName metaLocation;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setMetaLocation(ServerName p_metaLocation)<a name="line.320"></a>
 <span class="sourceLineNo">321</span>  {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    (getImplData()).setServerManager(p_serverManager);<a name="line.322"></a>
+<span class="sourceLineNo">322</span>    (getImplData()).setMetaLocation(p_metaLocation);<a name="line.322"></a>
 <span class="sourceLineNo">323</span>    return this;<a name="line.323"></a>
 <span class="sourceLineNo">324</span>  }<a name="line.324"></a>
 <span class="sourceLineNo">325</span>  <a name="line.325"></a>
-<span class="sourceLineNo">326</span>  protected boolean catalogJanitorEnabled;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setCatalogJanitorEnabled(boolean p_catalogJanitorEnabled)<a name="line.327"></a>
+<span class="sourceLineNo">326</span>  protected List&lt;ServerName&gt; servers;<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.327"></a>
 <span class="sourceLineNo">328</span>  {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    (getImplData()).setCatalogJanitorEnabled(p_catalogJanitorEnabled);<a name="line.329"></a>
+<span class="sourceLineNo">329</span>    (getImplData()).setServers(p_servers);<a name="line.329"></a>
 <span class="sourceLineNo">330</span>    return this;<a name="line.330"></a>
 <span class="sourceLineNo">331</span>  }<a name="line.331"></a>
 <span class="sourceLineNo">332</span>  <a name="line.332"></a>
-<span class="sourceLineNo">333</span>  protected List&lt;ServerName&gt; servers;<a name="line.333"></a>
-<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setServers(List&lt;ServerName&gt; p_servers)<a name="line.334"></a>
+<span class="sourceLineNo">333</span>  protected AssignmentManager assignmentManager;<a name="line.333"></a>
+<span class="sourceLineNo">334</span>  public final org.apache.hadoop.hbase.tmpl.master.MasterStatusTmpl setAssignmentManager(AssignmentManager p_assignmentManager)<a name="line.334"></a>
 <span class="sourceLineNo">335</span>  {<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    (getImplData()).setServers(p_servers);<a name="line.336"></a>
+<span class="sourceLineNo">336</span>    (getImplData()).setAssignmentManager(p_assignmentManager);<a name="line.336"></a>
 <span class="sourceLineNo">337</span>    return this;<a name="line.337"></a>
 <span class="sourceLineNo">338</span>  }<a name="line.338"></a>
 <span class="sourceLineNo">339</span>  <a name="line.339"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
index 7e0628e..848932d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
@@ -71,14 +71,14 @@
 <span class="sourceLineNo">063</span>{<a name="line.63"></a>
 <span class="sourceLineNo">064</span>  private final HMaster master;<a name="line.64"></a>
 <span class="sourceLineNo">065</span>  private final Map&lt;String,Integer&gt; frags;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  private final Set&lt;ServerName&gt; deadServers;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>  private final AssignmentManager assignmentManager;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private final String format;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private final String filter;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private final ServerName metaLocation;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private final ServerManager serverManager;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  private final boolean catalogJanitorEnabled;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  private final List&lt;ServerName&gt; servers;<a name="line.73"></a>
+<span class="sourceLineNo">066</span>  private final String filter;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private final ServerManager serverManager;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private final boolean catalogJanitorEnabled;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  private final Set&lt;ServerName&gt; deadServers;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  private final String format;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  private final ServerName metaLocation;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private final List&lt;ServerName&gt; servers;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  private final AssignmentManager assignmentManager;<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  // 69, 1<a name="line.74"></a>
 <span class="sourceLineNo">075</span>  <a name="line.75"></a>
 <span class="sourceLineNo">076</span>  public String formatZKString() {<a name="line.76"></a>
@@ -112,37 +112,37 @@
 <span class="sourceLineNo">104</span>    {<a name="line.104"></a>
 <span class="sourceLineNo">105</span>      p_implData.setFrags(null);<a name="line.105"></a>
 <span class="sourceLineNo">106</span>    }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    if(! p_implData.getDeadServers__IsNotDefault())<a name="line.107"></a>
+<span class="sourceLineNo">107</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      p_implData.setDeadServers(null);<a name="line.109"></a>
+<span class="sourceLineNo">109</span>      p_implData.setFilter("general");<a name="line.109"></a>
 <span class="sourceLineNo">110</span>    }<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    if(! p_implData.getAssignmentManager__IsNotDefault())<a name="line.111"></a>
+<span class="sourceLineNo">111</span>    if(! p_implData.getServerManager__IsNotDefault())<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      p_implData.setAssignmentManager(null);<a name="line.113"></a>
+<span class="sourceLineNo">113</span>      p_implData.setServerManager(null);<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    }<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.115"></a>
+<span class="sourceLineNo">115</span>    if(! p_implData.getCatalogJanitorEnabled__IsNotDefault())<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    {<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      p_implData.setFormat("html");<a name="line.117"></a>
+<span class="sourceLineNo">117</span>      p_implData.setCatalogJanitorEnabled(true);<a name="line.117"></a>
 <span class="sourceLineNo">118</span>    }<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.119"></a>
+<span class="sourceLineNo">119</span>    if(! p_implData.getDeadServers__IsNotDefault())<a name="line.119"></a>
 <span class="sourceLineNo">120</span>    {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      p_implData.setFilter("general");<a name="line.121"></a>
+<span class="sourceLineNo">121</span>      p_implData.setDeadServers(null);<a name="line.121"></a>
 <span class="sourceLineNo">122</span>    }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    if(! p_implData.getMetaLocation__IsNotDefault())<a name="line.123"></a>
+<span class="sourceLineNo">123</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.123"></a>
 <span class="sourceLineNo">124</span>    {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>      p_implData.setMetaLocation(null);<a name="line.125"></a>
+<span class="sourceLineNo">125</span>      p_implData.setFormat("html");<a name="line.125"></a>
 <span class="sourceLineNo">126</span>    }<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    if(! p_implData.getServerManager__IsNotDefault())<a name="line.127"></a>
+<span class="sourceLineNo">127</span>    if(! p_implData.getMetaLocation__IsNotDefault())<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      p_implData.setServerManager(null);<a name="line.129"></a>
+<span class="sourceLineNo">129</span>      p_implData.setMetaLocation(null);<a name="line.129"></a>
 <span class="sourceLineNo">130</span>    }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    if(! p_implData.getCatalogJanitorEnabled__IsNotDefault())<a name="line.131"></a>
+<span class="sourceLineNo">131</span>    if(! p_implData.getServers__IsNotDefault())<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>      p_implData.setCatalogJanitorEnabled(true);<a name="line.133"></a>
+<span class="sourceLineNo">133</span>      p_implData.setServers(null);<a name="line.133"></a>
 <span class="sourceLineNo">134</span>    }<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    if(! p_implData.getServers__IsNotDefault())<a name="line.135"></a>
+<span class="sourceLineNo">135</span>    if(! p_implData.getAssignmentManager__IsNotDefault())<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      p_implData.setServers(null);<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      p_implData.setAssignmentManager(null);<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
 <span class="sourceLineNo">139</span>    return p_implData;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>  }<a name="line.140"></a>
@@ -151,14 +151,14 @@
 <span class="sourceLineNo">143</span>    super(p_templateManager, __jamon_setOptionalArguments(p_implData));<a name="line.143"></a>
 <span class="sourceLineNo">144</span>    master = p_implData.getMaster();<a name="line.144"></a>
 <span class="sourceLineNo">145</span>    frags = p_implData.getFrags();<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    deadServers = p_implData.getDeadServers();<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    assignmentManager = p_implData.getAssignmentManager();<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    format = p_implData.getFormat();<a name="line.148"></a>
-<span class="sourceLineNo">149</span>    filter = p_implData.getFilter();<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    metaLocation = p_implData.getMetaLocation();<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    serverManager = p_implData.getServerManager();<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    servers = p_implData.getServers();<a name="line.153"></a>
+<span class="sourceLineNo">146</span>    filter = p_implData.getFilter();<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    serverManager = p_implData.getServerManager();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    catalogJanitorEnabled = p_implData.getCatalogJanitorEnabled();<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    deadServers = p_implData.getDeadServers();<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    format = p_implData.getFormat();<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    metaLocation = p_implData.getMetaLocation();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    servers = p_implData.getServers();<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    assignmentManager = p_implData.getAssignmentManager();<a name="line.153"></a>
 <span class="sourceLineNo">154</span>  }<a name="line.154"></a>
 <span class="sourceLineNo">155</span>  <a name="line.155"></a>
 <span class="sourceLineNo">156</span>  @Override public void renderNoFlush(final java.io.Writer jamonWriter)<a name="line.156"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
index acb426d..5ee360d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
@@ -33,10 +33,10 @@
 <span class="sourceLineNo">025</span>  requiredArguments = {<a name="line.25"></a>
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
-<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.28"></a>
+<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.28"></a>
 <span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.29"></a>
-<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.30"></a>
-<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "filter", type = "String")})<a name="line.31"></a>
+<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
 <span class="sourceLineNo">034</span>{<a name="line.34"></a>
@@ -77,23 +77,23 @@
 <span class="sourceLineNo">069</span>      return m_regionServer;<a name="line.69"></a>
 <span class="sourceLineNo">070</span>    }<a name="line.70"></a>
 <span class="sourceLineNo">071</span>    private HRegionServer m_regionServer;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    // 23, 1<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    public void setBcn(String bcn)<a name="line.73"></a>
+<span class="sourceLineNo">072</span>    // 24, 1<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    public void setBcv(String bcv)<a name="line.73"></a>
 <span class="sourceLineNo">074</span>    {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      // 23, 1<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      m_bcn = bcn;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      m_bcn__IsNotDefault = true;<a name="line.77"></a>
+<span class="sourceLineNo">075</span>      // 24, 1<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      m_bcv = bcv;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      m_bcv__IsNotDefault = true;<a name="line.77"></a>
 <span class="sourceLineNo">078</span>    }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    public String getBcn()<a name="line.79"></a>
+<span class="sourceLineNo">079</span>    public String getBcv()<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      return m_bcn;<a name="line.81"></a>
+<span class="sourceLineNo">081</span>      return m_bcv;<a name="line.81"></a>
 <span class="sourceLineNo">082</span>    }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    private String m_bcn;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    public boolean getBcn__IsNotDefault()<a name="line.84"></a>
+<span class="sourceLineNo">083</span>    private String m_bcv;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    public boolean getBcv__IsNotDefault()<a name="line.84"></a>
 <span class="sourceLineNo">085</span>    {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      return m_bcn__IsNotDefault;<a name="line.86"></a>
+<span class="sourceLineNo">086</span>      return m_bcv__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    private boolean m_bcn__IsNotDefault;<a name="line.88"></a>
+<span class="sourceLineNo">088</span>    private boolean m_bcv__IsNotDefault;<a name="line.88"></a>
 <span class="sourceLineNo">089</span>    // 22, 1<a name="line.89"></a>
 <span class="sourceLineNo">090</span>    public void setFormat(String format)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
@@ -111,40 +111,40 @@
 <span class="sourceLineNo">103</span>      return m_format__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
 <span class="sourceLineNo">105</span>    private boolean m_format__IsNotDefault;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // 24, 1<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public void setBcv(String bcv)<a name="line.107"></a>
+<span class="sourceLineNo">106</span>    // 21, 1<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    public void setFilter(String filter)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // 24, 1<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      m_bcv = bcv;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      m_bcv__IsNotDefault = true;<a name="line.111"></a>
+<span class="sourceLineNo">109</span>      // 21, 1<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      m_filter = filter;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      m_filter__IsNotDefault = true;<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    public String getBcv()<a name="line.113"></a>
+<span class="sourceLineNo">113</span>    public String getFilter()<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return m_bcv;<a name="line.115"></a>
+<span class="sourceLineNo">115</span>      return m_filter;<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    private String m_bcv;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public boolean getBcv__IsNotDefault()<a name="line.118"></a>
+<span class="sourceLineNo">117</span>    private String m_filter;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    public boolean getFilter__IsNotDefault()<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return m_bcv__IsNotDefault;<a name="line.120"></a>
+<span class="sourceLineNo">120</span>      return m_filter__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    private boolean m_bcv__IsNotDefault;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // 21, 1<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setFilter(String filter)<a name="line.124"></a>
+<span class="sourceLineNo">122</span>    private boolean m_filter__IsNotDefault;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // 23, 1<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void setBcn(String bcn)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // 21, 1<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      m_filter = filter;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      m_filter__IsNotDefault = true;<a name="line.128"></a>
+<span class="sourceLineNo">126</span>      // 23, 1<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      m_bcn = bcn;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      m_bcn__IsNotDefault = true;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    public String getFilter()<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    public String getBcn()<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      return m_filter;<a name="line.132"></a>
+<span class="sourceLineNo">132</span>      return m_bcn;<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private String m_filter;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public boolean getFilter__IsNotDefault()<a name="line.135"></a>
+<span class="sourceLineNo">134</span>    private String m_bcn;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    public boolean getBcn__IsNotDefault()<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return m_filter__IsNotDefault;<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      return m_bcn__IsNotDefault;<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    private boolean m_filter__IsNotDefault;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>    private boolean m_bcn__IsNotDefault;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>  }<a name="line.140"></a>
 <span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
 <span class="sourceLineNo">142</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.142"></a>
@@ -156,10 +156,10 @@
 <span class="sourceLineNo">148</span>    return (ImplData) super.getImplData();<a name="line.148"></a>
 <span class="sourceLineNo">149</span>  }<a name="line.149"></a>
 <span class="sourceLineNo">150</span>  <a name="line.150"></a>
-<span class="sourceLineNo">151</span>  protected String bcn;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.152"></a>
+<span class="sourceLineNo">151</span>  protected String bcv;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.152"></a>
 <span class="sourceLineNo">153</span>  {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    (getImplData()).setBcn(p_bcn);<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    (getImplData()).setBcv(p_bcv);<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    return this;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>  }<a name="line.156"></a>
 <span class="sourceLineNo">157</span>  <a name="line.157"></a>
@@ -170,17 +170,17 @@
 <span class="sourceLineNo">162</span>    return this;<a name="line.162"></a>
 <span class="sourceLineNo">163</span>  }<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  <a name="line.164"></a>
-<span class="sourceLineNo">165</span>  protected String bcv;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.166"></a>
+<span class="sourceLineNo">165</span>  protected String filter;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    (getImplData()).setBcv(p_bcv);<a name="line.168"></a>
+<span class="sourceLineNo">168</span>    (getImplData()).setFilter(p_filter);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>    return this;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  }<a name="line.170"></a>
 <span class="sourceLineNo">171</span>  <a name="line.171"></a>
-<span class="sourceLineNo">172</span>  protected String filter;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.173"></a>
+<span class="sourceLineNo">172</span>  protected String bcn;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    (getImplData()).setFilter(p_filter);<a name="line.175"></a>
+<span class="sourceLineNo">175</span>    (getImplData()).setBcn(p_bcn);<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<a name="line.176"></a>
 <span class="sourceLineNo">177</span>  }<a name="line.177"></a>
 <span class="sourceLineNo">178</span>  <a name="line.178"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
index acb426d..5ee360d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.Intf.html
@@ -33,10 +33,10 @@
 <span class="sourceLineNo">025</span>  requiredArguments = {<a name="line.25"></a>
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
-<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.28"></a>
+<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.28"></a>
 <span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.29"></a>
-<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.30"></a>
-<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "filter", type = "String")})<a name="line.31"></a>
+<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
 <span class="sourceLineNo">034</span>{<a name="line.34"></a>
@@ -77,23 +77,23 @@
 <span class="sourceLineNo">069</span>      return m_regionServer;<a name="line.69"></a>
 <span class="sourceLineNo">070</span>    }<a name="line.70"></a>
 <span class="sourceLineNo">071</span>    private HRegionServer m_regionServer;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    // 23, 1<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    public void setBcn(String bcn)<a name="line.73"></a>
+<span class="sourceLineNo">072</span>    // 24, 1<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    public void setBcv(String bcv)<a name="line.73"></a>
 <span class="sourceLineNo">074</span>    {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      // 23, 1<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      m_bcn = bcn;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      m_bcn__IsNotDefault = true;<a name="line.77"></a>
+<span class="sourceLineNo">075</span>      // 24, 1<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      m_bcv = bcv;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      m_bcv__IsNotDefault = true;<a name="line.77"></a>
 <span class="sourceLineNo">078</span>    }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    public String getBcn()<a name="line.79"></a>
+<span class="sourceLineNo">079</span>    public String getBcv()<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      return m_bcn;<a name="line.81"></a>
+<span class="sourceLineNo">081</span>      return m_bcv;<a name="line.81"></a>
 <span class="sourceLineNo">082</span>    }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    private String m_bcn;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    public boolean getBcn__IsNotDefault()<a name="line.84"></a>
+<span class="sourceLineNo">083</span>    private String m_bcv;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    public boolean getBcv__IsNotDefault()<a name="line.84"></a>
 <span class="sourceLineNo">085</span>    {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      return m_bcn__IsNotDefault;<a name="line.86"></a>
+<span class="sourceLineNo">086</span>      return m_bcv__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    private boolean m_bcn__IsNotDefault;<a name="line.88"></a>
+<span class="sourceLineNo">088</span>    private boolean m_bcv__IsNotDefault;<a name="line.88"></a>
 <span class="sourceLineNo">089</span>    // 22, 1<a name="line.89"></a>
 <span class="sourceLineNo">090</span>    public void setFormat(String format)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
@@ -111,40 +111,40 @@
 <span class="sourceLineNo">103</span>      return m_format__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
 <span class="sourceLineNo">105</span>    private boolean m_format__IsNotDefault;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // 24, 1<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public void setBcv(String bcv)<a name="line.107"></a>
+<span class="sourceLineNo">106</span>    // 21, 1<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    public void setFilter(String filter)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // 24, 1<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      m_bcv = bcv;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      m_bcv__IsNotDefault = true;<a name="line.111"></a>
+<span class="sourceLineNo">109</span>      // 21, 1<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      m_filter = filter;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      m_filter__IsNotDefault = true;<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    public String getBcv()<a name="line.113"></a>
+<span class="sourceLineNo">113</span>    public String getFilter()<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return m_bcv;<a name="line.115"></a>
+<span class="sourceLineNo">115</span>      return m_filter;<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    private String m_bcv;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public boolean getBcv__IsNotDefault()<a name="line.118"></a>
+<span class="sourceLineNo">117</span>    private String m_filter;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    public boolean getFilter__IsNotDefault()<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return m_bcv__IsNotDefault;<a name="line.120"></a>
+<span class="sourceLineNo">120</span>      return m_filter__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    private boolean m_bcv__IsNotDefault;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // 21, 1<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setFilter(String filter)<a name="line.124"></a>
+<span class="sourceLineNo">122</span>    private boolean m_filter__IsNotDefault;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // 23, 1<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void setBcn(String bcn)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // 21, 1<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      m_filter = filter;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      m_filter__IsNotDefault = true;<a name="line.128"></a>
+<span class="sourceLineNo">126</span>      // 23, 1<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      m_bcn = bcn;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      m_bcn__IsNotDefault = true;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    public String getFilter()<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    public String getBcn()<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      return m_filter;<a name="line.132"></a>
+<span class="sourceLineNo">132</span>      return m_bcn;<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private String m_filter;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public boolean getFilter__IsNotDefault()<a name="line.135"></a>
+<span class="sourceLineNo">134</span>    private String m_bcn;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    public boolean getBcn__IsNotDefault()<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return m_filter__IsNotDefault;<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      return m_bcn__IsNotDefault;<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    private boolean m_filter__IsNotDefault;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>    private boolean m_bcn__IsNotDefault;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>  }<a name="line.140"></a>
 <span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
 <span class="sourceLineNo">142</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.142"></a>
@@ -156,10 +156,10 @@
 <span class="sourceLineNo">148</span>    return (ImplData) super.getImplData();<a name="line.148"></a>
 <span class="sourceLineNo">149</span>  }<a name="line.149"></a>
 <span class="sourceLineNo">150</span>  <a name="line.150"></a>
-<span class="sourceLineNo">151</span>  protected String bcn;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.152"></a>
+<span class="sourceLineNo">151</span>  protected String bcv;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.152"></a>
 <span class="sourceLineNo">153</span>  {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    (getImplData()).setBcn(p_bcn);<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    (getImplData()).setBcv(p_bcv);<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    return this;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>  }<a name="line.156"></a>
 <span class="sourceLineNo">157</span>  <a name="line.157"></a>
@@ -170,17 +170,17 @@
 <span class="sourceLineNo">162</span>    return this;<a name="line.162"></a>
 <span class="sourceLineNo">163</span>  }<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  <a name="line.164"></a>
-<span class="sourceLineNo">165</span>  protected String bcv;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.166"></a>
+<span class="sourceLineNo">165</span>  protected String filter;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    (getImplData()).setBcv(p_bcv);<a name="line.168"></a>
+<span class="sourceLineNo">168</span>    (getImplData()).setFilter(p_filter);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>    return this;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  }<a name="line.170"></a>
 <span class="sourceLineNo">171</span>  <a name="line.171"></a>
-<span class="sourceLineNo">172</span>  protected String filter;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.173"></a>
+<span class="sourceLineNo">172</span>  protected String bcn;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    (getImplData()).setFilter(p_filter);<a name="line.175"></a>
+<span class="sourceLineNo">175</span>    (getImplData()).setBcn(p_bcn);<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<a name="line.176"></a>
 <span class="sourceLineNo">177</span>  }<a name="line.177"></a>
 <span class="sourceLineNo">178</span>  <a name="line.178"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
index acb426d..5ee360d 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
@@ -33,10 +33,10 @@
 <span class="sourceLineNo">025</span>  requiredArguments = {<a name="line.25"></a>
 <span class="sourceLineNo">026</span>    @org.jamon.annotations.Argument(name = "regionServer", type = "HRegionServer")},<a name="line.26"></a>
 <span class="sourceLineNo">027</span>  optionalArguments = {<a name="line.27"></a>
-<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String"),<a name="line.28"></a>
+<span class="sourceLineNo">028</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.28"></a>
 <span class="sourceLineNo">029</span>    @org.jamon.annotations.Argument(name = "format", type = "String"),<a name="line.29"></a>
-<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "bcv", type = "String"),<a name="line.30"></a>
-<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "filter", type = "String")})<a name="line.31"></a>
+<span class="sourceLineNo">030</span>    @org.jamon.annotations.Argument(name = "filter", type = "String"),<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    @org.jamon.annotations.Argument(name = "bcn", type = "String")})<a name="line.31"></a>
 <span class="sourceLineNo">032</span>public class RSStatusTmpl<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  extends org.jamon.AbstractTemplateProxy<a name="line.33"></a>
 <span class="sourceLineNo">034</span>{<a name="line.34"></a>
@@ -77,23 +77,23 @@
 <span class="sourceLineNo">069</span>      return m_regionServer;<a name="line.69"></a>
 <span class="sourceLineNo">070</span>    }<a name="line.70"></a>
 <span class="sourceLineNo">071</span>    private HRegionServer m_regionServer;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    // 23, 1<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    public void setBcn(String bcn)<a name="line.73"></a>
+<span class="sourceLineNo">072</span>    // 24, 1<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    public void setBcv(String bcv)<a name="line.73"></a>
 <span class="sourceLineNo">074</span>    {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>      // 23, 1<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      m_bcn = bcn;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      m_bcn__IsNotDefault = true;<a name="line.77"></a>
+<span class="sourceLineNo">075</span>      // 24, 1<a name="line.75"></a>
+<span class="sourceLineNo">076</span>      m_bcv = bcv;<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      m_bcv__IsNotDefault = true;<a name="line.77"></a>
 <span class="sourceLineNo">078</span>    }<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    public String getBcn()<a name="line.79"></a>
+<span class="sourceLineNo">079</span>    public String getBcv()<a name="line.79"></a>
 <span class="sourceLineNo">080</span>    {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      return m_bcn;<a name="line.81"></a>
+<span class="sourceLineNo">081</span>      return m_bcv;<a name="line.81"></a>
 <span class="sourceLineNo">082</span>    }<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    private String m_bcn;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    public boolean getBcn__IsNotDefault()<a name="line.84"></a>
+<span class="sourceLineNo">083</span>    private String m_bcv;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    public boolean getBcv__IsNotDefault()<a name="line.84"></a>
 <span class="sourceLineNo">085</span>    {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      return m_bcn__IsNotDefault;<a name="line.86"></a>
+<span class="sourceLineNo">086</span>      return m_bcv__IsNotDefault;<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    }<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    private boolean m_bcn__IsNotDefault;<a name="line.88"></a>
+<span class="sourceLineNo">088</span>    private boolean m_bcv__IsNotDefault;<a name="line.88"></a>
 <span class="sourceLineNo">089</span>    // 22, 1<a name="line.89"></a>
 <span class="sourceLineNo">090</span>    public void setFormat(String format)<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    {<a name="line.91"></a>
@@ -111,40 +111,40 @@
 <span class="sourceLineNo">103</span>      return m_format__IsNotDefault;<a name="line.103"></a>
 <span class="sourceLineNo">104</span>    }<a name="line.104"></a>
 <span class="sourceLineNo">105</span>    private boolean m_format__IsNotDefault;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // 24, 1<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    public void setBcv(String bcv)<a name="line.107"></a>
+<span class="sourceLineNo">106</span>    // 21, 1<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    public void setFilter(String filter)<a name="line.107"></a>
 <span class="sourceLineNo">108</span>    {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // 24, 1<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      m_bcv = bcv;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      m_bcv__IsNotDefault = true;<a name="line.111"></a>
+<span class="sourceLineNo">109</span>      // 21, 1<a name="line.109"></a>
+<span class="sourceLineNo">110</span>      m_filter = filter;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      m_filter__IsNotDefault = true;<a name="line.111"></a>
 <span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    public String getBcv()<a name="line.113"></a>
+<span class="sourceLineNo">113</span>    public String getFilter()<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      return m_bcv;<a name="line.115"></a>
+<span class="sourceLineNo">115</span>      return m_filter;<a name="line.115"></a>
 <span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    private String m_bcv;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    public boolean getBcv__IsNotDefault()<a name="line.118"></a>
+<span class="sourceLineNo">117</span>    private String m_filter;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    public boolean getFilter__IsNotDefault()<a name="line.118"></a>
 <span class="sourceLineNo">119</span>    {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      return m_bcv__IsNotDefault;<a name="line.120"></a>
+<span class="sourceLineNo">120</span>      return m_filter__IsNotDefault;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    private boolean m_bcv__IsNotDefault;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // 21, 1<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    public void setFilter(String filter)<a name="line.124"></a>
+<span class="sourceLineNo">122</span>    private boolean m_filter__IsNotDefault;<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // 23, 1<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    public void setBcn(String bcn)<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      // 21, 1<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      m_filter = filter;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      m_filter__IsNotDefault = true;<a name="line.128"></a>
+<span class="sourceLineNo">126</span>      // 23, 1<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      m_bcn = bcn;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>      m_bcn__IsNotDefault = true;<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    public String getFilter()<a name="line.130"></a>
+<span class="sourceLineNo">130</span>    public String getBcn()<a name="line.130"></a>
 <span class="sourceLineNo">131</span>    {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      return m_filter;<a name="line.132"></a>
+<span class="sourceLineNo">132</span>      return m_bcn;<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    private String m_filter;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    public boolean getFilter__IsNotDefault()<a name="line.135"></a>
+<span class="sourceLineNo">134</span>    private String m_bcn;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    public boolean getBcn__IsNotDefault()<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    {<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return m_filter__IsNotDefault;<a name="line.137"></a>
+<span class="sourceLineNo">137</span>      return m_bcn__IsNotDefault;<a name="line.137"></a>
 <span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    private boolean m_filter__IsNotDefault;<a name="line.139"></a>
+<span class="sourceLineNo">139</span>    private boolean m_bcn__IsNotDefault;<a name="line.139"></a>
 <span class="sourceLineNo">140</span>  }<a name="line.140"></a>
 <span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
 <span class="sourceLineNo">142</span>  protected org.jamon.AbstractTemplateProxy.ImplData makeImplData()<a name="line.142"></a>
@@ -156,10 +156,10 @@
 <span class="sourceLineNo">148</span>    return (ImplData) super.getImplData();<a name="line.148"></a>
 <span class="sourceLineNo">149</span>  }<a name="line.149"></a>
 <span class="sourceLineNo">150</span>  <a name="line.150"></a>
-<span class="sourceLineNo">151</span>  protected String bcn;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.152"></a>
+<span class="sourceLineNo">151</span>  protected String bcv;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.152"></a>
 <span class="sourceLineNo">153</span>  {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    (getImplData()).setBcn(p_bcn);<a name="line.154"></a>
+<span class="sourceLineNo">154</span>    (getImplData()).setBcv(p_bcv);<a name="line.154"></a>
 <span class="sourceLineNo">155</span>    return this;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>  }<a name="line.156"></a>
 <span class="sourceLineNo">157</span>  <a name="line.157"></a>
@@ -170,17 +170,17 @@
 <span class="sourceLineNo">162</span>    return this;<a name="line.162"></a>
 <span class="sourceLineNo">163</span>  }<a name="line.163"></a>
 <span class="sourceLineNo">164</span>  <a name="line.164"></a>
-<span class="sourceLineNo">165</span>  protected String bcv;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcv(String p_bcv)<a name="line.166"></a>
+<span class="sourceLineNo">165</span>  protected String filter;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.166"></a>
 <span class="sourceLineNo">167</span>  {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    (getImplData()).setBcv(p_bcv);<a name="line.168"></a>
+<span class="sourceLineNo">168</span>    (getImplData()).setFilter(p_filter);<a name="line.168"></a>
 <span class="sourceLineNo">169</span>    return this;<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  }<a name="line.170"></a>
 <span class="sourceLineNo">171</span>  <a name="line.171"></a>
-<span class="sourceLineNo">172</span>  protected String filter;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setFilter(String p_filter)<a name="line.173"></a>
+<span class="sourceLineNo">172</span>  protected String bcn;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public final org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl setBcn(String p_bcn)<a name="line.173"></a>
 <span class="sourceLineNo">174</span>  {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    (getImplData()).setFilter(p_filter);<a name="line.175"></a>
+<span class="sourceLineNo">175</span>    (getImplData()).setBcn(p_bcn);<a name="line.175"></a>
 <span class="sourceLineNo">176</span>    return this;<a name="line.176"></a>
 <span class="sourceLineNo">177</span>  }<a name="line.177"></a>
 <span class="sourceLineNo">178</span>  <a name="line.178"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
index 117ac4a..de0b524 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
@@ -34,27 +34,27 @@
 <span class="sourceLineNo">026</span><a name="line.26"></a>
 <span class="sourceLineNo">027</span>{<a name="line.27"></a>
 <span class="sourceLineNo">028</span>  private final HRegionServer regionServer;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>  private final String bcn;<a name="line.29"></a>
+<span class="sourceLineNo">029</span>  private final String bcv;<a name="line.29"></a>
 <span class="sourceLineNo">030</span>  private final String format;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>  private final String bcv;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>  private final String filter;<a name="line.32"></a>
+<span class="sourceLineNo">031</span>  private final String filter;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>  private final String bcn;<a name="line.32"></a>
 <span class="sourceLineNo">033</span>  protected static org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData __jamon_setOptionalArguments(org.apache.hadoop.hbase.tmpl.regionserver.RSStatusTmpl.ImplData p_implData)<a name="line.33"></a>
 <span class="sourceLineNo">034</span>  {<a name="line.34"></a>
-<span class="sourceLineNo">035</span>    if(! p_implData.getBcn__IsNotDefault())<a name="line.35"></a>
+<span class="sourceLineNo">035</span>    if(! p_implData.getBcv__IsNotDefault())<a name="line.35"></a>
 <span class="sourceLineNo">036</span>    {<a name="line.36"></a>
-<span class="sourceLineNo">037</span>      p_implData.setBcn("");<a name="line.37"></a>
+<span class="sourceLineNo">037</span>      p_implData.setBcv("");<a name="line.37"></a>
 <span class="sourceLineNo">038</span>    }<a name="line.38"></a>
 <span class="sourceLineNo">039</span>    if(! p_implData.getFormat__IsNotDefault())<a name="line.39"></a>
 <span class="sourceLineNo">040</span>    {<a name="line.40"></a>
 <span class="sourceLineNo">041</span>      p_implData.setFormat("html");<a name="line.41"></a>
 <span class="sourceLineNo">042</span>    }<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    if(! p_implData.getBcv__IsNotDefault())<a name="line.43"></a>
+<span class="sourceLineNo">043</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.43"></a>
 <span class="sourceLineNo">044</span>    {<a name="line.44"></a>
-<span class="sourceLineNo">045</span>      p_implData.setBcv("");<a name="line.45"></a>
+<span class="sourceLineNo">045</span>      p_implData.setFilter("general");<a name="line.45"></a>
 <span class="sourceLineNo">046</span>    }<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    if(! p_implData.getFilter__IsNotDefault())<a name="line.47"></a>
+<span class="sourceLineNo">047</span>    if(! p_implData.getBcn__IsNotDefault())<a name="line.47"></a>
 <span class="sourceLineNo">048</span>    {<a name="line.48"></a>
-<span class="sourceLineNo">049</span>      p_implData.setFilter("general");<a name="line.49"></a>
+<span class="sourceLineNo">049</span>      p_implData.setBcn("");<a name="line.49"></a>
 <span class="sourceLineNo">050</span>    }<a name="line.50"></a>
 <span class="sourceLineNo">051</span>    return p_implData;<a name="line.51"></a>
 <span class="sourceLineNo">052</span>  }<a name="line.52"></a>
@@ -62,10 +62,10 @@
 <span class="sourceLineNo">054</span>  {<a name="line.54"></a>
 <span class="sourceLineNo">055</span>    super(p_templateManager, __jamon_setOptionalArguments(p_implData));<a name="line.55"></a>
 <span class="sourceLineNo">056</span>    regionServer = p_implData.getRegionServer();<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    bcn = p_implData.getBcn();<a name="line.57"></a>
+<span class="sourceLineNo">057</span>    bcv = p_implData.getBcv();<a name="line.57"></a>
 <span class="sourceLineNo">058</span>    format = p_implData.getFormat();<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    bcv = p_implData.getBcv();<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    filter = p_implData.getFilter();<a name="line.60"></a>
+<span class="sourceLineNo">059</span>    filter = p_implData.getFilter();<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    bcn = p_implData.getBcn();<a name="line.60"></a>
 <span class="sourceLineNo">061</span>  }<a name="line.61"></a>
 <span class="sourceLineNo">062</span>  <a name="line.62"></a>
 <span class="sourceLineNo">063</span>  @Override public void renderNoFlush(final java.io.Writer jamonWriter)<a name="line.63"></a>


[16/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
index 38500dd..e1e4110 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
@@ -35,3706 +35,3705 @@
 <span class="sourceLineNo">027</span>import java.net.BindException;<a name="line.27"></a>
 <span class="sourceLineNo">028</span>import java.net.InetAddress;<a name="line.28"></a>
 <span class="sourceLineNo">029</span>import java.net.InetSocketAddress;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.security.PrivilegedExceptionAction;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.ArrayList;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.Collection;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.Collections;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.util.Comparator;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import java.util.HashMap;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import java.util.HashSet;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import java.util.Iterator;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import java.util.List;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import java.util.Map;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import java.util.Objects;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import java.util.Map.Entry;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import java.util.Set;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import java.util.SortedMap;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import java.util.TreeMap;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import java.util.TreeSet;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import java.util.concurrent.ConcurrentMap;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.util.concurrent.ConcurrentSkipListMap;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.util.concurrent.CountDownLatch;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.util.concurrent.TimeUnit;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.util.concurrent.locks.ReentrantReadWriteLock;<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>import javax.management.MalformedObjectNameException;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import javax.management.ObjectName;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import javax.servlet.http.HttpServlet;<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.commons.lang.SystemUtils;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.commons.lang.math.RandomUtils;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.commons.logging.Log;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.commons.logging.LogFactory;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.conf.Configuration;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.fs.FileSystem;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.fs.Path;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.Abortable;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.ChoreService;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.ClockOutOfSyncException;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.CoordinatedStateManager;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.CoordinatedStateManagerFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.HConstants;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.HealthCheckChore;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.PleaseHoldException;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.ScheduledChore;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.ServerName;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.Stoppable;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.TableDescriptors;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.TableName;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.YouAreDeadException;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.ZNodeClearer;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.client.ConnectionUtils;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.client.Put;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.client.RpcRetryingCallerFactory;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.client.locking.EntityLock;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.client.locking.LockServiceClient;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.conf.ConfigurationManager;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.coordination.SplitLogWorkerCoordination;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.exceptions.UnknownProtocolException;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.executor.ExecutorService;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.fs.HFileSystem;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.io.hfile.HFile;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.io.util.MemorySizeUtil;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.ipc.RpcCallContext;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.ipc.RpcServerInterface;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.ipc.ServerRpcController;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.HMaster;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.mob.MobCacheConfig;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.procedure.RegionServerProcedureManagerHost;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.quotas.FileSystemUtilizationChore;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.quotas.QuotaUtil;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.quotas.RegionServerRpcQuotaManager;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.quotas.RegionServerSpaceQuotaManager;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionConfiguration;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionProgress;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.regionserver.handler.CloseMetaHandler;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.regionserver.handler.CloseRegionHandler;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.regionserver.handler.RegionReplicaFlushHandler;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.regionserver.throttle.FlushThroughputControllerFactory;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.regionserver.throttle.ThroughputController;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.regionserver.wal.MetricsWAL;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.regionserver.wal.WALActionsListener;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.replication.regionserver.Replication;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.replication.regionserver.ReplicationLoad;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.security.User;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.*;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceCall;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionStoreSequenceIds;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.Coprocessor;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.Coprocessor.Builder;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionServerInfo;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier.RegionSpecifierType;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUse;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportRequest;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRSFatalErrorRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.trace.SpanReceiverHost;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.util.Addressing;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.util.CompressionTest;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.FSTableDescriptors;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.HasThread;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.util.JSONBean;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.ServerRegionReplicaUtil;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.Sleeper;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.wal.WAL;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.wal.WALFactory;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.zookeeper.ClusterStatusTracker;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.zookeeper.RecoveringRegionWatcher;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.zookeeper.ZKClusterId;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.zookeeper.ZKSplitLog;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hadoop.metrics2.util.MBeans;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hadoop.util.ReflectionUtils;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hadoop.util.StringUtils;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>import org.apache.zookeeper.KeeperException;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.zookeeper.KeeperException.NoNodeException;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.zookeeper.data.Stat;<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>import com.google.common.annotations.VisibleForTesting;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import com.google.common.base.Preconditions;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import com.google.common.collect.Maps;<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>import sun.misc.Signal;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>import sun.misc.SignalHandler;<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>/**<a name="line.215"></a>
-<span class="sourceLineNo">216</span> * HRegionServer makes a set of HRegions available to clients. It checks in with<a name="line.216"></a>
-<span class="sourceLineNo">217</span> * the HMaster. There are many HRegionServers in a single HBase deployment.<a name="line.217"></a>
-<span class="sourceLineNo">218</span> */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.219"></a>
-<span class="sourceLineNo">220</span>@SuppressWarnings({ "deprecation"})<a name="line.220"></a>
-<span class="sourceLineNo">221</span>public class HRegionServer extends HasThread implements<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    RegionServerServices, LastSequenceId, ConfigurationObserver {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  // Time to pause if master says 'please hold'. Make configurable if needed.<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  private static final int INIT_PAUSE_TIME_MS = 1000;<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  public static final String REGION_LOCK_AWAIT_TIME_SEC =<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      "hbase.regionserver.region.lock.await.time.sec";<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public static final int DEFAULT_REGION_LOCK_AWAIT_TIME_SEC = 300;  // 5 min<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  private static final Log LOG = LogFactory.getLog(HRegionServer.class);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * For testing only!  Set to true to skip notifying region assignment to master .<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="MS_SHOULD_BE_FINAL")<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  public static boolean TEST_SKIP_REPORTING_TRANSITION = false;<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>  /*<a name="line.237"></a>
-<span class="sourceLineNo">238</span>   * Strings to be used in forming the exception message for<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * RegionsAlreadyInTransitionException.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   */<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  protected static final String OPEN = "OPEN";<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  protected static final String CLOSE = "CLOSE";<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  //RegionName vs current action in progress<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  //true - if open region action in progress<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  //false - if close region action in progress<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  protected final ConcurrentMap&lt;byte[], Boolean&gt; regionsInTransitionInRS =<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    new ConcurrentSkipListMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  // Cache flushing<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  protected MemStoreFlusher cacheFlusher;<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>  protected HeapMemoryManager hMemManager;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected CountDownLatch initLatch = null;<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>  /**<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * Cluster connection to be shared by services.<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * Initialized at server startup and closed when server shuts down.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * Clients must never close it explicitly.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   */<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  protected ClusterConnection clusterConnection;<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /*<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   * Long-living meta table locator, which is created when the server is started and stopped<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   * when server shuts down. References to this locator shall be used to perform according<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * operations in EventHandlers. Primary reason for this decision is to make it mockable<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * for tests.<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   */<a name="line.268"></a>
-<span class="sourceLineNo">269</span>  protected MetaTableLocator metaTableLocator;<a name="line.269"></a>
-<span class="sourceLineNo">270</span><a name="line.270"></a>
-<span class="sourceLineNo">271</span>  // Watch if a region is out of recovering state from ZooKeeper<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  @SuppressWarnings("unused")<a name="line.272"></a>
-<span class="sourceLineNo">273</span>  private RecoveringRegionWatcher recoveringRegionWatcher;<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>  /**<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * Go here to get table descriptors.<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   */<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  protected TableDescriptors tableDescriptors;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  // Replication services. If no replication, this handler will be null.<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  protected ReplicationSourceService replicationSourceHandler;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  protected ReplicationSinkService replicationSinkHandler;<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  // Compactions<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public CompactSplit compactSplitThread;<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>  /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * Map of regions currently being served by this region server. Key is the<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * encoded region name.  All access should be synchronized.<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   */<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected final Map&lt;String, Region&gt; onlineRegions = new ConcurrentHashMap&lt;&gt;();<a name="line.291"></a>
-<span class="sourceLineNo">292</span><a name="line.292"></a>
-<span class="sourceLineNo">293</span>  /**<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   * Map of encoded region names to the DataNode locations they should be hosted on<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   * We store the value as InetSocketAddress since this is used only in HDFS<a name="line.295"></a>
-<span class="sourceLineNo">296</span>   * API (create() that takes favored nodes as hints for placing file blocks).<a name="line.296"></a>
-<span class="sourceLineNo">297</span>   * We could have used ServerName here as the value class, but we'd need to<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   * convert it to InetSocketAddress at some point before the HDFS API call, and<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   * it seems a bit weird to store ServerName since ServerName refers to RegionServers<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   * and here we really mean DataNode locations.<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   */<a name="line.301"></a>
-<span class="sourceLineNo">302</span>  protected final Map&lt;String, InetSocketAddress[]&gt; regionFavoredNodesMap =<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      new ConcurrentHashMap&lt;&gt;();<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>  /**<a name="line.305"></a>
-<span class="sourceLineNo">306</span>   * Set of regions currently being in recovering state which means it can accept writes(edits from<a name="line.306"></a>
-<span class="sourceLineNo">307</span>   * previous failed region server) but not reads. A recovering region is also an online region.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>   */<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  protected final Map&lt;String, Region&gt; recoveringRegions = Collections<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      .synchronizedMap(new HashMap&lt;String, Region&gt;());<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  // Leases<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  protected Leases leases;<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>  // Instance of the hbase executor service.<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  protected ExecutorService service;<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>  // If false, the file system has become unavailable<a name="line.318"></a>
-<span class="sourceLineNo">319</span>  protected volatile boolean fsOk;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  protected HFileSystem fs;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  protected HFileSystem walFs;<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  // Set when a report to the master comes back with a message asking us to<a name="line.323"></a>
-<span class="sourceLineNo">324</span>  // shutdown. Also set by call to stop when debugging or running unit tests<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  // of HRegionServer in isolation.<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  private volatile boolean stopped = false;<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  // Go down hard. Used if file system becomes unavailable and also in<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  // debugging and unit tests.<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  private volatile boolean abortRequested;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  ConcurrentMap&lt;String, Integer&gt; rowlocks = new ConcurrentHashMap&lt;&gt;();<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>  // A state before we go into stopped state.  At this stage we're closing user<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  // space regions.<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  private boolean stopping = false;<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>  volatile boolean killed = false;<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  protected final Configuration conf;<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  private Path rootDir;<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  private Path walRootDir;<a name="line.343"></a>
-<span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>  protected final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  final int numRetries;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  protected final int threadWakeFrequency;<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  protected final int msgInterval;<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  protected final int numRegionsToReport;<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>  // Stub to do region server status calls against the master.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>  private volatile RegionServerStatusService.BlockingInterface rssStub;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  private volatile LockService.BlockingInterface lockStub;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  // RPC client. Used to make the stub above that does region server status checking.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  RpcClient rpcClient;<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  private RpcRetryingCallerFactory rpcRetryingCallerFactory;<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>  private UncaughtExceptionHandler uncaughtExceptionHandler;<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  // Info server. Default access so can be used by unit tests. REGIONSERVER<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  // is name of the webapp and the attribute name used stuffing this instance<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  // into web context.<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  protected InfoServer infoServer;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  private JvmPauseMonitor pauseMonitor;<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  /** region server process name */<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  public static final String REGIONSERVER = "regionserver";<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>  MetricsRegionServer metricsRegionServer;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  MetricsTable metricsTable;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  private SpanReceiverHost spanReceiverHost;<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  /**<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * ChoreService used to schedule tasks that we want to run periodically<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   */<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  private final ChoreService choreService;<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  /*<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * Check for compactions requests.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  ScheduledChore compactionChecker;<a name="line.385"></a>
-<span class="sourceLineNo">386</span><a name="line.386"></a>
-<span class="sourceLineNo">387</span>  /*<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   * Check for flushes<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   */<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  ScheduledChore periodicFlusher;<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  protected volatile WALFactory walFactory;<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  // WAL roller. log is protected rather than private to avoid<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  // eclipse warning when accessed by inner classes<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  protected final LogRoller walRoller;<a name="line.396"></a>
-<span class="sourceLineNo">397</span><a name="line.397"></a>
-<span class="sourceLineNo">398</span>  // flag set after we're done setting up server threads<a name="line.398"></a>
-<span class="sourceLineNo">399</span>  final AtomicBoolean online = new AtomicBoolean(false);<a name="line.399"></a>
-<span class="sourceLineNo">400</span><a name="line.400"></a>
-<span class="sourceLineNo">401</span>  // zookeeper connection and watcher<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  protected ZooKeeperWatcher zooKeeper;<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  // master address tracker<a name="line.404"></a>
-<span class="sourceLineNo">405</span>  private MasterAddressTracker masterAddressTracker;<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>  // Cluster Status Tracker<a name="line.407"></a>
-<span class="sourceLineNo">408</span>  protected ClusterStatusTracker clusterStatusTracker;<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>  // Log Splitting Worker<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  private SplitLogWorker splitLogWorker;<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  // A sleeper that sleeps for msgInterval.<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  protected final Sleeper sleeper;<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  private final int operationTimeout;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private final int shortOperationTimeout;<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  private final RegionServerAccounting regionServerAccounting;<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>  // Cache configuration and block cache reference<a name="line.421"></a>
-<span class="sourceLineNo">422</span>  protected CacheConfig cacheConfig;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  // Cache configuration for mob<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  final MobCacheConfig mobCacheConfig;<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>  /** The health check chore. */<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  private HealthCheckChore healthCheckChore;<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  /** The nonce manager chore. */<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  private ScheduledChore nonceManagerChore;<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>  private Map&lt;String, com.google.protobuf.Service&gt; coprocessorServiceHandlers = Maps.newHashMap();<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>  /**<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   * The server name the Master sees us as.  Its made from the hostname the<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * master passes us, port, and server startcode. Gets set after registration<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * against  Master.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  protected ServerName serverName;<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>  /*<a name="line.441"></a>
-<span class="sourceLineNo">442</span>   * hostname specified by hostname config<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   */<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  protected String useThisHostnameInstead;<a name="line.444"></a>
-<span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>  // key to the config parameter of server hostname<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  // the specification of server hostname is optional. The hostname should be resolvable from<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  // both master and region server<a name="line.448"></a>
-<span class="sourceLineNo">449</span>  @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  final static String RS_HOSTNAME_KEY = "hbase.regionserver.hostname";<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  protected final static String MASTER_HOSTNAME_KEY = "hbase.master.hostname";<a name="line.452"></a>
-<span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>  /**<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * This servers startcode.<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   */<a name="line.456"></a>
-<span class="sourceLineNo">457</span>  protected final long startcode;<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>  /**<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   * Unique identifier for the cluster we are a part of.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   */<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  private String clusterId;<a name="line.462"></a>
-<span class="sourceLineNo">463</span><a name="line.463"></a>
-<span class="sourceLineNo">464</span>  /**<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * MX Bean for RegionServerInfo<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   */<a name="line.466"></a>
-<span class="sourceLineNo">467</span>  private ObjectName mxBean = null;<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>  /**<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   * Chore to clean periodically the moved region list<a name="line.470"></a>
-<span class="sourceLineNo">471</span>   */<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  private MovedRegionsCleaner movedRegionsCleaner;<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>  // chore for refreshing store files for secondary regions<a name="line.474"></a>
-<span class="sourceLineNo">475</span>  private StorefileRefresherChore storefileRefresher;<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>  private RegionServerCoprocessorHost rsHost;<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>  private RegionServerProcedureManagerHost rspmHost;<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>  private RegionServerRpcQuotaManager rsQuotaManager;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  private RegionServerSpaceQuotaManager rsSpaceQuotaManager;<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  /**<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * Nonce manager. Nonces are used to make operations like increment and append idempotent<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * in the case where client doesn't receive the response from a successful operation and<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   * retries. We track the successful ops for some time via a nonce sent by client and handle<a name="line.487"></a>
-<span class="sourceLineNo">488</span>   * duplicate operations (currently, by failing them; in future we might use MVCC to return<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * result). Nonces are also recovered from WAL during, recovery; however, the caveats (from<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   * HBASE-3787) are:<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   * - WAL recovery is optimized, and under high load we won't read nearly nonce-timeout worth<a name="line.491"></a>
-<span class="sourceLineNo">492</span>   *   of past records. If we don't read the records, we don't read and recover the nonces.<a name="line.492"></a>
-<span class="sourceLineNo">493</span>   *   Some WALs within nonce-timeout at recovery may not even be present due to rolling/cleanup.<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   * - There's no WAL recovery during normal region move, so nonces will not be transfered.<a name="line.494"></a>
-<span class="sourceLineNo">495</span>   * We can have separate additional "Nonce WAL". It will just contain bunch of numbers and<a name="line.495"></a>
-<span class="sourceLineNo">496</span>   * won't be flushed on main path - because WAL itself also contains nonces, if we only flush<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * it before memstore flush, for a given nonce we will either see it in the WAL (if it was<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   * never flushed to disk, it will be part of recovery), or we'll see it as part of the nonce<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * log (or both occasionally, which doesn't matter). Nonce log file can be deleted after the<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * latest nonce in it expired. It can also be recovered during move.<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   */<a name="line.501"></a>
-<span class="sourceLineNo">502</span>  final ServerNonceManager nonceManager;<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span>  private UserProvider userProvider;<a name="line.504"></a>
-<span class="sourceLineNo">505</span><a name="line.505"></a>
-<span class="sourceLineNo">506</span>  protected final RSRpcServices rpcServices;<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>  protected BaseCoordinatedStateManager csm;<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>  /**<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   * Configuration manager is used to register/deregister and notify the configuration observers<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * when the regionserver is notified that there was a change in the on disk configs.<a name="line.512"></a>
-<span class="sourceLineNo">513</span>   */<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  protected final ConfigurationManager configurationManager;<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>  @VisibleForTesting<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  CompactedHFilesDischarger compactedFileDischarger;<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>  private volatile ThroughputController flushThroughputController;<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>  protected SecureBulkLoadManager secureBulkLoadManager;<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>  protected FileSystemUtilizationChore fsUtilizationChore;<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>  /**<a name="line.525"></a>
-<span class="sourceLineNo">526</span>   * Starts a HRegionServer at the default location.<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   */<a name="line.527"></a>
-<span class="sourceLineNo">528</span>  public HRegionServer(Configuration conf) throws IOException, InterruptedException {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    this(conf, CoordinatedStateManagerFactory.getCoordinatedStateManager(conf));<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>  /**<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * Starts a HRegionServer at the default location<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @param csm implementation of CoordinatedStateManager to be used<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   */<a name="line.535"></a>
-<span class="sourceLineNo">536</span>  public HRegionServer(Configuration conf, CoordinatedStateManager csm) throws IOException {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    super("RegionServer");  // thread name<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    this.fsOk = true;<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    this.conf = conf;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    MemorySizeUtil.checkForClusterFreeHeapMemoryLimit(this.conf);<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    HFile.checkHFileVersion(this.conf);<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    checkCodecs(this.conf);<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    this.userProvider = UserProvider.instantiate(conf);<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    FSUtils.setupShortCircuitRead(this.conf);<a name="line.544"></a>
-<span class="sourceLineNo">545</span><a name="line.545"></a>
-<span class="sourceLineNo">546</span>    Replication.decorateRegionServerConfiguration(this.conf);<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    // Disable usage of meta replicas in the regionserver<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    this.conf.setBoolean(HConstants.USE_META_REPLICAS, false);<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    // Config'ed params<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    this.numRetries = this.conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.551"></a>
-<span class="sourceLineNo">552</span>        HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    this.threadWakeFrequency = conf.getInt(HConstants.THREAD_WAKE_FREQUENCY, 10 * 1000);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    this.msgInterval = conf.getInt("hbase.regionserver.msginterval", 3 * 1000);<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>    this.sleeper = new Sleeper(this.msgInterval, this);<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>    boolean isNoncesEnabled = conf.getBoolean(HConstants.HBASE_RS_NONCES_ENABLED, true);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    this.nonceManager = isNoncesEnabled ? new ServerNonceManager(this.conf) : null;<a name="line.559"></a>
-<span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>    this.numRegionsToReport = conf.getInt(<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      "hbase.regionserver.numregionstoreport", 10);<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>    this.operationTimeout = conf.getInt(<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);<a name="line.566"></a>
-<span class="sourceLineNo">567</span><a name="line.567"></a>
-<span class="sourceLineNo">568</span>    this.shortOperationTimeout = conf.getInt(<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      HConstants.HBASE_RPC_SHORTOPERATION_TIMEOUT_KEY,<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      HConstants.DEFAULT_HBASE_RPC_SHORTOPERATION_TIMEOUT);<a name="line.570"></a>
-<span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span>    this.abortRequested = false;<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    this.stopped = false;<a name="line.573"></a>
-<span class="sourceLineNo">574</span><a name="line.574"></a>
-<span class="sourceLineNo">575</span>    rpcServices = createRpcServices();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    this.startcode = System.currentTimeMillis();<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    if (this instanceof HMaster) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      useThisHostnameInstead = conf.get(MASTER_HOSTNAME_KEY);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    } else {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      useThisHostnameInstead = conf.get(RS_HOSTNAME_KEY);<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    }<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    String hostName = shouldUseThisHostnameInstead() ? useThisHostnameInstead :<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      rpcServices.isa.getHostName();<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    serverName = ServerName.valueOf(hostName, rpcServices.isa.getPort(), startcode);<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>    rpcControllerFactory = RpcControllerFactory.instantiate(this.conf);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    rpcRetryingCallerFactory = RpcRetryingCallerFactory.instantiate(this.conf);<a name="line.587"></a>
-<span class="sourceLineNo">588</span><a name="line.588"></a>
-<span class="sourceLineNo">589</span>    // login the zookeeper client principal (if using security)<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    ZKUtil.loginClient(this.conf, HConstants.ZK_CLIENT_KEYTAB_FILE,<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      HConstants.ZK_CLIENT_KERBEROS_PRINCIPAL, hostName);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    // login the server principal (if using secure Hadoop)<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    login(userProvider, hostName);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    // init superusers and add the server principal (if using security)<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    // or process owner as default super user.<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    Superusers.initialize(conf);<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>    regionServerAccounting = new RegionServerAccounting(conf);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>    cacheConfig = new CacheConfig(conf);<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    mobCacheConfig = new MobCacheConfig(conf);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      @Override<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      public void uncaughtException(Thread t, Throwable e) {<a name="line.603"></a>
-<span class="sourceLineNo">604</span>        abort("Uncaught exception in service thread " + t.getName(), e);<a name="line.604"></a>
-<span class="sourceLineNo">605</span>      }<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    };<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>    initializeFileSystem();<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    service = new ExecutorService(getServerName().toShortString());<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>    // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      // Open connection to zookeeper and set primary watcher<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      zooKeeper = new ZooKeeperWatcher(conf, getProcessName() + ":" +<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span>      this.csm = (BaseCoordinatedStateManager) csm;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      this.csm.initialize(this);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      this.csm.start();<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>      masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      masterAddressTracker.start();<a name="line.624"></a>
-<span class="sourceLineNo">625</span><a name="line.625"></a>
-<span class="sourceLineNo">626</span>      clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      clusterStatusTracker.start();<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    this.configurationManager = new ConfigurationManager();<a name="line.629"></a>
-<span class="sourceLineNo">630</span><a name="line.630"></a>
-<span class="sourceLineNo">631</span>    rpcServices.start();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    putUpWebUI();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    this.walRoller = new LogRoller(this, this);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    this.choreService = new ChoreService(getServerName().toString(), true);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    this.flushThroughputController = FlushThroughputControllerFactory.create(this, conf);<a name="line.635"></a>
-<span class="sourceLineNo">636</span><a name="line.636"></a>
-<span class="sourceLineNo">637</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>        @Override<a name="line.639"></a>
-<span class="sourceLineNo">640</span>        public void handle(Signal signal) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>          getConfiguration().reloadConfiguration();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>          configurationManager.notifyAllObservers(getConfiguration());<a name="line.642"></a>
-<span class="sourceLineNo">643</span>        }<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      });<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    // Create the CompactedFileDischarger chore service. This chore helps to<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    // remove the compacted files<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    // that will no longer be used in reads.<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    // Default is 2 mins. The default value for TTLCleaner is 5 mins so we set this to<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    // 2 mins so that compacted files can be archived before the TTLCleaner runs<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    int cleanerInterval =<a name="line.651"></a>
-<span class="sourceLineNo">652</span>        conf.getInt("hbase.hfile.compaction.discharger.interval", 2 * 60 * 1000);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    this.compactedFileDischarger =<a name="line.653"></a>
-<span class="sourceLineNo">654</span>        new CompactedHFilesDischarger(cleanerInterval, this, this);<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    choreService.scheduleChore(compactedFileDischarger);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span>  private void initializeFileSystem() throws IOException {<a name="line.658"></a>
-<span class="sourceLineNo">659</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    // (unless all is set to defaults).<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.670"></a>
-<span class="sourceLineNo">671</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.671"></a>
-<span class="sourceLineNo">672</span>  }<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>    return new FSTableDescriptors(this.conf,<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false);<a name="line.676"></a>
-<span class="sourceLineNo">677</span>  }<a name="line.677"></a>
-<span class="sourceLineNo">678</span><a name="line.678"></a>
-<span class="sourceLineNo">679</span>  protected void setInitLatch(CountDownLatch latch) {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    this.initLatch = latch;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>  /*<a name="line.683"></a>
-<span class="sourceLineNo">684</span>   * Returns true if configured hostname should be used<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   */<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  protected boolean shouldUseThisHostnameInstead() {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    return useThisHostnameInstead != null &amp;&amp; !useThisHostnameInstead.isEmpty();<a name="line.687"></a>
-<span class="sourceLineNo">688</span>  }<a name="line.688"></a>
-<span class="sourceLineNo">689</span><a name="line.689"></a>
-<span class="sourceLineNo">690</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    user.login("hbase.regionserver.keytab.file",<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      "hbase.regionserver.kerberos.principal", host);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>  }<a name="line.693"></a>
-<span class="sourceLineNo">694</span><a name="line.694"></a>
-<span class="sourceLineNo">695</span>  protected void waitForMasterActive(){<a name="line.695"></a>
-<span class="sourceLineNo">696</span>  }<a name="line.696"></a>
-<span class="sourceLineNo">697</span><a name="line.697"></a>
-<span class="sourceLineNo">698</span>  protected String getProcessName() {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    return REGIONSERVER;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
-<span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>  protected boolean canCreateBaseZNode() {<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    return false;<a name="line.703"></a>
-<span class="sourceLineNo">704</span>  }<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>  protected boolean canUpdateTableDescriptor() {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>    return false;<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  }<a name="line.708"></a>
-<span class="sourceLineNo">709</span><a name="line.709"></a>
-<span class="sourceLineNo">710</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return new RSRpcServices(this);<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  }<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>  protected void configureInfoServer() {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    return RSDumpServlet.class;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>  }<a name="line.721"></a>
-<span class="sourceLineNo">722</span><a name="line.722"></a>
-<span class="sourceLineNo">723</span>  @Override<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    /*<a name="line.725"></a>
-<span class="sourceLineNo">726</span>     * No stacking of instances is allowed for a single service name<a name="line.726"></a>
-<span class="sourceLineNo">727</span>     */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.728"></a>
-<span class="sourceLineNo">729</span>        instance.getDescriptorForType();<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      LOG.error("Coprocessor service " + serviceName<a name="line.732"></a>
-<span class="sourceLineNo">733</span>          + " already registered, rejecting request from " + instance);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      return false;<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    }<a name="line.735"></a>
-<span class="sourceLineNo">736</span><a name="line.736"></a>
-<span class="sourceLineNo">737</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    if (LOG.isDebugEnabled()) {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      LOG.debug("Registered regionserver coprocessor service: service=" + serviceName);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    }<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    return true;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span>  /**<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * the local server. Safe to use going to local or remote server.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * Create this instance in a method can be intercepted and mocked in tests.<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @throws IOException<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   */<a name="line.749"></a>
-<span class="sourceLineNo">750</span>  @VisibleForTesting<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    // and remote invocations.<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      serverName, rpcServices, rpcServices);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   * @param c<a name="line.761"></a>
-<span class="sourceLineNo">762</span>   * @throws IOException<a name="line.762"></a>
-<span class="sourceLineNo">763</span>   */<a name="line.763"></a>
-<span class="sourceLineNo">764</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.764"></a>
-<span class="sourceLineNo">765</span>    // check to see if the codec list is available:<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    if (codecs == null) return;<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    for (String codec : codecs) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>        throw new IOException("Compression codec " + codec +<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          " not supported, aborting RS construction");<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    }<a name="line.773"></a>
-<span class="sourceLineNo">774</span>  }<a name="line.774"></a>
-<span class="sourceLineNo">775</span><a name="line.775"></a>
-<span class="sourceLineNo">776</span>  public String getClusterId() {<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    return this.clusterId;<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  }<a name="line.778"></a>
-<span class="sourceLineNo">779</span><a name="line.779"></a>
-<span class="sourceLineNo">780</span>  /**<a name="line.780"></a>
-<span class="sourceLineNo">781</span>   * Setup our cluster connection if not already initialized.<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   * @throws IOException<a name="line.782"></a>
-<span class="sourceLineNo">783</span>   */<a name="line.783"></a>
-<span class="sourceLineNo">784</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    if (clusterConnection == null) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span>      clusterConnection = createClusterConnection();<a name="line.786"></a>
-<span class="sourceLineNo">787</span>      metaTableLocator = new MetaTableLocator();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    }<a name="line.788"></a>
-<span class="sourceLineNo">789</span>  }<a name="line.789"></a>
-<span class="sourceLineNo">790</span><a name="line.790"></a>
-<span class="sourceLineNo">791</span>  /**<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   * All initialization needed before we go register with Master.<a name="line.792"></a>
-<span class="sourceLineNo">793</span>   *<a name="line.793"></a>
-<span class="sourceLineNo">794</span>   * @throws IOException<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * @throws InterruptedException<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   */<a name="line.796"></a>
-<span class="sourceLineNo">797</span>  private void preRegistrationInitialization(){<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    try {<a name="line.798"></a>
-<span class="sourceLineNo">799</span>      setupClusterConnection();<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>      this.secureBulkLoadManager = new SecureBulkLoadManager(this.conf, clusterConnection);<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      this.secureBulkLoadManager.start();<a name="line.802"></a>
-<span class="sourceLineNo">803</span><a name="line.803"></a>
-<span class="sourceLineNo">804</span>      // Health checker thread.<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      if (isHealthCheckerConfigured()) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>        int sleepTime = this.conf.getInt(HConstants.HEALTH_CHORE_WAKE_FREQ,<a name="line.806"></a>
-<span class="sourceLineNo">807</span>          HConstants.DEFAULT_THREAD_WAKE_FREQUENCY);<a name="line.807"></a>
-<span class="sourceLineNo">808</span>        healthCheckChore = new HealthCheckChore(sleepTime, this, getConfiguration());<a name="line.808"></a>
-<span class="sourceLineNo">809</span>      }<a name="line.809"></a>
-<span class="sourceLineNo">810</span><a name="line.810"></a>
-<span class="sourceLineNo">811</span>      initializeZooKeeper();<a name="line.811"></a>
-<span class="sourceLineNo">812</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.812"></a>
-<span class="sourceLineNo">813</span>        initializeThreads();<a name="line.813"></a>
-<span class="sourceLineNo">814</span>      }<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    } catch (Throwable t) {<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      // Call stop if error or process will stick around for ever since server<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      // puts up non-daemon threads.<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      this.rpcServices.stop();<a name="line.818"></a>
-<span class="sourceLineNo">819</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    }<a name="line.820"></a>
-<span class="sourceLineNo">821</span>  }<a name="line.821"></a>
-<span class="sourceLineNo">822</span><a name="line.822"></a>
-<span class="sourceLineNo">823</span>  /**<a name="line.823"></a>
-<span class="sourceLineNo">824</span>   * Bring up connection to zk ensemble and then wait until a master for this<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * cluster and then after that, wait until cluster 'up' flag has been set.<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * This is the order in which master does things.<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * Finally open long-living server short-circuit connection.<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * @throws IOException<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * @throws InterruptedException<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   */<a name="line.830"></a>
-<span class="sourceLineNo">831</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    justification="cluster Id znode read would give us correct response")<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    // block until a master is available.  No point in starting up if no master<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    // running.<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    // when ready.<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.841"></a>
-<span class="sourceLineNo">842</span><a name="line.842"></a>
-<span class="sourceLineNo">843</span>    doLatch(this.initLatch);<a name="line.843"></a>
-<span class="sourceLineNo">844</span><a name="line.844"></a>
-<span class="sourceLineNo">845</span>    // Retrieve clusterId<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    // Since cluster status is now up<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    // ID should have already been set by HMaster<a name="line.847"></a>
-<span class="sourceLineNo">848</span>    try {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      if (clusterId == null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        this.abort("Cluster ID has not been set");<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      LOG.info("ClusterId : "+clusterId);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    } catch (KeeperException e) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      this.abort("Failed to retrieve Cluster ID",e);<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    }<a name="line.856"></a>
-<span class="sourceLineNo">857</span><a name="line.857"></a>
-<span class="sourceLineNo">858</span>    // In case colocated master, wait here till it's active.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    // So backup masters won't start as regionservers.<a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // This is to avoid showing backup masters as regionservers<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // in master web UI, or assigning any region to them.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    waitForMasterActive();<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    if (isStopped() || isAborted()) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      return; // No need for further initialization<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    }<a name="line.865"></a>
-<span class="sourceLineNo">866</span><a name="line.866"></a>
-<span class="sourceLineNo">867</span>    // watch for snapshots and other procedures<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    try {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      rspmHost.loadProcedures(conf);<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      rspmHost.initialize(this);<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    } catch (KeeperException e) {<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    }<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    // register watcher for recovering regions<a name="line.875"></a>
-<span class="sourceLineNo">876</span>    this.recoveringRegionWatcher = new RecoveringRegionWatcher(this.zooKeeper, this);<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  }<a name="line.877"></a>
-<span class="sourceLineNo">878</span><a name="line.878"></a>
-<span class="sourceLineNo">879</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED",<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      justification="We don't care about the return")<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private void doLatch(final CountDownLatch latch) throws InterruptedException {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    if (latch != null) {<a name="line.882"></a>
-<span class="sourceLineNo">883</span>      // Result is ignored intentionally but if I remove the below, findbugs complains (the<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      // above justification on this method doesn't seem to suppress it).<a name="line.884"></a>
-<span class="sourceLineNo">885</span>      boolean result = latch.await(20, TimeUnit.SECONDS);<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    }<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  /**<a name="line.889"></a>
-<span class="sourceLineNo">890</span>   * Utilty method to wait indefinitely on a znode availability while checking<a name="line.890"></a>
-<span class="sourceLineNo">891</span>   * if the region server is shut dow

<TRUNCATED>

[30/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
index 959e3ef..ac32645 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.FlushResultImpl.html
@@ -1401,6821 +1401,6830 @@
 <span class="sourceLineNo">1393</span>  @Override<a name="line.1393"></a>
 <span class="sourceLineNo">1394</span>  public boolean isSplittable() {<a name="line.1394"></a>
 <span class="sourceLineNo">1395</span>    boolean result = isAvailable() &amp;&amp; !hasReferences();<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result, new Throwable("LOGGING"));<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    return result;<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  }<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span><a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  @Override<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>  public boolean isMergeable() {<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    if (!isAvailable()) {<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      LOG.debug("Region " + this<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>          + " is not mergeable because it is closing or closed");<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      return false;<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    }<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    if (hasReferences()) {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      LOG.debug("Region " + this<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>          + " is not mergeable because it has references");<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      return false;<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span><a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    return true;<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span><a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>  public boolean areWritesEnabled() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>    synchronized(this.writestate) {<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      return this.writestate.writesEnabled;<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>  }<a name="line.1420"></a>
+<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result + " " + getRegionInfo().getShortNameToLog(),<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>      new Throwable("LOGGING: REMOVE"));<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    // REMOVE BELOW!!!!<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>    LOG.info("DEBUG LIST ALL FILES");<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    for (Store store: this.stores.values()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>      LOG.info("store " + store.getColumnFamilyName());<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>      for (StoreFile sf: store.getStorefiles()) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        LOG.info(sf.toStringDetailed());<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>      }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>    }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return result;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>  public boolean isMergeable() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    if (!isAvailable()) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      LOG.debug("Region " + this<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>          + " is not mergeable because it is closing or closed");<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>      return false;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>    if (hasReferences()) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      LOG.debug("Region " + this<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>          + " is not mergeable because it has references");<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      return false;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
 <span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  @VisibleForTesting<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>    return mvcc;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>  }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>  @Override<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>  public long getMaxFlushedSeqId() {<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    return maxFlushedSeqId;<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  @Override<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      // This scan can read even uncommitted transactions<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      return Long.MAX_VALUE;<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>    }<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>    return mvcc.getReadPoint();<a name="line.1438"></a>
+<span class="sourceLineNo">1422</span>    return true;<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>  }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span><a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>  public boolean areWritesEnabled() {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>    synchronized(this.writestate) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>      return this.writestate.writesEnabled;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>    }<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>  }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span><a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>  @VisibleForTesting<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>    return mvcc;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>  }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  @Override<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>  public long getMaxFlushedSeqId() {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>    return maxFlushedSeqId;<a name="line.1438"></a>
 <span class="sourceLineNo">1439</span>  }<a name="line.1439"></a>
 <span class="sourceLineNo">1440</span><a name="line.1440"></a>
 <span class="sourceLineNo">1441</span>  @Override<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    return getReadPoint(isolationLevel);<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>  }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span><a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>  @Override<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  /**<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * service any more calls.<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   *<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>   * time-sensitive thread.<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>   *<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * vector if already closed and null if judged that it should not close.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   *<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * @throws IOException e<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>   * caller MUST abort after this.<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>   */<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    return close(false);<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>  private final Object closeLock = new Object();<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span><a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>  /** Conf key for the periodic flush interval */<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  /** Default interval for the memstore flush */<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  /** Default interval for System tables memstore flush */<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span><a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      "hbase.regionserver.flush.per.changes";<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  /**<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>   */<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   * Shut down each HStore, don't service any more calls.<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   *<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * This method could take some time to execute, so don't call it from a<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * time-sensitive thread.<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   *<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>   * @param abort true if server is aborting (only during testing)<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>   * we are not to close at this time or we are already closed.<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>   *<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>   * @throws IOException e<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>   * caller MUST abort after this.<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>   */<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>    // threads attempting to close will run up against each other.<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        "Closing region " + this +<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        (abort ? " due to abort" : ""));<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span><a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>    status.setStatus("Waiting for close lock");<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>    try {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>      synchronized (closeLock) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        return doClose(abort, status);<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      }<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>    } finally {<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      status.cleanup();<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  /**<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>   * Exposed for some very specific unit tests.<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>   */<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>  @VisibleForTesting<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>  public void setClosing(boolean closing) {<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>    this.closing.set(closing);<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>  }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>  /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>   */<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  @VisibleForTesting<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      justification="I think FindBugs is confused")<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      throws IOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    if (isClosed()) {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      LOG.warn("Region " + this + " already closed");<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      return null;<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1442</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      // This scan can read even uncommitted transactions<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>      return Long.MAX_VALUE;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>    return mvcc.getReadPoint();<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span><a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>  @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>    return getReadPoint(isolationLevel);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>  }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span><a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  @Override<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span><a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>  /**<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>   * service any more calls.<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>   *<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>   * time-sensitive thread.<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>   *<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>   * vector if already closed and null if judged that it should not close.<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>   *<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>   * @throws IOException e<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>   * caller MUST abort after this.<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>   */<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>    return close(false);<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>  }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span><a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>  private final Object closeLock = new Object();<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span><a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  /** Conf key for the periodic flush interval */<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>  /** Default interval for the memstore flush */<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>  /** Default interval for System tables memstore flush */<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      "hbase.regionserver.flush.per.changes";<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>  /**<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>   * Shut down each HStore, don't service any more calls.<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>   *<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>   * This method could take some time to execute, so don't call it from a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>   * time-sensitive thread.<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>   *<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>   * @param abort true if server is aborting (only during testing)<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>   * we are not to close at this time or we are already closed.<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>   *<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>   * @throws IOException e<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>   * caller MUST abort after this.<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>   */<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>    // threads attempting to close will run up against each other.<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        "Closing region " + this +<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        (abort ? " due to abort" : ""));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>    status.setStatus("Waiting for close lock");<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>    try {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      synchronized (closeLock) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>        return doClose(abort, status);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>    } finally {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      status.cleanup();<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span><a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>  /**<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>   * Exposed for some very specific unit tests.<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>   */<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>  @VisibleForTesting<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  public void setClosing(boolean closing) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>    this.closing.set(closing);<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span><a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>  /**<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  @VisibleForTesting<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
 <span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>    if (coprocessorHost != null) {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      this.coprocessorHost.preClose(abort);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    boolean canFlush = true;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    synchronized (writestate) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      // Disable compacting and flushing by background threads for this<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // region.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      canFlush = !writestate.readOnly;<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>      writestate.writesEnabled = false;<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      waitForFlushesAndCompactions();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>    }<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    // the close flag?<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      status.setStatus("Pre-flushing region before close");<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      LOG.info("Running close preflush of " + this);<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      try {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        internalFlushcache(status);<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      } catch (IOException ioe) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        // Failed to flush the region. Keep going.<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>    if (timeoutForWriteLock == null<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      // block waiting for the lock for closing<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    } else {<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      try {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>        if (!succeed) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        }<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      } catch (InterruptedException e) {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      }<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    }<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    this.closing.set(true);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    status.setStatus("Disabling writes for close");<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      if (this.isClosed()) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>        status.abort("Already got closed by another process");<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        // SplitTransaction handles the null<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>        return null;<a name="line.1601"></a>
+<span class="sourceLineNo">1553</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      justification="I think FindBugs is confused")<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      throws IOException {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>    if (isClosed()) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      LOG.warn("Region " + this + " already closed");<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      return null;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span><a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    if (coprocessorHost != null) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      this.coprocessorHost.preClose(abort);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>    boolean canFlush = true;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    synchronized (writestate) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      // Disable compacting and flushing by background threads for this<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>      // region.<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      canFlush = !writestate.readOnly;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      writestate.writesEnabled = false;<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      waitForFlushesAndCompactions();<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    }<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    // the close flag?<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      status.setStatus("Pre-flushing region before close");<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      LOG.info("Running close preflush of " + this);<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>      try {<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        internalFlushcache(status);<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>      } catch (IOException ioe) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        // Failed to flush the region. Keep going.<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>      }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span><a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>    if (timeoutForWriteLock == null<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      // block waiting for the lock for closing<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>    } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>      try {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>        if (!succeed) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>        }<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>      } catch (InterruptedException e) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1601"></a>
 <span class="sourceLineNo">1602</span>      }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // Don't flush the cache if we are aborting<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>        int failedfFlushCount = 0;<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>        int flushCount = 0;<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>        long tmp = 0;<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>        while (remainingSize &gt; 0) {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>          try {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>            internalFlushcache(status);<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>            if(flushCount &gt;0) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>                  " (carrying snapshot?) " + this);<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>            }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>            flushCount++;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>            tmp = this.memstoreDataSize.get();<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>            if (tmp &gt;= remainingSize) {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>              failedfFlushCount++;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>            }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>            remainingSize = tmp;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>            if (failedfFlushCount &gt; 5) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>              // so we do not lose data<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>                  flushCount + " attempts on region: " +<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>            }<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>          } catch (IOException ioe) {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>            synchronized (writestate) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>              writestate.writesEnabled = true;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>            }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>            throw ioe;<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>          }<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>        }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      }<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span><a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>      if (!stores.isEmpty()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>            getRegionInfo().getRegionNameAsString());<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1648"></a>
+<span class="sourceLineNo">1603</span>    }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>    this.closing.set(true);<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>    status.setStatus("Disabling writes for close");<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    try {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      if (this.isClosed()) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>        status.abort("Already got closed by another process");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        // SplitTransaction handles the null<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>        return null;<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>      }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>      // Don't flush the cache if we are aborting<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>        int failedfFlushCount = 0;<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>        int flushCount = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>        long tmp = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>        while (remainingSize &gt; 0) {<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>          try {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>            internalFlushcache(status);<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>            if(flushCount &gt;0) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                  " (carrying snapshot?) " + this);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>            }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>            flushCount++;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>            tmp = this.memstoreDataSize.get();<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>            if (tmp &gt;= remainingSize) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>              failedfFlushCount++;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>            }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>            remainingSize = tmp;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>            if (failedfFlushCount &gt; 5) {<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>              // so we do not lose data<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                  flushCount + " attempts on region: " +<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>            }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>          } catch (IOException ioe) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>            synchronized (writestate) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>              writestate.writesEnabled = true;<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>            }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>            throw ioe;<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>          }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>      }<a name="line.1648"></a>
 <span class="sourceLineNo">1649</span><a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        // close each store in parallel<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        for (final Store store : stores.values()) {<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>            if (getRegionServerServices() != null) {<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>            }<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>          }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>          completionService<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>                @Override<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>                }<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>              });<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>        }<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        try {<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>            if (familyFiles == null) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>            }<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>          }<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>        } catch (InterruptedException e) {<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>        } catch (ExecutionException e) {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>          Throwable cause = e.getCause();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>          if (cause instanceof IOException) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>            throw (IOException) cause;<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>          }<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>          throw new IOException(cause);<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        } finally {<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>          storeCloserThreadPool.shutdownNow();<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>        }<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span><a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      status.setStatus("Writing region close event to WAL");<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>        writeRegionCloseMarker(wal);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>      }<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span><a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>      this.closed.set(true);<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      if (!canFlush) {<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>      }<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      if (coprocessorHost != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        this.coprocessorHost.postClose(abort);<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (this.metricsRegion != null) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        this.metricsRegion.close();<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      if (this.metricsRegionWrapper != null) {<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      }<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      status.markComplete("Closed");<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      LOG.info("Closed " + this);<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>      return result;<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    } finally {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      lock.writeLock().unlock();<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>  }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span><a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>  private long getMemstoreHeapSize() {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>    long size = 0;<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>    for (Store s : this.stores.values()) {<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>    }<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    return size;<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>  }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span><a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>  @Override<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>  public void waitForFlushesAndCompactions() {<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    synchronized (writestate) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      if (this.writestate.readOnly) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>        // region is a secondary replica).<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>        return;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      boolean interrupted = false;<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      try {<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>          try {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>            writestate.wait();<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          } catch (InterruptedException iex) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>            // essentially ignore and propagate the interrupt back up<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>            LOG.warn("Interrupted while waiting");<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>            interrupted = true;<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>          }<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>        }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      } finally {<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (interrupted) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          Thread.currentThread().interrupt();<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>        }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      }<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>    }<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>  }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>  @Override<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>  public void waitForFlushes() {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>    synchronized (writestate) {<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>      if (this.writestate.readOnly) {<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>        // region is a secondary replica).<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>        return;<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      }<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>      if (!writestate.flushing) return;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      long start = System.currentTimeMillis();<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>      boolean interrupted = false;<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      try {<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        while (writestate.flushing) {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>          try {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>            writestate.wait();<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          } catch (InterruptedException iex) {<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>            // essentially ignore and propagate the interrupt back up<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>            LOG.warn("Interrupted while waiting");<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            interrupted = true;<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          }<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>      } finally {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        if (interrupted) {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>          Thread.currentThread().interrupt();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>        }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>      }<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>      long duration = System.currentTimeMillis() - start;<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>    }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>  }<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>      final String threadNamePrefix) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    int maxThreads = Math.min(numStores,<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>  }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1800"></a>
+<span class="sourceLineNo">1650</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      if (!stores.isEmpty()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>            getRegionInfo().getRegionNameAsString());<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>        // close each store in parallel<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        for (final Store store : stores.values()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>            if (getRegionServerServices() != null) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>            }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>          }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>          completionService<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                @Override<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>              });<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>        try {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>            if (familyFiles == null) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>            }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>          }<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        } catch (InterruptedException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        } catch (ExecutionException e) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>          Throwable cause = e.getCause();<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>          if (cause instanceof IOException) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>            throw (IOException) cause;<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>          }<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>          throw new IOException(cause);<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        } finally {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>          storeCloserThreadPool.shutdownNow();<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>      }<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span><a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>      status.setStatus("Writing region close event to WAL");<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>        writeRegionCloseMarker(wal);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>      this.closed.set(true);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>      if (!canFlush) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>      }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>      if (coprocessorHost != null) {<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>        this.coprocessorHost.postClose(abort);<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>      }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>      if (this.metricsRegion != null) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>        this.metricsRegion.close();<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>      }<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>      if (this.metricsRegionWrapper != null) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>      }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>      status.markComplete("Closed");<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>      LOG.info("Closed " + this);<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>      return result;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>    } finally {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>      lock.writeLock().unlock();<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>    }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>  }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span><a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>  private long getMemstoreHeapSize() {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    long size = 0;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    for (Store s : this.stores.values()) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>    }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>    return size;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>  }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span><a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>  @Override<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>  public void waitForFlushesAndCompactions() {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    synchronized (writestate) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>      if (this.writestate.readOnly) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>        // region is a secondary replica).<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>        return;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>      }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>      boolean interrupted = false;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>      try {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>          try {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>            writestate.wait();<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>          } catch (InterruptedException iex) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>            // essentially ignore and propagate the interrupt back up<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>            LOG.warn("Interrupted while waiting");<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>            interrupted = true;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>          }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>      } finally {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        if (interrupted) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>          Thread.currentThread().interrupt();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>      }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>    }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>  }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>  @Override<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>  public void waitForFlushes() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>    synchronized (writestate) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>      if (this.writestate.readOnly) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>        // region is a secondary replica).<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>        return;<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>      if (!writestate.flushing) return;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      long start = System.currentTimeMillis();<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      boolean interrupted = false;<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>      try {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        while (writestate.flushing) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>          try {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>            writestate.wait();<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>          } catch (InterruptedException iex) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>            // essentially ignore and propagate the interrupt back up<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>            LOG.warn("Interrupted while waiting");<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>            interrupted = true;<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>          }<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        }<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>      } finally {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>        if (interrupted) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          Thread.currentThread().interrupt();<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>        }<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>      }<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>      long duration = System.currentTimeMillis() - start;<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>    }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>  }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1800"></a>
 <span class="sourceLineNo">1801</span>      final String threadNamePrefix) {<a name="line.1801"></a>
 <span class="sourceLineNo">1802</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    int maxThreads = Math.max(1,<a name="line.1803"></a>
+<span class="sourceLineNo">1803</span>    int maxThreads = Math.min(numStores,<a name="line.1803"></a>
 <span class="sourceLineNo">1804</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>            / numStores);<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>  }<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span><a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>      final String threadNamePrefix) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>      new ThreadFactory() {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        private int count = 1;<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span><a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>        @Override<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>        public Thread newThread(Runnable r) {<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>      });<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>  }<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>   /**<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    */<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>  private boolean worthPreFlushing() {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    return this.memstoreDataSize.get() &gt;<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>  }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span><a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>  // HRegion accessors<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>  @Override<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  public HTableDescriptor getTableDesc() {<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    return this.htableDescriptor;<a name="line.1837"></a>
+<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>  }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span><a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>      final String threadNamePrefix) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    int maxThreads = Math.max(1,<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>            / numStores);<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>  }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>      final String threadNamePrefix) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>      new ThreadFactory() {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>        private int count = 1;<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span><a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>        @Override<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>        public Thread newThread(Runnable r) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      });<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span><a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>   /**<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    */<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  private boolean worthPreFlushing() {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>    return this.memstoreDataSize.get() &gt;<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1837"></a>
 <span class="sourceLineNo">1838</span>  }<a name="line.1838"></a>
 <span class="sourceLineNo">1839</span><a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  /** @return WAL in use for this 

<TRUNCATED>

[32/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
index 6318095..30168b3 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
@@ -33,719 +33,735 @@
 <span class="sourceLineNo">025</span>import java.io.InputStream;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import java.io.InterruptedIOException;<a name="line.26"></a>
 <span class="sourceLineNo">027</span>import java.io.OutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.ArrayList;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.Arrays;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.Collection;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.List;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.concurrent.Callable;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.concurrent.ExecutionException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.util.concurrent.ExecutorService;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import java.util.concurrent.Executors;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import java.util.concurrent.Future;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import java.util.concurrent.TimeUnit;<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.commons.logging.Log;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.commons.logging.LogFactory;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.conf.Configuration;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.fs.FileSystem;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.fs.Path;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HConstants;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.ServerName;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.TableName;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.MasterSwitchType;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.Mutation;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.RegionReplicaUtil;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.master.MasterCoprocessorHost;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.master.MasterFileSystem;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.master.procedure.AbstractStateMachineRegionProcedure;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.procedure2.ProcedureMetrics;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.regionserver.HStore;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.regionserver.HStoreFile;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.regionserver.StoreFile;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.regionserver.StoreFileInfo;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.76"></a>
-<span class="sourceLineNo">077</span><a name="line.77"></a>
-<span class="sourceLineNo">078</span>/**<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * The procedure to split a region in a table.<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * Takes lock on the parent region.<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * It holds the lock for the life of the procedure.<a name="line.81"></a>
-<span class="sourceLineNo">082</span> */<a name="line.82"></a>
-<span class="sourceLineNo">083</span>@InterfaceAudience.Private<a name="line.83"></a>
-<span class="sourceLineNo">084</span>public class SplitTableRegionProcedure<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    extends AbstractStateMachineRegionProcedure&lt;SplitTableRegionState&gt; {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  private static final Log LOG = LogFactory.getLog(SplitTableRegionProcedure.class);<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private Boolean traceEnabled = null;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  private HRegionInfo daughter_1_HRI;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  private HRegionInfo daughter_2_HRI;<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  public SplitTableRegionProcedure() {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    // Required by the Procedure framework to create the procedure on replay<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  }<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>  public SplitTableRegionProcedure(final MasterProcedureEnv env,<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      final HRegionInfo regionToSplit, final byte[] splitRow) throws IOException {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    super(env, regionToSplit);<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>    checkSplitRow(regionToSplit, splitRow);<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>    final TableName table = regionToSplit.getTable();<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    final long rid = getDaughterRegionIdTimestamp(regionToSplit);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    this.daughter_1_HRI = new HRegionInfo(table, regionToSplit.getStartKey(), splitRow, false, rid);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    this.daughter_2_HRI = new HRegionInfo(table, splitRow, regionToSplit.getEndKey(), false, rid);<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  private static void checkSplitRow(final HRegionInfo regionToSplit, final byte[] splitRow)<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      throws IOException {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    if (splitRow == null || splitRow.length == 0) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      throw new DoNotRetryIOException("Split row cannot be null");<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    }<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>    if (Bytes.equals(regionToSplit.getStartKey(), splitRow)) {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      throw new DoNotRetryIOException(<a name="line.114"></a>
-<span class="sourceLineNo">115</span>        "Split row is equal to startkey: " + Bytes.toStringBinary(splitRow));<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    if (!regionToSplit.containsRow(splitRow)) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      throw new DoNotRetryIOException(<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        "Split row is not inside region key range splitKey:" + Bytes.toStringBinary(splitRow) +<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        " region: " + regionToSplit);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>  /**<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * Calculate daughter regionid to use.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * @param hri Parent {@link HRegionInfo}<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * @return Daughter region id (timestamp) to use.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  private static long getDaughterRegionIdTimestamp(final HRegionInfo hri) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    long rid = EnvironmentEdgeManager.currentTime();<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    // Regionid is timestamp.  Can't be less than that of parent else will insert<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    // at wrong location in hbase:meta (See HBASE-710).<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    if (rid &lt; hri.getRegionId()) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      LOG.warn("Clock skew; parent regions id is " + hri.getRegionId() +<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        " but current time here is " + rid);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      rid = hri.getRegionId() + 1;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    return rid;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>  @Override<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  protected Flow executeFromState(final MasterProcedureEnv env, final SplitTableRegionState state)<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      throws InterruptedException {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    if (isTraceEnabled()) {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      LOG.trace(this + " execute state=" + state);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>    try {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      switch (state) {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      case SPLIT_TABLE_REGION_PREPARE:<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        if (prepareSplitRegion(env)) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>          setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_PRE_OPERATION);<a name="line.153"></a>
-<span class="sourceLineNo">154</span>          break;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>        } else {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>          assert isFailed() : "split region should have an exception here";<a name="line.156"></a>
-<span class="sourceLineNo">157</span>          return Flow.NO_MORE_STATE;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      case SPLIT_TABLE_REGION_PRE_OPERATION:<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        preSplitRegion(env);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_CLOSE_PARENT_REGION);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>        break;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      case SPLIT_TABLE_REGION_CLOSE_PARENT_REGION:<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        addChildProcedure(createUnassignProcedures(env, getRegionReplication(env)));<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS);<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        break;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      case SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS:<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        createDaughterRegions(env);<a name="line.168"></a>
-<span class="sourceLineNo">169</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR);<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        break;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR:<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        preSplitRegionBeforePONR(env);<a name="line.172"></a>
-<span class="sourceLineNo">173</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_UPDATE_META);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        break;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      case SPLIT_TABLE_REGION_UPDATE_META:<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        updateMetaForDaughterRegions(env);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        break;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR:<a name="line.179"></a>
-<span class="sourceLineNo">180</span>        preSplitRegionAfterPONR(env);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>        break;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      case SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS:<a name="line.183"></a>
-<span class="sourceLineNo">184</span>        addChildProcedure(createAssignProcedures(env, getRegionReplication(env)));<a name="line.184"></a>
-<span class="sourceLineNo">185</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_POST_OPERATION);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>        break;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      case SPLIT_TABLE_REGION_POST_OPERATION:<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        postSplitRegion(env);<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        return Flow.NO_MORE_STATE;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      default:<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        throw new UnsupportedOperationException(this + " unhandled state=" + state);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      }<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    } catch (IOException e) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      String msg = "Error trying to split region " + getParentRegion().getEncodedName() + " in the table "<a name="line.194"></a>
-<span class="sourceLineNo">195</span>          + getTableName() + " (in state=" + state + ")";<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      if (!isRollbackSupported(state)) {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>        // We reach a state that cannot be rolled back. We just need to keep retry.<a name="line.197"></a>
-<span class="sourceLineNo">198</span>        LOG.warn(msg, e);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      } else {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        LOG.error(msg, e);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        setFailure(e);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      }<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    }<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    return Flow.HAS_MORE_STATE;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  }<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  @Override<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  protected void rollbackState(final MasterProcedureEnv env, final SplitTableRegionState state)<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      throws IOException, InterruptedException {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    if (isTraceEnabled()) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      LOG.trace(this + " rollback state=" + state);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>    try {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      switch (state) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      case SPLIT_TABLE_REGION_POST_OPERATION:<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      case SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS:<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR:<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      case SPLIT_TABLE_REGION_UPDATE_META:<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        // PONR<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        throw new UnsupportedOperationException(this + " unhandled state=" + state);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR:<a name="line.222"></a>
+<span class="sourceLineNo">028</span>import java.util.*;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.concurrent.Callable;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.util.concurrent.ExecutionException;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.util.concurrent.ExecutorService;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.concurrent.Executors;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.concurrent.Future;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.concurrent.TimeUnit;<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.commons.logging.Log;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.commons.logging.LogFactory;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.conf.Configuration;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.fs.FileSystem;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.fs.Path;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.HConstants;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.ServerName;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.TableName;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.MasterSwitchType;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.Mutation;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.RegionReplicaUtil;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.master.MasterCoprocessorHost;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.master.MasterFileSystem;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.master.procedure.AbstractStateMachineRegionProcedure;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.procedure2.ProcedureMetrics;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.regionserver.HStore;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.regionserver.HStoreFile;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.regionserver.StoreFile;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.regionserver.StoreFileInfo;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>/**<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * The procedure to split a region in a table.<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * Takes lock on the parent region.<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * It holds the lock for the life of the procedure.<a name="line.78"></a>
+<span class="sourceLineNo">079</span> */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>@InterfaceAudience.Private<a name="line.80"></a>
+<span class="sourceLineNo">081</span>public class SplitTableRegionProcedure<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    extends AbstractStateMachineRegionProcedure&lt;SplitTableRegionState&gt; {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private static final Log LOG = LogFactory.getLog(SplitTableRegionProcedure.class);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private Boolean traceEnabled = null;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private HRegionInfo daughter_1_HRI;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  private HRegionInfo daughter_2_HRI;<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>  public SplitTableRegionProcedure() {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    // Required by the Procedure framework to create the procedure on replay<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public SplitTableRegionProcedure(final MasterProcedureEnv env,<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      final HRegionInfo regionToSplit, final byte[] splitRow) throws IOException {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    super(env, regionToSplit);<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>    checkSplitRow(regionToSplit, splitRow);<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>    final TableName table = regionToSplit.getTable();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    final long rid = getDaughterRegionIdTimestamp(regionToSplit);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    this.daughter_1_HRI = new HRegionInfo(table, regionToSplit.getStartKey(), splitRow, false, rid);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    this.daughter_2_HRI = new HRegionInfo(table, splitRow, regionToSplit.getEndKey(), false, rid);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  private static void checkSplitRow(final HRegionInfo regionToSplit, final byte[] splitRow)<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      throws IOException {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    if (splitRow == null || splitRow.length == 0) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      throw new DoNotRetryIOException("Split row cannot be null");<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>    if (Bytes.equals(regionToSplit.getStartKey(), splitRow)) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      throw new DoNotRetryIOException(<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        "Split row is equal to startkey: " + Bytes.toStringBinary(splitRow));<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    if (!regionToSplit.containsRow(splitRow)) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      throw new DoNotRetryIOException(<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        "Split row is not inside region key range splitKey:" + Bytes.toStringBinary(splitRow) +<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        " region: " + regionToSplit);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>  /**<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * Calculate daughter regionid to use.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   * @param hri Parent {@link HRegionInfo}<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * @return Daughter region id (timestamp) to use.<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  private static long getDaughterRegionIdTimestamp(final HRegionInfo hri) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    long rid = EnvironmentEdgeManager.currentTime();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    // Regionid is timestamp.  Can't be less than that of parent else will insert<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // at wrong location in hbase:meta (See HBASE-710).<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    if (rid &lt; hri.getRegionId()) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      LOG.warn("Clock skew; parent regions id is " + hri.getRegionId() +<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        " but current time here is " + rid);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      rid = hri.getRegionId() + 1;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    return rid;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  protected Flow executeFromState(final MasterProcedureEnv env, final SplitTableRegionState state)<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      throws InterruptedException {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (isTraceEnabled()) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      LOG.trace(this + " execute state=" + state);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>    try {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      switch (state) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      case SPLIT_TABLE_REGION_PREPARE:<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        if (prepareSplitRegion(env)) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>          setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_PRE_OPERATION);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>          break;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        } else {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>          assert isFailed() : "split region should have an exception here";<a name="line.153"></a>
+<span class="sourceLineNo">154</span>          return Flow.NO_MORE_STATE;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      case SPLIT_TABLE_REGION_PRE_OPERATION:<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        preSplitRegion(env);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_CLOSE_PARENT_REGION);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        break;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      case SPLIT_TABLE_REGION_CLOSE_PARENT_REGION:<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        addChildProcedure(createUnassignProcedures(env, getRegionReplication(env)));<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        break;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      case SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS:<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        createDaughterRegions(env);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        break;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR:<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        preSplitRegionBeforePONR(env);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_UPDATE_META);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        break;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      case SPLIT_TABLE_REGION_UPDATE_META:<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        updateMetaForDaughterRegions(env);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        break;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR:<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        preSplitRegionAfterPONR(env);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        break;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      case SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS:<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        addChildProcedure(createAssignProcedures(env, getRegionReplication(env)));<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_POST_OPERATION);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        break;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      case SPLIT_TABLE_REGION_POST_OPERATION:<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        postSplitRegion(env);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        return Flow.NO_MORE_STATE;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      default:<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        throw new UnsupportedOperationException(this + " unhandled state=" + state);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    } catch (IOException e) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      String msg = "Error trying to split region " + getParentRegion().getEncodedName() + " in the table "<a name="line.191"></a>
+<span class="sourceLineNo">192</span>          + getTableName() + " (in state=" + state + ")";<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      if (!isRollbackSupported(state)) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        // We reach a state that cannot be rolled back. We just need to keep retry.<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        LOG.warn(msg, e);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      } else {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        LOG.error(msg, e);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        setFailure(e);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    return Flow.HAS_MORE_STATE;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>  }<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>  @Override<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  protected void rollbackState(final MasterProcedureEnv env, final SplitTableRegionState state)<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      throws IOException, InterruptedException {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    if (isTraceEnabled()) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      LOG.trace(this + " rollback state=" + state);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>    try {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      switch (state) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      case SPLIT_TABLE_REGION_POST_OPERATION:<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      case SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS:<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR:<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      case SPLIT_TABLE_REGION_UPDATE_META:<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        // PONR<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        throw new UnsupportedOperationException(this + " unhandled state=" + state);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR:<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        break;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      case SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS:<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        // Doing nothing, as re-open parent region would clean up daughter region directories.<a name="line.222"></a>
 <span class="sourceLineNo">223</span>        break;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      case SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS:<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        // Doing nothing, as re-open parent region would clean up daughter region directories.<a name="line.225"></a>
+<span class="sourceLineNo">224</span>      case SPLIT_TABLE_REGION_CLOSE_PARENT_REGION:<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        openParentRegion(env);<a name="line.225"></a>
 <span class="sourceLineNo">226</span>        break;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      case SPLIT_TABLE_REGION_CLOSE_PARENT_REGION:<a name="line.227"></a>
-<span class="sourceLineNo">228</span>        openParentRegion(env);<a name="line.228"></a>
+<span class="sourceLineNo">227</span>      case SPLIT_TABLE_REGION_PRE_OPERATION:<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        postRollBackSplitRegion(env);<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        break;<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      case SPLIT_TABLE_REGION_PRE_OPERATION:<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        postRollBackSplitRegion(env);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        break;<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      case SPLIT_TABLE_REGION_PREPARE:<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        break; // nothing to do<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      default:<a name="line.235"></a>
-<span class="sourceLineNo">236</span>        throw new UnsupportedOperationException(this + " unhandled state=" + state);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      }<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    } catch (IOException e) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      // This will be retried. Unless there is a bug in the code,<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      // this should be just a "temporary error" (e.g. network down)<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      LOG.warn("pid=" + getProcId() + " failed rollback attempt step " + state +<a name="line.241"></a>
-<span class="sourceLineNo">242</span>          " for splitting the region "<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        + getParentRegion().getEncodedName() + " in table " + getTableName(), e);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      throw e;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    }<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>  /*<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * Check whether we are in the state that can be rollback<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   */<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  @Override<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  protected boolean isRollbackSupported(final SplitTableRegionState state) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    switch (state) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      case SPLIT_TABLE_REGION_POST_OPERATION:<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      case SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS:<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR:<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      case SPLIT_TABLE_REGION_UPDATE_META:<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        // It is not safe to rollback if we reach to these states.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        return false;<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      default:<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        break;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    return true;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>  @Override<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  protected SplitTableRegionState getState(final int stateId) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    return SplitTableRegionState.forNumber(stateId);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>  }<a name="line.269"></a>
-<span class="sourceLineNo">270</span><a name="line.270"></a>
-<span class="sourceLineNo">271</span>  @Override<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  protected int getStateId(final SplitTableRegionState state) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    return state.getNumber();<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  protected SplitTableRegionState getInitialState() {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    return SplitTableRegionState.SPLIT_TABLE_REGION_PREPARE;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  public void serializeStateData(final OutputStream stream) throws IOException {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    super.serializeStateData(stream);<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    final MasterProcedureProtos.SplitTableRegionStateData.Builder splitTableRegionMsg =<a name="line.285"></a>
-<span class="sourceLineNo">286</span>        MasterProcedureProtos.SplitTableRegionStateData.newBuilder()<a name="line.286"></a>
-<span class="sourceLineNo">287</span>        .setUserInfo(MasterProcedureUtil.toProtoUserInfo(getUser()))<a name="line.287"></a>
-<span class="sourceLineNo">288</span>        .setParentRegionInfo(HRegionInfo.convert(getRegion()))<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        .addChildRegionInfo(HRegionInfo.convert(daughter_1_HRI))<a name="line.289"></a>
-<span class="sourceLineNo">290</span>        .addChildRegionInfo(HRegionInfo.convert(daughter_2_HRI));<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    splitTableRegionMsg.build().writeDelimitedTo(stream);<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>  @Override<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  public void deserializeStateData(final InputStream stream) throws IOException {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    super.deserializeStateData(stream);<a name="line.296"></a>
-<span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span>    final MasterProcedureProtos.SplitTableRegionStateData splitTableRegionsMsg =<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        MasterProcedureProtos.SplitTableRegionStateData.parseDelimitedFrom(stream);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    setUser(MasterProcedureUtil.toUserInfo(splitTableRegionsMsg.getUserInfo()));<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    setRegion(HRegionInfo.convert(splitTableRegionsMsg.getParentRegionInfo()));<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    assert(splitTableRegionsMsg.getChildRegionInfoCount() == 2);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    daughter_1_HRI = HRegionInfo.convert(splitTableRegionsMsg.getChildRegionInfo(0));<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    daughter_2_HRI = HRegionInfo.convert(splitTableRegionsMsg.getChildRegionInfo(1));<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>  @Override<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  public void toStringClassDetails(StringBuilder sb) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    sb.append(getClass().getSimpleName());<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    sb.append(" table=");<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    sb.append(getTableName());<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    sb.append(", parent=");<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    sb.append(getParentRegion().getShortNameToLog());<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    sb.append(", daughterA=");<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    sb.append(daughter_1_HRI.getShortNameToLog());<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    sb.append(", daughterB=");<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    sb.append(daughter_2_HRI.getShortNameToLog());<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>  private HRegionInfo getParentRegion() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    return getRegion();<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>  @Override<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  public TableOperationType getTableOperationType() {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    return TableOperationType.REGION_SPLIT;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
-<span class="sourceLineNo">328</span><a name="line.328"></a>
-<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  protected ProcedureMetrics getProcedureMetrics(MasterProcedureEnv env) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    return env.getAssignmentManager().getAssignmentManagerMetrics().getSplitProcMetrics();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>  private byte[] getSplitRow() {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    return daughter_2_HRI.getStartKey();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>  private static State [] EXPECTED_SPLIT_STATES = new State [] {State.OPEN, State.CLOSED};<a name="line.338"></a>
-<span class="sourceLineNo">339</span>  /**<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   * Prepare to Split region.<a name="line.340"></a>
-<span class="sourceLineNo">341</span>   * @param env MasterProcedureEnv<a name="line.341"></a>
-<span class="sourceLineNo">342</span>   * @throws IOException<a name="line.342"></a>
-<span class="sourceLineNo">343</span>   */<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  @VisibleForTesting<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  public boolean prepareSplitRegion(final MasterProcedureEnv env) throws IOException {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    // Check whether the region is splittable<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    RegionStateNode node =<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      env.getAssignmentManager().getRegionStates().getRegionNode(getParentRegion());<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    HRegionInfo parentHRI = null;<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    if (node != null) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      parentHRI = node.getRegionInfo();<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>      // Lookup the parent HRI state from the AM, which has the latest updated info.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      // Protect against the case where concurrent SPLIT requests came in and succeeded<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      // just before us.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      if (node.isInState(State.SPLIT)) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        LOG.info("Split of " + parentHRI + " skipped; state is already SPLIT");<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        return false;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      }<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      if (parentHRI.isSplit() || parentHRI.isOffline()) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        LOG.info("Split of " + parentHRI + " skipped because offline/split.");<a name="line.361"></a>
-<span class="sourceLineNo">362</span>        return false;<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
-<span class="sourceLineNo">364</span><a name="line.364"></a>
-<span class="sourceLineNo">365</span>      // expected parent to be online or closed<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      if (!node.isInState(EXPECTED_SPLIT_STATES)) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        // We may have SPLIT already?<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        setFailure(new IOException("Split " + parentHRI.getRegionNameAsString() +<a name="line.368"></a>
-<span class="sourceLineNo">369</span>            " FAILED because state=" + node.getState() + "; expected " +<a name="line.369"></a>
-<span class="sourceLineNo">370</span>            Arrays.toString(EXPECTED_SPLIT_STATES)));<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        return false;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>      // Ask the remote regionserver if this region is splittable. If we get an IOE, report it<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      // along w/ the failure so can see why we are not splittable at this time.<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      IOException splittableCheckIOE = null;<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      boolean splittable = false;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      try {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        GetRegionInfoResponse response =<a name="line.379"></a>
-<span class="sourceLineNo">380</span>            Util.getRegionInfoResponse(env, node.getRegionLocation(), node.getRegionInfo());<a name="line.380"></a>
-<span class="sourceLineNo">381</span>        splittable = response.hasSplittable() &amp;&amp; response.getSplittable();<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        if (LOG.isDebugEnabled()) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>          LOG.debug("Splittable=" + splittable + " " + this + " " + node.toShortString());<a name="line.383"></a>
-<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      } catch (IOException e) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        splittableCheckIOE = e;<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      }<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      if (!splittable) {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        IOException e = new IOException(parentHRI.getShortNameToLog() + " NOT splittable");<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        if (splittableCheckIOE != null) e.initCause(splittableCheckIOE);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        setFailure(e);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>        return false;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
-<span class="sourceLineNo">395</span><a name="line.395"></a>
-<span class="sourceLineNo">396</span>    // Since we have the lock and the master is coordinating the operation<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    // we are always able to split the region<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    if (!env.getMasterServices().isSplitOrMergeEnabled(MasterSwitchType.SPLIT)) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      LOG.warn("pid=" + getProcId() + " split switch is off! skip split of " + parentHRI);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      setFailure(new IOException("Split region " +<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          (parentHRI == null? "null": parentHRI.getRegionNameAsString()) +<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          " failed due to split switch off"));<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      return false;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    return true;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>  }<a name="line.406"></a>
-<span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>  /**<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   * Action before splitting region in a table.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @param env MasterProcedureEnv<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   * @param state the procedure state<a name="line.411"></a>
-<span class="sourceLineNo">412</span>   * @throws IOException<a name="line.412"></a>
-<span class="sourceLineNo">413</span>   * @throws InterruptedException<a name="line.413"></a>
-<span class="sourceLineNo">414</span>   */<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  private void preSplitRegion(final MasterProcedureEnv env)<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      throws IOException, InterruptedException {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    final MasterCoprocessorHost cpHost = env.getMasterCoprocessorHost();<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    if (cpHost != null) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      cpHost.preSplitRegionAction(getTableName(), getSplitRow(), getUser());<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    }<a name="line.420"></a>
-<span class="sourceLineNo">421</span>  }<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>  /**<a name="line.423"></a>
-<span class="sourceLineNo">424</span>   * Action after rollback a split table region action.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>   * @param env MasterProcedureEnv<a name="line.425"></a>
-<span class="sourceLineNo">426</span>   * @throws IOException<a name="line.426"></a>
-<span class="sourceLineNo">427</span>   */<a name="line.427"></a>
-<span class="sourceLineNo">428</span>  private void postRollBackSplitRegion(final MasterProcedureEnv env) throws IOException {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    final MasterCoprocessorHost cpHost = env.getMasterCoprocessorHost();<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    if (cpHost != null) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      cpHost.postRollBackSplitRegionAction(getUser());<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>  }<a name="line.433"></a>
-<span class="sourceLineNo">434</span><a name="line.434"></a>
-<span class="sourceLineNo">435</span>  /**<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * Rollback close parent region<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * @param env MasterProcedureEnv<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   **/<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  private void openParentRegion(final MasterProcedureEnv env) throws IOException {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Check whether the region is closed; if so, open it in the same server<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    final int regionReplication = getRegionReplication(env);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    final ServerName serverName = getParentRegionServerName(env);<a name="line.442"></a>
-<span class="sourceLineNo">443</span><a name="line.443"></a>
-<span class="sourceLineNo">444</span>    final AssignProcedure[] procs = new AssignProcedure[regionReplication];<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    for (int i = 0; i &lt; regionReplication; ++i) {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      final HRegionInfo hri = RegionReplicaUtil.getRegionInfoForReplica(getParentRegion(), i);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      procs[i] = env.getAssignmentManager().createAssignProcedure(hri, serverName);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    env.getMasterServices().getMasterProcedureExecutor().submitProcedures(procs);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  /**<a name="line.452"></a>
-<span class="sourceLineNo">453</span>   * Create daughter regions<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * @param env MasterProcedureEnv<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * @throws IOException<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   */<a name="line.456"></a>
-<span class="sourceLineNo">457</span>  @VisibleForTesting<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  public void createDaughterRegions(final MasterProcedureEnv env) throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    final MasterFileSystem mfs = env.getMasterServices().getMasterFileSystem();<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    final Path tabledir = FSUtils.getTableDir(mfs.getRootDir(), getTableName());<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    final FileSystem fs = mfs.getFileSystem();<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    HRegionFileSystem regionFs = HRegionFileSystem.openRegionFromFileSystem(<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      env.getMasterConfiguration(), fs, tabledir, getParentRegion(), false);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    regionFs.createSplitsDir();<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>    Pair&lt;Integer, Integer&gt; expectedReferences = splitStoreFiles(env, regionFs);<a name="line.466"></a>
-<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">230</span>      case SPLIT_TABLE_REGION_PREPARE:<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        break; // nothing to do<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      default:<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        throw new UnsupportedOperationException(this + " unhandled state=" + state);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    } catch (IOException e) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      // This will be retried. Unless there is a bug in the code,<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      // this should be just a "temporary error" (e.g. network down)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      LOG.warn("pid=" + getProcId() + " failed rollback attempt step " + state +<a name="line.238"></a>
+<span class="sourceLineNo">239</span>          " for splitting the region "<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        + getParentRegion().getEncodedName() + " in table " + getTableName(), e);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      throw e;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  }<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>  /*<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   * Check whether we are in the state that can be rollback<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @Override<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  protected boolean isRollbackSupported(final SplitTableRegionState state) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    switch (state) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      case SPLIT_TABLE_REGION_POST_OPERATION:<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      case SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS:<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR:<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      case SPLIT_TABLE_REGION_UPDATE_META:<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        // It is not safe to rollback if we reach to these states.<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        return false;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      default:<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        break;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    return true;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>  @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span>  protected SplitTableRegionState getState(final int stateId) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    return SplitTableRegionState.forNumber(stateId);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  @Override<a name="line.268"></a>
+<span class="sourceLineNo">269</span>  protected int getStateId(final SplitTableRegionState state) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    return state.getNumber();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>  @Override<a name="line.273"></a>
+<span class="sourceLineNo">274</span>  protected SplitTableRegionState getInitialState() {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    return SplitTableRegionState.SPLIT_TABLE_REGION_PREPARE;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Override<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void serializeStateData(final OutputStream stream) throws IOException {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    super.serializeStateData(stream);<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>    final MasterProcedureProtos.SplitTableRegionStateData.Builder splitTableRegionMsg =<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        MasterProcedureProtos.SplitTableRegionStateData.newBuilder()<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        .setUserInfo(MasterProcedureUtil.toProtoUserInfo(getUser()))<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        .setParentRegionInfo(HRegionInfo.convert(getRegion()))<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        .addChildRegionInfo(HRegionInfo.convert(daughter_1_HRI))<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        .addChildRegionInfo(HRegionInfo.convert(daughter_2_HRI));<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    splitTableRegionMsg.build().writeDelimitedTo(stream);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  }<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>  @Override<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public void deserializeStateData(final InputStream stream) throws IOException {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    super.deserializeStateData(stream);<a name="line.293"></a>
+<span class="sourceLineNo">294</span><a name="line.294"></a>
+<span class="sourceLineNo">295</span>    final MasterProcedureProtos.SplitTableRegionStateData splitTableRegionsMsg =<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        MasterProcedureProtos.SplitTableRegionStateData.parseDelimitedFrom(stream);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    setUser(MasterProcedureUtil.toUserInfo(splitTableRegionsMsg.getUserInfo()));<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    setRegion(HRegionInfo.convert(splitTableRegionsMsg.getParentRegionInfo()));<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    assert(splitTableRegionsMsg.getChildRegionInfoCount() == 2);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    daughter_1_HRI = HRegionInfo.convert(splitTableRegionsMsg.getChildRegionInfo(0));<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    daughter_2_HRI = HRegionInfo.convert(splitTableRegionsMsg.getChildRegionInfo(1));<a name="line.301"></a>
+<span class="sourceLineNo">302</span>  }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>  @Override<a name="line.304"></a>
+<span class="sourceLineNo">305</span>  public void toStringClassDetails(StringBuilder sb) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    sb.append(getClass().getSimpleName());<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    sb.append(" table=");<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    sb.append(getTableName());<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    sb.append(", parent=");<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    sb.append(getParentRegion().getShortNameToLog());<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    sb.append(", daughterA=");<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    sb.append(daughter_1_HRI.getShortNameToLog());<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    sb.append(", daughterB=");<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    sb.append(daughter_2_HRI.getShortNameToLog());<a name="line.314"></a>
+<span class="sourceLineNo">315</span>  }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private HRegionInfo getParentRegion() {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    return getRegion();<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  @Override<a name="line.321"></a>
+<span class="sourceLineNo">322</span>  public TableOperationType getTableOperationType() {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    return TableOperationType.REGION_SPLIT;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>  }<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>  @Override<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  protected ProcedureMetrics getProcedureMetrics(MasterProcedureEnv env) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    return env.getAssignmentManager().getAssignmentManagerMetrics().getSplitProcMetrics();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>  }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>  private byte[] getSplitRow() {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    return daughter_2_HRI.getStartKey();<a name="line.332"></a>
+<span class="sourceLineNo">333</span>  }<a name="line.333"></a>
+<span class="sourceLineNo">334</span><a name="line.334"></a>
+<span class="sourceLineNo">335</span>  private static State [] EXPECTED_SPLIT_STATES = new State [] {State.OPEN, State.CLOSED};<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  /**<a name="line.336"></a>
+<span class="sourceLineNo">337</span>   * Prepare to Split region.<a name="line.337"></a>
+<span class="sourceLineNo">338</span>   * @param env MasterProcedureEnv<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   * @throws IOException<a name="line.339"></a>
+<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
+<span class="sourceLineNo">341</span>  @VisibleForTesting<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  public boolean prepareSplitRegion(final MasterProcedureEnv env) throws IOException {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    // Check whether the region is splittable<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    RegionStateNode node =<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      env.getAssignmentManager().getRegionStates().getRegionNode(getParentRegion());<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    HRegionInfo parentHRI = null;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    if (node != null) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      parentHRI = node.getRegionInfo();<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>      // Lookup the parent HRI state from the AM, which has the latest updated info.<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      // Protect against the case where concurrent SPLIT requests came in and succeeded<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      // just before us.<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      if (node.isInState(State.SPLIT)) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        LOG.info("Split of " + parentHRI + " skipped; state is already SPLIT");<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        return false;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      if (parentHRI.isSplit() || parentHRI.isOffline()) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        LOG.info("Split of " + parentHRI + " skipped because offline/split.");<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        return false;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>      // expected parent to be online or closed<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      if (!node.isInState(EXPECTED_SPLIT_STATES)) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        // We may have SPLIT already?<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        setFailure(new IOException("Split " + parentHRI.getRegionNameAsString() +<a name="line.365"></a>
+<span class="sourceLineNo">366</span>            " FAILED because state=" + node.getState() + "; expected " +<a name="line.366"></a>
+<span class="sourceLineNo">367</span>            Arrays.toString(EXPECTED_SPLIT_STATES)));<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        return false;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>      // Ask the remote regionserver if this region is splittable. If we get an IOE, report it<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      // along w/ the failure so can see why we are not splittable at this time.<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      IOException splittableCheckIOE = null;<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      boolean splittable = false;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      try {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        GetRegionInfoResponse response =<a name="line.376"></a>
+<span class="sourceLineNo">377</span>            Util.getRegionInfoResponse(env, node.getRegionLocation(), node.getRegionInfo());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        splittable = response.hasSplittable() &amp;&amp; response.getSplittable();<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        if (LOG.isDebugEnabled()) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>          LOG.debug("Splittable=" + splittable + " " + this + " " + node.toShortString());<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        }<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      } catch (IOException e) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        splittableCheckIOE = e;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      }<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      if (!splittable) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        IOException e = new IOException(parentHRI.getShortNameToLog() + " NOT splittable");<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        if (splittableCheckIOE != null) e.initCause(splittableCheckIOE);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        setFailure(e);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        return false;<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      }<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    }<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>    // Since we have the lock and the master is coordinating the operation<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    // we are always able to split the region<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    if (!env.getMasterServices().isSplitOrMergeEnabled(MasterSwitchType.SPLIT)) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>      LOG.warn("pid=" + getProcId() + " split switch is off! skip split of " + parentHRI);<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      setFailure(new IOException("Split region " +<a name="line.397"></a>
+<span class="sourceLineNo">398</span>          (parentHRI == null? "null": parentHRI.getRegionNameAsString()) +<a name="line.398"></a>
+<span class="sourceLineNo">399</span>          " failed due to split switch off"));<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      return false;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    return true;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>  }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>  /**<a name="line.405"></a>
+<span class="sourceLineNo">406</span>   * Action before splitting region in a table.<a name="line.406"></a>
+<span class="sourceLineNo">407</span>   * @param env MasterProcedureEnv<a name="line.407"></a>
+<span class="sourceLineNo">408</span>   * @throws IOException<a name="line.408"></a>
+<span class="sourceLineNo">409</span>   * @throws InterruptedException<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   */<a name="line.410"></a>
+<span class="sourceLineNo">411</span>  private void preSplitRegion(final MasterProcedureEnv env)<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      throws IOException, InterruptedException {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    final MasterCoprocessorHost cpHost = env.getMasterCoprocessorHost();<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    if (cpHost != null) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      cpHost.preSplitRegionAction(getTableName(), getSplitRow(), getUser());<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    }<a name="line.416"></a>
+<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>  /**<a name="line.419"></a>
+<span class="sourceLineNo">420</span>   * Action after rollback a split table region action.<a name="line.420"></a>
+<span class="sourceLineNo">421</span>   * @param env MasterProcedureEnv<a name="line.421"></a>
+<span class="sourceLineNo">422</span>   * @throws IOException<a name="line.422"></a>
+<span class="sourceLineNo">423</span>   */<a name="line.423"></a>
+<span class="sourceLineNo">424</span>  private void postRollBackSplitRegion(final MasterProcedureEnv env) throws IOException {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    final MasterCoprocessorHost cpHost = env.getMasterCoprocessorHost();<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    if (cpHost != null) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      cpHost.postRollBackSplitRegionAction(getUser());<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>  }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>  /**<a name="line.431"></a>
+<span class="sourceLineNo">432</span>   * Rollback close parent region<a name="line.432"></a>
+<span class="sourceLineNo">433</span>   * @param env MasterProcedureEnv<a name="line.433"></a>
+<span class="sourceLineNo">434</span>   **/<a name="line.434"></a>
+<span class="sourceLineNo">435</span>  private void openParentRegion(final MasterProcedureEnv env) throws IOException {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    // Check whether the region is closed; if so, open it in the same server<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    final int regionReplication = getRegionReplication(env);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    final ServerName serverName = getParentRegionServerName(env);<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>    final AssignProcedure[] procs = new AssignProcedure[regionReplication];<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    for (int i = 0; i &lt; regionReplication; ++i) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      final HRegionInfo hri = RegionReplicaUtil.getRegionInfoForReplica(getParentRegion(), i);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      procs[i] = env.getAssignmentManager().createAssignProcedure(hri, serverName);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    env.getMasterServices().getMasterProcedureExecutor().submitProcedures(procs);<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  }<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span>  /**<a name="line.448"></a>
+<span class="sourceLineNo">449</span>   * Create daughter regions<a name="line.449"></a>
+<span class="sourceLineNo">450</span>   * @param env MasterProcedureEnv<a name="line.450"></a>
+<span class="sourceLineNo">451</span>   * @throws IOException<a name="line.451"></a>
+<span class="sourceLineNo">452</span>   */<a name="line.452"></a>
+<span class="sourceLineNo">453</span>  @VisibleForTesting<a name="line.453"></a>
+<span class="sourceLineNo">454</span>  public void createDaughterRegions(final MasterProcedureEnv env) throws IOException {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>    final MasterFileSystem mfs = env.getMasterServices().getMasterFileSystem();<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    final Path tabledir = FSUtils.getTableDir(mfs.getRootDir(), getTableName());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    final FileSystem fs = mfs.getFileSystem();<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    HRegionFileSystem regionFs = HRegionFileSystem.openRegionFromFileSystem(<a name="line.458"></a>
+<span class="sourceLineNo">459</span>      env.getMasterConfiguration(), fs, tabledir, getParentRegion(), false);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>    regionFs.createSplitsDir();<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>    Pair&lt;Integer, Integer&gt; expectedReferences = splitStoreFiles(env, regionFs);<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>    assertReferenceFileCount(fs, expectedReferences.getFirst(),<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      regionFs.getSplitsDir(daughter_1_HRI));<a name="line.465"></a>
+<span class="sourceLineNo">466</span>    //Move the files from the temporary .splits to the final /table/region directory<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    regionFs.commitDaughterRegion(daughter_1_HRI);<a name="line.467"></a>
 <span class="sourceLineNo">468</span>    assertReferenceF

<TRUNCATED>

[31/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
index 959e3ef..ac32645 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
@@ -1401,6821 +1401,6830 @@
 <span class="sourceLineNo">1393</span>  @Override<a name="line.1393"></a>
 <span class="sourceLineNo">1394</span>  public boolean isSplittable() {<a name="line.1394"></a>
 <span class="sourceLineNo">1395</span>    boolean result = isAvailable() &amp;&amp; !hasReferences();<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result, new Throwable("LOGGING"));<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    return result;<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  }<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span><a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  @Override<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>  public boolean isMergeable() {<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    if (!isAvailable()) {<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      LOG.debug("Region " + this<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>          + " is not mergeable because it is closing or closed");<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      return false;<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    }<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    if (hasReferences()) {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      LOG.debug("Region " + this<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>          + " is not mergeable because it has references");<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      return false;<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span><a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    return true;<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span><a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>  public boolean areWritesEnabled() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>    synchronized(this.writestate) {<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      return this.writestate.writesEnabled;<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>  }<a name="line.1420"></a>
+<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result + " " + getRegionInfo().getShortNameToLog(),<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>      new Throwable("LOGGING: REMOVE"));<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    // REMOVE BELOW!!!!<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>    LOG.info("DEBUG LIST ALL FILES");<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    for (Store store: this.stores.values()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>      LOG.info("store " + store.getColumnFamilyName());<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>      for (StoreFile sf: store.getStorefiles()) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        LOG.info(sf.toStringDetailed());<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>      }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>    }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return result;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>  public boolean isMergeable() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    if (!isAvailable()) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      LOG.debug("Region " + this<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>          + " is not mergeable because it is closing or closed");<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>      return false;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>    if (hasReferences()) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      LOG.debug("Region " + this<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>          + " is not mergeable because it has references");<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      return false;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
 <span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  @VisibleForTesting<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>    return mvcc;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>  }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>  @Override<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>  public long getMaxFlushedSeqId() {<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    return maxFlushedSeqId;<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  @Override<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      // This scan can read even uncommitted transactions<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      return Long.MAX_VALUE;<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>    }<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>    return mvcc.getReadPoint();<a name="line.1438"></a>
+<span class="sourceLineNo">1422</span>    return true;<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>  }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span><a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>  public boolean areWritesEnabled() {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>    synchronized(this.writestate) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>      return this.writestate.writesEnabled;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>    }<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>  }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span><a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>  @VisibleForTesting<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>    return mvcc;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>  }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  @Override<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>  public long getMaxFlushedSeqId() {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>    return maxFlushedSeqId;<a name="line.1438"></a>
 <span class="sourceLineNo">1439</span>  }<a name="line.1439"></a>
 <span class="sourceLineNo">1440</span><a name="line.1440"></a>
 <span class="sourceLineNo">1441</span>  @Override<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    return getReadPoint(isolationLevel);<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>  }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span><a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>  @Override<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  /**<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * service any more calls.<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   *<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>   * time-sensitive thread.<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>   *<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * vector if already closed and null if judged that it should not close.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   *<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * @throws IOException e<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>   * caller MUST abort after this.<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>   */<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    return close(false);<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>  private final Object closeLock = new Object();<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span><a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>  /** Conf key for the periodic flush interval */<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  /** Default interval for the memstore flush */<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  /** Default interval for System tables memstore flush */<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span><a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      "hbase.regionserver.flush.per.changes";<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  /**<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>   */<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   * Shut down each HStore, don't service any more calls.<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   *<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * This method could take some time to execute, so don't call it from a<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * time-sensitive thread.<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   *<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>   * @param abort true if server is aborting (only during testing)<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>   * we are not to close at this time or we are already closed.<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>   *<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>   * @throws IOException e<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>   * caller MUST abort after this.<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>   */<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>    // threads attempting to close will run up against each other.<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        "Closing region " + this +<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        (abort ? " due to abort" : ""));<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span><a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>    status.setStatus("Waiting for close lock");<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>    try {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>      synchronized (closeLock) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        return doClose(abort, status);<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      }<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>    } finally {<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      status.cleanup();<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  /**<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>   * Exposed for some very specific unit tests.<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>   */<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>  @VisibleForTesting<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>  public void setClosing(boolean closing) {<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>    this.closing.set(closing);<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>  }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>  /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>   */<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  @VisibleForTesting<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      justification="I think FindBugs is confused")<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      throws IOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    if (isClosed()) {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      LOG.warn("Region " + this + " already closed");<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      return null;<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1442</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      // This scan can read even uncommitted transactions<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>      return Long.MAX_VALUE;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>    return mvcc.getReadPoint();<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span><a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>  @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>    return getReadPoint(isolationLevel);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>  }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span><a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  @Override<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span><a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>  /**<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>   * service any more calls.<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>   *<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>   * time-sensitive thread.<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>   *<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>   * vector if already closed and null if judged that it should not close.<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>   *<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>   * @throws IOException e<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>   * caller MUST abort after this.<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>   */<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>    return close(false);<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>  }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span><a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>  private final Object closeLock = new Object();<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span><a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  /** Conf key for the periodic flush interval */<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>  /** Default interval for the memstore flush */<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>  /** Default interval for System tables memstore flush */<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      "hbase.regionserver.flush.per.changes";<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>  /**<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>   * Shut down each HStore, don't service any more calls.<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>   *<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>   * This method could take some time to execute, so don't call it from a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>   * time-sensitive thread.<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>   *<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>   * @param abort true if server is aborting (only during testing)<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>   * we are not to close at this time or we are already closed.<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>   *<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>   * @throws IOException e<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>   * caller MUST abort after this.<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>   */<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>    // threads attempting to close will run up against each other.<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        "Closing region " + this +<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        (abort ? " due to abort" : ""));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>    status.setStatus("Waiting for close lock");<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>    try {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      synchronized (closeLock) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>        return doClose(abort, status);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>    } finally {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      status.cleanup();<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span><a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>  /**<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>   * Exposed for some very specific unit tests.<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>   */<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>  @VisibleForTesting<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  public void setClosing(boolean closing) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>    this.closing.set(closing);<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span><a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>  /**<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  @VisibleForTesting<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
 <span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>    if (coprocessorHost != null) {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      this.coprocessorHost.preClose(abort);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    boolean canFlush = true;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    synchronized (writestate) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      // Disable compacting and flushing by background threads for this<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // region.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      canFlush = !writestate.readOnly;<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>      writestate.writesEnabled = false;<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      waitForFlushesAndCompactions();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>    }<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    // the close flag?<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      status.setStatus("Pre-flushing region before close");<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      LOG.info("Running close preflush of " + this);<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      try {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        internalFlushcache(status);<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      } catch (IOException ioe) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        // Failed to flush the region. Keep going.<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>    if (timeoutForWriteLock == null<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      // block waiting for the lock for closing<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    } else {<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      try {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>        if (!succeed) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        }<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      } catch (InterruptedException e) {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      }<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    }<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    this.closing.set(true);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    status.setStatus("Disabling writes for close");<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      if (this.isClosed()) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>        status.abort("Already got closed by another process");<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        // SplitTransaction handles the null<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>        return null;<a name="line.1601"></a>
+<span class="sourceLineNo">1553</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      justification="I think FindBugs is confused")<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      throws IOException {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>    if (isClosed()) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      LOG.warn("Region " + this + " already closed");<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      return null;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span><a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    if (coprocessorHost != null) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      this.coprocessorHost.preClose(abort);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>    boolean canFlush = true;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    synchronized (writestate) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      // Disable compacting and flushing by background threads for this<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>      // region.<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      canFlush = !writestate.readOnly;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      writestate.writesEnabled = false;<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      waitForFlushesAndCompactions();<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    }<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    // the close flag?<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      status.setStatus("Pre-flushing region before close");<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      LOG.info("Running close preflush of " + this);<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>      try {<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        internalFlushcache(status);<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>      } catch (IOException ioe) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        // Failed to flush the region. Keep going.<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>      }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span><a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>    if (timeoutForWriteLock == null<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      // block waiting for the lock for closing<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>    } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>      try {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>        if (!succeed) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>        }<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>      } catch (InterruptedException e) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1601"></a>
 <span class="sourceLineNo">1602</span>      }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // Don't flush the cache if we are aborting<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>        int failedfFlushCount = 0;<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>        int flushCount = 0;<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>        long tmp = 0;<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>        while (remainingSize &gt; 0) {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>          try {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>            internalFlushcache(status);<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>            if(flushCount &gt;0) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>                  " (carrying snapshot?) " + this);<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>            }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>            flushCount++;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>            tmp = this.memstoreDataSize.get();<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>            if (tmp &gt;= remainingSize) {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>              failedfFlushCount++;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>            }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>            remainingSize = tmp;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>            if (failedfFlushCount &gt; 5) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>              // so we do not lose data<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>                  flushCount + " attempts on region: " +<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>            }<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>          } catch (IOException ioe) {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>            synchronized (writestate) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>              writestate.writesEnabled = true;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>            }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>            throw ioe;<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>          }<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>        }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      }<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span><a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>      if (!stores.isEmpty()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>            getRegionInfo().getRegionNameAsString());<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1648"></a>
+<span class="sourceLineNo">1603</span>    }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>    this.closing.set(true);<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>    status.setStatus("Disabling writes for close");<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    try {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      if (this.isClosed()) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>        status.abort("Already got closed by another process");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        // SplitTransaction handles the null<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>        return null;<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>      }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>      // Don't flush the cache if we are aborting<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>        int failedfFlushCount = 0;<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>        int flushCount = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>        long tmp = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>        while (remainingSize &gt; 0) {<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>          try {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>            internalFlushcache(status);<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>            if(flushCount &gt;0) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                  " (carrying snapshot?) " + this);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>            }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>            flushCount++;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>            tmp = this.memstoreDataSize.get();<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>            if (tmp &gt;= remainingSize) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>              failedfFlushCount++;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>            }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>            remainingSize = tmp;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>            if (failedfFlushCount &gt; 5) {<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>              // so we do not lose data<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                  flushCount + " attempts on region: " +<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>            }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>          } catch (IOException ioe) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>            synchronized (writestate) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>              writestate.writesEnabled = true;<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>            }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>            throw ioe;<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>          }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>      }<a name="line.1648"></a>
 <span class="sourceLineNo">1649</span><a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        // close each store in parallel<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        for (final Store store : stores.values()) {<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>            if (getRegionServerServices() != null) {<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>            }<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>          }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>          completionService<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>                @Override<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>                }<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>              });<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>        }<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        try {<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>            if (familyFiles == null) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>            }<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>          }<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>        } catch (InterruptedException e) {<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>        } catch (ExecutionException e) {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>          Throwable cause = e.getCause();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>          if (cause instanceof IOException) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>            throw (IOException) cause;<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>          }<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>          throw new IOException(cause);<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        } finally {<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>          storeCloserThreadPool.shutdownNow();<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>        }<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span><a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      status.setStatus("Writing region close event to WAL");<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>        writeRegionCloseMarker(wal);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>      }<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span><a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>      this.closed.set(true);<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      if (!canFlush) {<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>      }<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      if (coprocessorHost != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        this.coprocessorHost.postClose(abort);<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (this.metricsRegion != null) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        this.metricsRegion.close();<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      if (this.metricsRegionWrapper != null) {<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      }<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      status.markComplete("Closed");<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      LOG.info("Closed " + this);<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>      return result;<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    } finally {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      lock.writeLock().unlock();<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>  }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span><a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>  private long getMemstoreHeapSize() {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>    long size = 0;<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>    for (Store s : this.stores.values()) {<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>    }<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    return size;<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>  }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span><a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>  @Override<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>  public void waitForFlushesAndCompactions() {<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    synchronized (writestate) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      if (this.writestate.readOnly) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>        // region is a secondary replica).<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>        return;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      boolean interrupted = false;<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      try {<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>          try {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>            writestate.wait();<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          } catch (InterruptedException iex) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>            // essentially ignore and propagate the interrupt back up<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>            LOG.warn("Interrupted while waiting");<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>            interrupted = true;<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>          }<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>        }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      } finally {<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (interrupted) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          Thread.currentThread().interrupt();<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>        }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      }<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>    }<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>  }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>  @Override<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>  public void waitForFlushes() {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>    synchronized (writestate) {<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>      if (this.writestate.readOnly) {<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>        // region is a secondary replica).<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>        return;<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      }<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>      if (!writestate.flushing) return;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      long start = System.currentTimeMillis();<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>      boolean interrupted = false;<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      try {<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        while (writestate.flushing) {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>          try {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>            writestate.wait();<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          } catch (InterruptedException iex) {<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>            // essentially ignore and propagate the interrupt back up<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>            LOG.warn("Interrupted while waiting");<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            interrupted = true;<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          }<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>      } finally {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        if (interrupted) {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>          Thread.currentThread().interrupt();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>        }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>      }<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>      long duration = System.currentTimeMillis() - start;<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>    }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>  }<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>      final String threadNamePrefix) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    int maxThreads = Math.min(numStores,<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>  }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1800"></a>
+<span class="sourceLineNo">1650</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      if (!stores.isEmpty()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>            getRegionInfo().getRegionNameAsString());<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>        // close each store in parallel<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        for (final Store store : stores.values()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>            if (getRegionServerServices() != null) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>            }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>          }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>          completionService<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                @Override<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>              });<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>        try {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>            if (familyFiles == null) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>            }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>          }<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        } catch (InterruptedException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        } catch (ExecutionException e) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>          Throwable cause = e.getCause();<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>          if (cause instanceof IOException) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>            throw (IOException) cause;<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>          }<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>          throw new IOException(cause);<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        } finally {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>          storeCloserThreadPool.shutdownNow();<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>      }<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span><a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>      status.setStatus("Writing region close event to WAL");<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>        writeRegionCloseMarker(wal);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>      this.closed.set(true);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>      if (!canFlush) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>      }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>      if (coprocessorHost != null) {<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>        this.coprocessorHost.postClose(abort);<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>      }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>      if (this.metricsRegion != null) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>        this.metricsRegion.close();<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>      }<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>      if (this.metricsRegionWrapper != null) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>      }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>      status.markComplete("Closed");<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>      LOG.info("Closed " + this);<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>      return result;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>    } finally {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>      lock.writeLock().unlock();<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>    }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>  }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span><a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>  private long getMemstoreHeapSize() {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    long size = 0;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    for (Store s : this.stores.values()) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>    }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>    return size;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>  }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span><a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>  @Override<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>  public void waitForFlushesAndCompactions() {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    synchronized (writestate) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>      if (this.writestate.readOnly) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>        // region is a secondary replica).<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>        return;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>      }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>      boolean interrupted = false;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>      try {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>          try {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>            writestate.wait();<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>          } catch (InterruptedException iex) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>            // essentially ignore and propagate the interrupt back up<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>            LOG.warn("Interrupted while waiting");<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>            interrupted = true;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>          }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>      } finally {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        if (interrupted) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>          Thread.currentThread().interrupt();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>      }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>    }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>  }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>  @Override<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>  public void waitForFlushes() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>    synchronized (writestate) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>      if (this.writestate.readOnly) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>        // region is a secondary replica).<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>        return;<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>      if (!writestate.flushing) return;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      long start = System.currentTimeMillis();<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      boolean interrupted = false;<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>      try {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        while (writestate.flushing) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>          try {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>            writestate.wait();<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>          } catch (InterruptedException iex) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>            // essentially ignore and propagate the interrupt back up<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>            LOG.warn("Interrupted while waiting");<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>            interrupted = true;<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>          }<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        }<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>      } finally {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>        if (interrupted) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          Thread.currentThread().interrupt();<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>        }<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>      }<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>      long duration = System.currentTimeMillis() - start;<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>    }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>  }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1800"></a>
 <span class="sourceLineNo">1801</span>      final String threadNamePrefix) {<a name="line.1801"></a>
 <span class="sourceLineNo">1802</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    int maxThreads = Math.max(1,<a name="line.1803"></a>
+<span class="sourceLineNo">1803</span>    int maxThreads = Math.min(numStores,<a name="line.1803"></a>
 <span class="sourceLineNo">1804</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>            / numStores);<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>  }<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span><a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>      final String threadNamePrefix) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>      new ThreadFactory() {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        private int count = 1;<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span><a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>        @Override<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>        public Thread newThread(Runnable r) {<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>      });<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>  }<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>   /**<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    */<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>  private boolean worthPreFlushing() {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    return this.memstoreDataSize.get() &gt;<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>  }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span><a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>  // HRegion accessors<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>  @Override<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  public HTableDescriptor getTableDesc() {<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    return this.htableDescriptor;<a name="line.1837"></a>
+<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>  }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span><a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>      final String threadNamePrefix) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    int maxThreads = Math.max(1,<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>            / numStores);<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>  }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>      final String threadNamePrefix) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>      new ThreadFactory() {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>        private int count = 1;<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span><a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>        @Override<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>        public Thread newThread(Runnable r) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      });<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span><a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>   /**<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    */<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  private boolean worthPreFlushing() {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>    return this.memstoreDataSize.get() &gt;<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1837"></a>
 <span class="sourceLineNo">1838</span>  }<a name="line.1838"></a>
 <span class="sourceLineNo">1839</span><a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  /** @return WAL in use for this regio

<TRUNCATED>

[29/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html
index 959e3ef..ac32645 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html
@@ -1401,6821 +1401,6830 @@
 <span class="sourceLineNo">1393</span>  @Override<a name="line.1393"></a>
 <span class="sourceLineNo">1394</span>  public boolean isSplittable() {<a name="line.1394"></a>
 <span class="sourceLineNo">1395</span>    boolean result = isAvailable() &amp;&amp; !hasReferences();<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result, new Throwable("LOGGING"));<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    return result;<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  }<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span><a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  @Override<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>  public boolean isMergeable() {<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    if (!isAvailable()) {<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      LOG.debug("Region " + this<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>          + " is not mergeable because it is closing or closed");<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      return false;<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    }<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    if (hasReferences()) {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      LOG.debug("Region " + this<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>          + " is not mergeable because it has references");<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      return false;<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span><a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    return true;<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span><a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>  public boolean areWritesEnabled() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>    synchronized(this.writestate) {<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      return this.writestate.writesEnabled;<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>  }<a name="line.1420"></a>
+<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result + " " + getRegionInfo().getShortNameToLog(),<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>      new Throwable("LOGGING: REMOVE"));<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    // REMOVE BELOW!!!!<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>    LOG.info("DEBUG LIST ALL FILES");<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    for (Store store: this.stores.values()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>      LOG.info("store " + store.getColumnFamilyName());<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>      for (StoreFile sf: store.getStorefiles()) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        LOG.info(sf.toStringDetailed());<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>      }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>    }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return result;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>  public boolean isMergeable() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    if (!isAvailable()) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      LOG.debug("Region " + this<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>          + " is not mergeable because it is closing or closed");<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>      return false;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>    if (hasReferences()) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      LOG.debug("Region " + this<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>          + " is not mergeable because it has references");<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      return false;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
 <span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  @VisibleForTesting<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>    return mvcc;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>  }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>  @Override<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>  public long getMaxFlushedSeqId() {<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    return maxFlushedSeqId;<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  @Override<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      // This scan can read even uncommitted transactions<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      return Long.MAX_VALUE;<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>    }<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>    return mvcc.getReadPoint();<a name="line.1438"></a>
+<span class="sourceLineNo">1422</span>    return true;<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>  }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span><a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>  public boolean areWritesEnabled() {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>    synchronized(this.writestate) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>      return this.writestate.writesEnabled;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>    }<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>  }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span><a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>  @VisibleForTesting<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>    return mvcc;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>  }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  @Override<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>  public long getMaxFlushedSeqId() {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>    return maxFlushedSeqId;<a name="line.1438"></a>
 <span class="sourceLineNo">1439</span>  }<a name="line.1439"></a>
 <span class="sourceLineNo">1440</span><a name="line.1440"></a>
 <span class="sourceLineNo">1441</span>  @Override<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    return getReadPoint(isolationLevel);<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>  }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span><a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>  @Override<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  /**<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * service any more calls.<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   *<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>   * time-sensitive thread.<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>   *<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * vector if already closed and null if judged that it should not close.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   *<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * @throws IOException e<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>   * caller MUST abort after this.<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>   */<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    return close(false);<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>  private final Object closeLock = new Object();<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span><a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>  /** Conf key for the periodic flush interval */<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  /** Default interval for the memstore flush */<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  /** Default interval for System tables memstore flush */<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span><a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      "hbase.regionserver.flush.per.changes";<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  /**<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>   */<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   * Shut down each HStore, don't service any more calls.<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   *<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * This method could take some time to execute, so don't call it from a<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * time-sensitive thread.<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   *<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>   * @param abort true if server is aborting (only during testing)<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>   * we are not to close at this time or we are already closed.<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>   *<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>   * @throws IOException e<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>   * caller MUST abort after this.<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>   */<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>    // threads attempting to close will run up against each other.<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        "Closing region " + this +<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        (abort ? " due to abort" : ""));<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span><a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>    status.setStatus("Waiting for close lock");<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>    try {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>      synchronized (closeLock) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        return doClose(abort, status);<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      }<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>    } finally {<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      status.cleanup();<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  /**<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>   * Exposed for some very specific unit tests.<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>   */<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>  @VisibleForTesting<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>  public void setClosing(boolean closing) {<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>    this.closing.set(closing);<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>  }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>  /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>   */<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  @VisibleForTesting<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      justification="I think FindBugs is confused")<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      throws IOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    if (isClosed()) {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      LOG.warn("Region " + this + " already closed");<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      return null;<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1442</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      // This scan can read even uncommitted transactions<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>      return Long.MAX_VALUE;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>    return mvcc.getReadPoint();<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span><a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>  @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>    return getReadPoint(isolationLevel);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>  }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span><a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  @Override<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span><a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>  /**<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>   * service any more calls.<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>   *<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>   * time-sensitive thread.<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>   *<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>   * vector if already closed and null if judged that it should not close.<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>   *<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>   * @throws IOException e<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>   * caller MUST abort after this.<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>   */<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>    return close(false);<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>  }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span><a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>  private final Object closeLock = new Object();<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span><a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  /** Conf key for the periodic flush interval */<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>  /** Default interval for the memstore flush */<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>  /** Default interval for System tables memstore flush */<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      "hbase.regionserver.flush.per.changes";<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>  /**<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>   * Shut down each HStore, don't service any more calls.<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>   *<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>   * This method could take some time to execute, so don't call it from a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>   * time-sensitive thread.<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>   *<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>   * @param abort true if server is aborting (only during testing)<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>   * we are not to close at this time or we are already closed.<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>   *<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>   * @throws IOException e<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>   * caller MUST abort after this.<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>   */<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>    // threads attempting to close will run up against each other.<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        "Closing region " + this +<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        (abort ? " due to abort" : ""));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>    status.setStatus("Waiting for close lock");<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>    try {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      synchronized (closeLock) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>        return doClose(abort, status);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>    } finally {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      status.cleanup();<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span><a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>  /**<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>   * Exposed for some very specific unit tests.<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>   */<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>  @VisibleForTesting<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  public void setClosing(boolean closing) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>    this.closing.set(closing);<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span><a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>  /**<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  @VisibleForTesting<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
 <span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>    if (coprocessorHost != null) {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      this.coprocessorHost.preClose(abort);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    boolean canFlush = true;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    synchronized (writestate) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      // Disable compacting and flushing by background threads for this<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // region.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      canFlush = !writestate.readOnly;<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>      writestate.writesEnabled = false;<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      waitForFlushesAndCompactions();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>    }<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    // the close flag?<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      status.setStatus("Pre-flushing region before close");<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      LOG.info("Running close preflush of " + this);<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      try {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        internalFlushcache(status);<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      } catch (IOException ioe) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        // Failed to flush the region. Keep going.<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>    if (timeoutForWriteLock == null<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      // block waiting for the lock for closing<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    } else {<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      try {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>        if (!succeed) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        }<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      } catch (InterruptedException e) {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      }<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    }<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    this.closing.set(true);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    status.setStatus("Disabling writes for close");<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      if (this.isClosed()) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>        status.abort("Already got closed by another process");<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        // SplitTransaction handles the null<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>        return null;<a name="line.1601"></a>
+<span class="sourceLineNo">1553</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      justification="I think FindBugs is confused")<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      throws IOException {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>    if (isClosed()) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      LOG.warn("Region " + this + " already closed");<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      return null;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span><a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    if (coprocessorHost != null) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      this.coprocessorHost.preClose(abort);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>    boolean canFlush = true;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    synchronized (writestate) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      // Disable compacting and flushing by background threads for this<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>      // region.<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      canFlush = !writestate.readOnly;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      writestate.writesEnabled = false;<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      waitForFlushesAndCompactions();<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    }<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    // the close flag?<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      status.setStatus("Pre-flushing region before close");<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      LOG.info("Running close preflush of " + this);<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>      try {<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        internalFlushcache(status);<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>      } catch (IOException ioe) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        // Failed to flush the region. Keep going.<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>      }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span><a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>    if (timeoutForWriteLock == null<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      // block waiting for the lock for closing<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>    } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>      try {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>        if (!succeed) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>        }<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>      } catch (InterruptedException e) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1601"></a>
 <span class="sourceLineNo">1602</span>      }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // Don't flush the cache if we are aborting<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>        int failedfFlushCount = 0;<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>        int flushCount = 0;<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>        long tmp = 0;<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>        while (remainingSize &gt; 0) {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>          try {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>            internalFlushcache(status);<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>            if(flushCount &gt;0) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>                  " (carrying snapshot?) " + this);<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>            }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>            flushCount++;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>            tmp = this.memstoreDataSize.get();<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>            if (tmp &gt;= remainingSize) {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>              failedfFlushCount++;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>            }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>            remainingSize = tmp;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>            if (failedfFlushCount &gt; 5) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>              // so we do not lose data<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>                  flushCount + " attempts on region: " +<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>            }<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>          } catch (IOException ioe) {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>            synchronized (writestate) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>              writestate.writesEnabled = true;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>            }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>            throw ioe;<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>          }<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>        }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      }<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span><a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>      if (!stores.isEmpty()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>            getRegionInfo().getRegionNameAsString());<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1648"></a>
+<span class="sourceLineNo">1603</span>    }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>    this.closing.set(true);<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>    status.setStatus("Disabling writes for close");<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    try {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      if (this.isClosed()) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>        status.abort("Already got closed by another process");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        // SplitTransaction handles the null<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>        return null;<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>      }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>      // Don't flush the cache if we are aborting<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>        int failedfFlushCount = 0;<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>        int flushCount = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>        long tmp = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>        while (remainingSize &gt; 0) {<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>          try {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>            internalFlushcache(status);<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>            if(flushCount &gt;0) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                  " (carrying snapshot?) " + this);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>            }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>            flushCount++;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>            tmp = this.memstoreDataSize.get();<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>            if (tmp &gt;= remainingSize) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>              failedfFlushCount++;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>            }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>            remainingSize = tmp;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>            if (failedfFlushCount &gt; 5) {<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>              // so we do not lose data<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                  flushCount + " attempts on region: " +<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>            }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>          } catch (IOException ioe) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>            synchronized (writestate) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>              writestate.writesEnabled = true;<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>            }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>            throw ioe;<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>          }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>      }<a name="line.1648"></a>
 <span class="sourceLineNo">1649</span><a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        // close each store in parallel<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        for (final Store store : stores.values()) {<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>            if (getRegionServerServices() != null) {<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>            }<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>          }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>          completionService<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>                @Override<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>                }<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>              });<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>        }<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        try {<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>            if (familyFiles == null) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>            }<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>          }<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>        } catch (InterruptedException e) {<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>        } catch (ExecutionException e) {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>          Throwable cause = e.getCause();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>          if (cause instanceof IOException) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>            throw (IOException) cause;<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>          }<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>          throw new IOException(cause);<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        } finally {<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>          storeCloserThreadPool.shutdownNow();<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>        }<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span><a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      status.setStatus("Writing region close event to WAL");<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>        writeRegionCloseMarker(wal);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>      }<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span><a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>      this.closed.set(true);<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      if (!canFlush) {<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>      }<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      if (coprocessorHost != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        this.coprocessorHost.postClose(abort);<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (this.metricsRegion != null) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        this.metricsRegion.close();<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      if (this.metricsRegionWrapper != null) {<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      }<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      status.markComplete("Closed");<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      LOG.info("Closed " + this);<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>      return result;<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    } finally {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      lock.writeLock().unlock();<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>  }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span><a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>  private long getMemstoreHeapSize() {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>    long size = 0;<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>    for (Store s : this.stores.values()) {<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>    }<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    return size;<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>  }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span><a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>  @Override<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>  public void waitForFlushesAndCompactions() {<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    synchronized (writestate) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      if (this.writestate.readOnly) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>        // region is a secondary replica).<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>        return;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      boolean interrupted = false;<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      try {<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>          try {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>            writestate.wait();<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          } catch (InterruptedException iex) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>            // essentially ignore and propagate the interrupt back up<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>            LOG.warn("Interrupted while waiting");<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>            interrupted = true;<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>          }<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>        }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      } finally {<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (interrupted) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          Thread.currentThread().interrupt();<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>        }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      }<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>    }<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>  }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>  @Override<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>  public void waitForFlushes() {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>    synchronized (writestate) {<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>      if (this.writestate.readOnly) {<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>        // region is a secondary replica).<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>        return;<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      }<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>      if (!writestate.flushing) return;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      long start = System.currentTimeMillis();<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>      boolean interrupted = false;<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      try {<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        while (writestate.flushing) {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>          try {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>            writestate.wait();<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          } catch (InterruptedException iex) {<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>            // essentially ignore and propagate the interrupt back up<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>            LOG.warn("Interrupted while waiting");<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            interrupted = true;<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          }<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>      } finally {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        if (interrupted) {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>          Thread.currentThread().interrupt();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>        }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>      }<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>      long duration = System.currentTimeMillis() - start;<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>    }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>  }<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>      final String threadNamePrefix) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    int maxThreads = Math.min(numStores,<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>  }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1800"></a>
+<span class="sourceLineNo">1650</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      if (!stores.isEmpty()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>            getRegionInfo().getRegionNameAsString());<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>        // close each store in parallel<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        for (final Store store : stores.values()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>            if (getRegionServerServices() != null) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>            }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>          }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>          completionService<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                @Override<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>              });<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>        try {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>            if (familyFiles == null) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>            }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>          }<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        } catch (InterruptedException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        } catch (ExecutionException e) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>          Throwable cause = e.getCause();<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>          if (cause instanceof IOException) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>            throw (IOException) cause;<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>          }<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>          throw new IOException(cause);<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        } finally {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>          storeCloserThreadPool.shutdownNow();<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>      }<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span><a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>      status.setStatus("Writing region close event to WAL");<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>        writeRegionCloseMarker(wal);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>      this.closed.set(true);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>      if (!canFlush) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>      }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>      if (coprocessorHost != null) {<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>        this.coprocessorHost.postClose(abort);<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>      }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>      if (this.metricsRegion != null) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>        this.metricsRegion.close();<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>      }<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>      if (this.metricsRegionWrapper != null) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>      }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>      status.markComplete("Closed");<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>      LOG.info("Closed " + this);<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>      return result;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>    } finally {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>      lock.writeLock().unlock();<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>    }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>  }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span><a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>  private long getMemstoreHeapSize() {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    long size = 0;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    for (Store s : this.stores.values()) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>    }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>    return size;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>  }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span><a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>  @Override<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>  public void waitForFlushesAndCompactions() {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    synchronized (writestate) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>      if (this.writestate.readOnly) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>        // region is a secondary replica).<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>        return;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>      }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>      boolean interrupted = false;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>      try {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>          try {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>            writestate.wait();<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>          } catch (InterruptedException iex) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>            // essentially ignore and propagate the interrupt back up<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>            LOG.warn("Interrupted while waiting");<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>            interrupted = true;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>          }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>      } finally {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        if (interrupted) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>          Thread.currentThread().interrupt();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>      }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>    }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>  }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>  @Override<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>  public void waitForFlushes() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>    synchronized (writestate) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>      if (this.writestate.readOnly) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>        // region is a secondary replica).<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>        return;<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>      if (!writestate.flushing) return;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      long start = System.currentTimeMillis();<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      boolean interrupted = false;<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>      try {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        while (writestate.flushing) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>          try {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>            writestate.wait();<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>          } catch (InterruptedException iex) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>            // essentially ignore and propagate the interrupt back up<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>            LOG.warn("Interrupted while waiting");<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>            interrupted = true;<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>          }<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        }<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>      } finally {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>        if (interrupted) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          Thread.currentThread().interrupt();<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>        }<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>      }<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>      long duration = System.currentTimeMillis() - start;<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>    }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>  }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1800"></a>
 <span class="sourceLineNo">1801</span>      final String threadNamePrefix) {<a name="line.1801"></a>
 <span class="sourceLineNo">1802</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    int maxThreads = Math.max(1,<a name="line.1803"></a>
+<span class="sourceLineNo">1803</span>    int maxThreads = Math.min(numStores,<a name="line.1803"></a>
 <span class="sourceLineNo">1804</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>            / numStores);<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>  }<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span><a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>      final String threadNamePrefix) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>      new ThreadFactory() {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        private int count = 1;<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span><a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>        @Override<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>        public Thread newThread(Runnable r) {<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>      });<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>  }<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>   /**<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    */<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>  private boolean worthPreFlushing() {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    return this.memstoreDataSize.get() &gt;<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>  }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span><a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>  // HRegion accessors<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>  @Override<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  public HTableDescriptor getTableDesc() {<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    return this.htableDescriptor;<a name="line.1837"></a>
+<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>  }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span><a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>      final String threadNamePrefix) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    int maxThreads = Math.max(1,<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>            / numStores);<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>  }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>      final String threadNamePrefix) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>      new ThreadFactory() {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>        private int count = 1;<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span><a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>        @Override<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>        public Thread newThread(Runnable r) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      });<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span><a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>   /**<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    */<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  private boolean worthPreFlushing() {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>    return this.memstoreDataSize.get() &gt;<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1837"></a>
 <span class="sourceLineNo">1838</span>  }<a name="line.1838"></a>
 <span class="sourceLineNo">1839</span><a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  /** @return WAL in use for this region */<

<TRUNCATED>

[25/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html
index 959e3ef..ac32645 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ReplayBatch.html
@@ -1401,6821 +1401,6830 @@
 <span class="sourceLineNo">1393</span>  @Override<a name="line.1393"></a>
 <span class="sourceLineNo">1394</span>  public boolean isSplittable() {<a name="line.1394"></a>
 <span class="sourceLineNo">1395</span>    boolean result = isAvailable() &amp;&amp; !hasReferences();<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result, new Throwable("LOGGING"));<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    return result;<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  }<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span><a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  @Override<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>  public boolean isMergeable() {<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    if (!isAvailable()) {<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      LOG.debug("Region " + this<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>          + " is not mergeable because it is closing or closed");<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      return false;<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    }<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    if (hasReferences()) {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      LOG.debug("Region " + this<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>          + " is not mergeable because it has references");<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      return false;<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span><a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    return true;<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span><a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>  public boolean areWritesEnabled() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>    synchronized(this.writestate) {<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      return this.writestate.writesEnabled;<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>  }<a name="line.1420"></a>
+<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result + " " + getRegionInfo().getShortNameToLog(),<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>      new Throwable("LOGGING: REMOVE"));<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    // REMOVE BELOW!!!!<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>    LOG.info("DEBUG LIST ALL FILES");<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    for (Store store: this.stores.values()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>      LOG.info("store " + store.getColumnFamilyName());<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>      for (StoreFile sf: store.getStorefiles()) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        LOG.info(sf.toStringDetailed());<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>      }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>    }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return result;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>  public boolean isMergeable() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    if (!isAvailable()) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      LOG.debug("Region " + this<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>          + " is not mergeable because it is closing or closed");<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>      return false;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>    if (hasReferences()) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      LOG.debug("Region " + this<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>          + " is not mergeable because it has references");<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      return false;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
 <span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  @VisibleForTesting<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>    return mvcc;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>  }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>  @Override<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>  public long getMaxFlushedSeqId() {<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    return maxFlushedSeqId;<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  @Override<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      // This scan can read even uncommitted transactions<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      return Long.MAX_VALUE;<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>    }<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>    return mvcc.getReadPoint();<a name="line.1438"></a>
+<span class="sourceLineNo">1422</span>    return true;<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>  }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span><a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>  public boolean areWritesEnabled() {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>    synchronized(this.writestate) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>      return this.writestate.writesEnabled;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>    }<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>  }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span><a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>  @VisibleForTesting<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>    return mvcc;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>  }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  @Override<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>  public long getMaxFlushedSeqId() {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>    return maxFlushedSeqId;<a name="line.1438"></a>
 <span class="sourceLineNo">1439</span>  }<a name="line.1439"></a>
 <span class="sourceLineNo">1440</span><a name="line.1440"></a>
 <span class="sourceLineNo">1441</span>  @Override<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    return getReadPoint(isolationLevel);<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>  }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span><a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>  @Override<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  /**<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * service any more calls.<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   *<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>   * time-sensitive thread.<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>   *<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * vector if already closed and null if judged that it should not close.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   *<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * @throws IOException e<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>   * caller MUST abort after this.<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>   */<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    return close(false);<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>  private final Object closeLock = new Object();<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span><a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>  /** Conf key for the periodic flush interval */<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  /** Default interval for the memstore flush */<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  /** Default interval for System tables memstore flush */<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span><a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      "hbase.regionserver.flush.per.changes";<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  /**<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>   */<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   * Shut down each HStore, don't service any more calls.<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   *<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * This method could take some time to execute, so don't call it from a<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * time-sensitive thread.<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   *<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>   * @param abort true if server is aborting (only during testing)<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>   * we are not to close at this time or we are already closed.<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>   *<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>   * @throws IOException e<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>   * caller MUST abort after this.<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>   */<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>    // threads attempting to close will run up against each other.<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        "Closing region " + this +<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        (abort ? " due to abort" : ""));<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span><a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>    status.setStatus("Waiting for close lock");<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>    try {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>      synchronized (closeLock) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        return doClose(abort, status);<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      }<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>    } finally {<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      status.cleanup();<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  /**<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>   * Exposed for some very specific unit tests.<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>   */<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>  @VisibleForTesting<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>  public void setClosing(boolean closing) {<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>    this.closing.set(closing);<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>  }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>  /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>   */<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  @VisibleForTesting<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      justification="I think FindBugs is confused")<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      throws IOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    if (isClosed()) {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      LOG.warn("Region " + this + " already closed");<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      return null;<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1442</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      // This scan can read even uncommitted transactions<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>      return Long.MAX_VALUE;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>    return mvcc.getReadPoint();<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span><a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>  @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>    return getReadPoint(isolationLevel);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>  }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span><a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  @Override<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span><a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>  /**<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>   * service any more calls.<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>   *<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>   * time-sensitive thread.<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>   *<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>   * vector if already closed and null if judged that it should not close.<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>   *<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>   * @throws IOException e<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>   * caller MUST abort after this.<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>   */<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>    return close(false);<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>  }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span><a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>  private final Object closeLock = new Object();<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span><a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  /** Conf key for the periodic flush interval */<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>  /** Default interval for the memstore flush */<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>  /** Default interval for System tables memstore flush */<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      "hbase.regionserver.flush.per.changes";<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>  /**<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>   * Shut down each HStore, don't service any more calls.<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>   *<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>   * This method could take some time to execute, so don't call it from a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>   * time-sensitive thread.<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>   *<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>   * @param abort true if server is aborting (only during testing)<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>   * we are not to close at this time or we are already closed.<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>   *<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>   * @throws IOException e<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>   * caller MUST abort after this.<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>   */<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>    // threads attempting to close will run up against each other.<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        "Closing region " + this +<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        (abort ? " due to abort" : ""));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>    status.setStatus("Waiting for close lock");<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>    try {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      synchronized (closeLock) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>        return doClose(abort, status);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>    } finally {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      status.cleanup();<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span><a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>  /**<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>   * Exposed for some very specific unit tests.<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>   */<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>  @VisibleForTesting<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  public void setClosing(boolean closing) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>    this.closing.set(closing);<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span><a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>  /**<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  @VisibleForTesting<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
 <span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>    if (coprocessorHost != null) {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      this.coprocessorHost.preClose(abort);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    boolean canFlush = true;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    synchronized (writestate) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      // Disable compacting and flushing by background threads for this<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // region.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      canFlush = !writestate.readOnly;<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>      writestate.writesEnabled = false;<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      waitForFlushesAndCompactions();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>    }<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    // the close flag?<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      status.setStatus("Pre-flushing region before close");<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      LOG.info("Running close preflush of " + this);<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      try {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        internalFlushcache(status);<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      } catch (IOException ioe) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        // Failed to flush the region. Keep going.<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>    if (timeoutForWriteLock == null<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      // block waiting for the lock for closing<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    } else {<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      try {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>        if (!succeed) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        }<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      } catch (InterruptedException e) {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      }<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    }<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    this.closing.set(true);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    status.setStatus("Disabling writes for close");<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      if (this.isClosed()) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>        status.abort("Already got closed by another process");<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        // SplitTransaction handles the null<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>        return null;<a name="line.1601"></a>
+<span class="sourceLineNo">1553</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      justification="I think FindBugs is confused")<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      throws IOException {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>    if (isClosed()) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      LOG.warn("Region " + this + " already closed");<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      return null;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span><a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    if (coprocessorHost != null) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      this.coprocessorHost.preClose(abort);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>    boolean canFlush = true;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    synchronized (writestate) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      // Disable compacting and flushing by background threads for this<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>      // region.<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      canFlush = !writestate.readOnly;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      writestate.writesEnabled = false;<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      waitForFlushesAndCompactions();<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    }<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    // the close flag?<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      status.setStatus("Pre-flushing region before close");<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      LOG.info("Running close preflush of " + this);<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>      try {<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        internalFlushcache(status);<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>      } catch (IOException ioe) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        // Failed to flush the region. Keep going.<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>      }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span><a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>    if (timeoutForWriteLock == null<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      // block waiting for the lock for closing<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>    } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>      try {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>        if (!succeed) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>        }<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>      } catch (InterruptedException e) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1601"></a>
 <span class="sourceLineNo">1602</span>      }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // Don't flush the cache if we are aborting<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>        int failedfFlushCount = 0;<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>        int flushCount = 0;<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>        long tmp = 0;<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>        while (remainingSize &gt; 0) {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>          try {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>            internalFlushcache(status);<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>            if(flushCount &gt;0) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>                  " (carrying snapshot?) " + this);<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>            }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>            flushCount++;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>            tmp = this.memstoreDataSize.get();<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>            if (tmp &gt;= remainingSize) {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>              failedfFlushCount++;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>            }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>            remainingSize = tmp;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>            if (failedfFlushCount &gt; 5) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>              // so we do not lose data<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>                  flushCount + " attempts on region: " +<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>            }<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>          } catch (IOException ioe) {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>            synchronized (writestate) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>              writestate.writesEnabled = true;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>            }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>            throw ioe;<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>          }<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>        }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      }<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span><a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>      if (!stores.isEmpty()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>            getRegionInfo().getRegionNameAsString());<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1648"></a>
+<span class="sourceLineNo">1603</span>    }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>    this.closing.set(true);<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>    status.setStatus("Disabling writes for close");<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    try {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      if (this.isClosed()) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>        status.abort("Already got closed by another process");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        // SplitTransaction handles the null<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>        return null;<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>      }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>      // Don't flush the cache if we are aborting<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>        int failedfFlushCount = 0;<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>        int flushCount = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>        long tmp = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>        while (remainingSize &gt; 0) {<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>          try {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>            internalFlushcache(status);<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>            if(flushCount &gt;0) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                  " (carrying snapshot?) " + this);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>            }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>            flushCount++;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>            tmp = this.memstoreDataSize.get();<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>            if (tmp &gt;= remainingSize) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>              failedfFlushCount++;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>            }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>            remainingSize = tmp;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>            if (failedfFlushCount &gt; 5) {<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>              // so we do not lose data<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                  flushCount + " attempts on region: " +<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>            }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>          } catch (IOException ioe) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>            synchronized (writestate) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>              writestate.writesEnabled = true;<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>            }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>            throw ioe;<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>          }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>      }<a name="line.1648"></a>
 <span class="sourceLineNo">1649</span><a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        // close each store in parallel<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        for (final Store store : stores.values()) {<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>            if (getRegionServerServices() != null) {<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>            }<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>          }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>          completionService<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>                @Override<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>                }<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>              });<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>        }<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        try {<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>            if (familyFiles == null) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>            }<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>          }<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>        } catch (InterruptedException e) {<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>        } catch (ExecutionException e) {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>          Throwable cause = e.getCause();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>          if (cause instanceof IOException) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>            throw (IOException) cause;<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>          }<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>          throw new IOException(cause);<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        } finally {<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>          storeCloserThreadPool.shutdownNow();<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>        }<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span><a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      status.setStatus("Writing region close event to WAL");<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>        writeRegionCloseMarker(wal);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>      }<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span><a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>      this.closed.set(true);<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      if (!canFlush) {<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>      }<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      if (coprocessorHost != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        this.coprocessorHost.postClose(abort);<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (this.metricsRegion != null) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        this.metricsRegion.close();<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      if (this.metricsRegionWrapper != null) {<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      }<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      status.markComplete("Closed");<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      LOG.info("Closed " + this);<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>      return result;<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    } finally {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      lock.writeLock().unlock();<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>  }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span><a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>  private long getMemstoreHeapSize() {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>    long size = 0;<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>    for (Store s : this.stores.values()) {<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>    }<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    return size;<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>  }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span><a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>  @Override<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>  public void waitForFlushesAndCompactions() {<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    synchronized (writestate) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      if (this.writestate.readOnly) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>        // region is a secondary replica).<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>        return;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      boolean interrupted = false;<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      try {<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>          try {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>            writestate.wait();<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          } catch (InterruptedException iex) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>            // essentially ignore and propagate the interrupt back up<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>            LOG.warn("Interrupted while waiting");<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>            interrupted = true;<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>          }<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>        }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      } finally {<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (interrupted) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          Thread.currentThread().interrupt();<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>        }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      }<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>    }<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>  }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>  @Override<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>  public void waitForFlushes() {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>    synchronized (writestate) {<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>      if (this.writestate.readOnly) {<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>        // region is a secondary replica).<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>        return;<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      }<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>      if (!writestate.flushing) return;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      long start = System.currentTimeMillis();<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>      boolean interrupted = false;<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      try {<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        while (writestate.flushing) {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>          try {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>            writestate.wait();<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          } catch (InterruptedException iex) {<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>            // essentially ignore and propagate the interrupt back up<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>            LOG.warn("Interrupted while waiting");<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            interrupted = true;<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          }<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>      } finally {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        if (interrupted) {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>          Thread.currentThread().interrupt();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>        }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>      }<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>      long duration = System.currentTimeMillis() - start;<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>    }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>  }<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>      final String threadNamePrefix) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    int maxThreads = Math.min(numStores,<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>  }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1800"></a>
+<span class="sourceLineNo">1650</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      if (!stores.isEmpty()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>            getRegionInfo().getRegionNameAsString());<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>        // close each store in parallel<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        for (final Store store : stores.values()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>            if (getRegionServerServices() != null) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>            }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>          }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>          completionService<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                @Override<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>              });<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>        try {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>            if (familyFiles == null) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>            }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>          }<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        } catch (InterruptedException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        } catch (ExecutionException e) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>          Throwable cause = e.getCause();<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>          if (cause instanceof IOException) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>            throw (IOException) cause;<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>          }<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>          throw new IOException(cause);<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        } finally {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>          storeCloserThreadPool.shutdownNow();<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>      }<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span><a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>      status.setStatus("Writing region close event to WAL");<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>        writeRegionCloseMarker(wal);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>      this.closed.set(true);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>      if (!canFlush) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>      }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>      if (coprocessorHost != null) {<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>        this.coprocessorHost.postClose(abort);<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>      }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>      if (this.metricsRegion != null) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>        this.metricsRegion.close();<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>      }<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>      if (this.metricsRegionWrapper != null) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>      }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>      status.markComplete("Closed");<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>      LOG.info("Closed " + this);<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>      return result;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>    } finally {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>      lock.writeLock().unlock();<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>    }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>  }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span><a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>  private long getMemstoreHeapSize() {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    long size = 0;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    for (Store s : this.stores.values()) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>    }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>    return size;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>  }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span><a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>  @Override<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>  public void waitForFlushesAndCompactions() {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    synchronized (writestate) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>      if (this.writestate.readOnly) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>        // region is a secondary replica).<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>        return;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>      }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>      boolean interrupted = false;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>      try {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>          try {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>            writestate.wait();<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>          } catch (InterruptedException iex) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>            // essentially ignore and propagate the interrupt back up<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>            LOG.warn("Interrupted while waiting");<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>            interrupted = true;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>          }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>      } finally {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        if (interrupted) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>          Thread.currentThread().interrupt();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>      }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>    }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>  }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>  @Override<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>  public void waitForFlushes() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>    synchronized (writestate) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>      if (this.writestate.readOnly) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>        // region is a secondary replica).<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>        return;<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>      if (!writestate.flushing) return;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      long start = System.currentTimeMillis();<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      boolean interrupted = false;<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>      try {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        while (writestate.flushing) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>          try {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>            writestate.wait();<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>          } catch (InterruptedException iex) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>            // essentially ignore and propagate the interrupt back up<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>            LOG.warn("Interrupted while waiting");<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>            interrupted = true;<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>          }<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        }<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>      } finally {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>        if (interrupted) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          Thread.currentThread().interrupt();<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>        }<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>      }<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>      long duration = System.currentTimeMillis() - start;<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>    }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>  }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1800"></a>
 <span class="sourceLineNo">1801</span>      final String threadNamePrefix) {<a name="line.1801"></a>
 <span class="sourceLineNo">1802</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    int maxThreads = Math.max(1,<a name="line.1803"></a>
+<span class="sourceLineNo">1803</span>    int maxThreads = Math.min(numStores,<a name="line.1803"></a>
 <span class="sourceLineNo">1804</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>            / numStores);<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>  }<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span><a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>      final String threadNamePrefix) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>      new ThreadFactory() {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        private int count = 1;<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span><a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>        @Override<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>        public Thread newThread(Runnable r) {<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>      });<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>  }<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>   /**<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    */<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>  private boolean worthPreFlushing() {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    return this.memstoreDataSize.get() &gt;<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>  }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span><a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>  // HRegion accessors<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>  @Override<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  public HTableDescriptor getTableDesc() {<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    return this.htableDescriptor;<a name="line.1837"></a>
+<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>  }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span><a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>      final String threadNamePrefix) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    int maxThreads = Math.max(1,<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>            / numStores);<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>  }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>      final String threadNamePrefix) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>      new ThreadFactory() {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>        private int count = 1;<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span><a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>        @Override<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>        public Thread newThread(Runnable r) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      });<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span><a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>   /**<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    */<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  private boolean worthPreFlushing() {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>    return this.memstoreDataSize.get() &gt;<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1837"></a>
 <span class="sourceLineNo">1838</span>  }<a name="line.1838"></a>
 <span class="sourceLineNo">1839</span><a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  /** @return WAL in use for this region */<a name="li

<TRUNCATED>

[02/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-convergence.html b/hbase-spark/dependency-convergence.html
index 2095afe..9e973d1 100644
--- a/hbase-spark/dependency-convergence.html
+++ b/hbase-spark/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>
@@ -129,10 +129,10 @@
 <td>33</td></tr>
 <tr class="b">
 <th>Number of dependencies (NOD):</th>
-<td>93</td></tr>
+<td>92</td></tr>
 <tr class="a">
 <th>Number of unique artifacts (NOA):</th>
-<td>94</td></tr>
+<td>93</td></tr>
 <tr class="b">
 <th>Number of SNAPSHOT artifacts (NOS):</th>
 <td>0</td></tr>
@@ -266,7 +266,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.3.1</td>
+<td width="25%">1.4</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-it">org.apache.hbase:hbase-it</a></li>
@@ -309,7 +309,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.4</td>
+<td width="25%">2.5</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -366,18 +366,6 @@
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-spark">org.apache.hbase:hbase-spark</a></li>
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
 <div class="section">
-<h4><a name="commons-net:commons-net"></a>commons-net:commons-net</h4>
-<table border="0" class="bodyTable">
-<tr class="b">
-<td><img alt="success" src="images/icon_success_sml.gif" /></td>
-<td>
-<table border="0" class="bodyTable">
-<tr class="a">
-<td width="25%">3.1</td>
-<td>
-<ol style="list-style-type: lower-alpha">
-<li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
-<div class="section">
 <h4><a name="io.dropwizard.metrics:metrics-core"></a>io.dropwizard.metrics:metrics-core</h4>
 <table border="0" class="bodyTable">
 <tr class="b">
@@ -385,7 +373,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.1.2</td>
+<td width="25%">3.2.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -416,7 +404,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.1.1.Final</td>
+<td width="25%">4.1.9.Final</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -444,7 +432,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.2.2</td>
+<td width="25%">2.2.12</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li></ol></td></tr></table></td></tr></table></div>
@@ -556,7 +544,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.6</td>
+<td width="25%">2.12.2</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">org.apache.hbase:hbase-external-blockcache</a></li></ol></td></tr></table></td></tr></table></div>
@@ -608,7 +596,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -620,7 +608,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -632,7 +620,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1217,7 +1205,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.1.0-incubating</td>
+<td width="25%">3.2.0-incubating</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1235,7 +1223,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.5.2</td>
+<td width="25%">4.5.3</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1249,7 +1237,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.4.4</td>
+<td width="25%">4.4.6</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1337,7 +1325,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.4.8</td>
+<td width="25%">3.4.9</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1492,7 +1480,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.22.2</td>
+<td width="25%">2.25.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li>
@@ -1568,7 +1556,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">9.1.9.0</td>
+<td width="25%">9.1.10.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-shell">org.apache.hbase:hbase-shell</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1580,7 +1568,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.10.8</td>
+<td width="25%">1.10.19</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">org.apache.hbase:hbase-annotations</a></li>
@@ -1660,7 +1648,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1672,7 +1660,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-testing-util">org.apache.hbase:hbase-testing-util</a></li></ol></td></tr></table></td></tr></table></div></div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-info.html b/hbase-spark/dependency-info.html
index b3ef8d6..4a86c23 100644
--- a/hbase-spark/dependency-info.html
+++ b/hbase-spark/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-spark/dependency-management.html b/hbase-spark/dependency-management.html
index 193494d..838f0d0 100644
--- a/hbase-spark/dependency-management.html
+++ b/hbase-spark/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>
@@ -149,9 +149,9 @@
 <tr class="b">
 <td>commons-cli</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">commons-cli</a></td>
-<td>1.3.1</td>
+<td>1.4</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-codec</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-codec/">commons-codec</a></td>
@@ -166,10 +166,10 @@
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-io</td>
-<td><a class="externalLink" href="http://commons.apache.org/io/">commons-io</a></td>
-<td>2.4</td>
+<td><a class="externalLink" href="http://commons.apache.org/proper/commons-io/">commons-io</a></td>
+<td>2.5</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="b">
 <td>commons-lang</td>
 <td><a class="externalLink" href="http://commons.apache.org/lang/">commons-lang</a></td>
@@ -183,411 +183,405 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
 <tr class="b">
-<td>commons-net</td>
-<td><a class="externalLink" href="http://commons.apache.org/net/">commons-net</a></td>
-<td>3.1</td>
-<td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
 <td>io.dropwizard.metrics</td>
 <td><a class="externalLink" href="http://metrics.codahale.com/metrics-core/">metrics-core</a></td>
-<td>3.1.2</td>
+<td>3.2.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>io.netty</td>
 <td><a class="externalLink" href="http://netty.io/netty-all/">netty-all</a></td>
-<td>4.1.1.Final</td>
+<td>4.1.9.Final</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>javax.servlet</td>
 <td><a class="externalLink" href="http://servlet-spec.java.net">javax.servlet-api</a></td>
 <td>3.1.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>javax.xml.bind</td>
-<td><a class="externalLink" href="https://jaxb.dev.java.net/">jaxb-api</a></td>
-<td>2.2.2</td>
+<td><a class="externalLink" href="http://jaxb.java.net/">jaxb-api</a></td>
+<td>2.2.12</td>
 <td>jar</td>
-<td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
-<tr class="a">
+<td><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
+<tr class="b">
 <td>junit</td>
 <td><a class="externalLink" href="http://junit.org">junit</a></td>
 <td>4.12</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>log4j</td>
 <td><a class="externalLink" href="http://logging.apache.org/log4j/1.2/">log4j</a></td>
 <td>1.2.17</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>net.spy</td>
 <td><a class="externalLink" href="http://www.couchbase.org/code/couchbase/java">spymemcached</a></td>
-<td>2.11.6</td>
+<td>2.12.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-crypto/">commons-crypto</a></td>
 <td>1.0.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math</a></td>
 <td>2.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-client">curator-client</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-framework">curator-framework</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-recipes">curator-recipes</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-auth</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-client</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-hdfs</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-core</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-jobclient</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-minicluster</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-client">hbase-client</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-common">hbase-common</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-endpoint">hbase-endpoint</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-examples">hbase-examples</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">hbase-external-blockcache</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop-compat">hbase-hadoop-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop2-compat">hbase-hadoop2-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics">hbase-metrics</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics-api">hbase-metrics-api</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol">hbase-protocol</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol-shaded">hbase-protocol-shaded</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-rsgroup">hbase-rsgroup</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-server">hbase-server</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-shell">hbase-shell</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">hbase-thrift</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.htrace</td>
 <td><a class="externalLink" href="http://incubator.apache.org/projects/htrace.html">htrace-core</a></td>
-<td>3.1.0-incubating</td>
+<td>3.2.0-incubating</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">httpclient</a></td>
-<td>4.5.2</td>
+<td>4.5.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">httpcore</a></td>
-<td>4.4.4</td>
+<td>4.4.6</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-client">kerb-client</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-simplekdc">kerb-simplekdc</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.thrift</td>
 <td><a class="externalLink" href="http://thrift.apache.org">libthrift</a></td>
 <td>0.9.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.zookeeper</td>
 <td>zookeeper</td>
-<td>3.4.8</td>
+<td>3.4.9</td>
 <td>jar</td>
-<td>-</td></tr>
-<tr class="b">
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-core-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-jaxrs</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-mapper-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-xc</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jettison</td>
-<td><a class="externalLink" href="http://codehaus.org/jettison/">jettison</a></td>
-<td>1.3.3</td>
+<td><a class="externalLink" href="https://github.com/jettison-json/jettison">jettison</a></td>
+<td>1.3.8</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jsp</a></td>
 <td>9.2.19.v20160908</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.jersey.containers</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">jersey-container-servlet-core</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.jersey.media</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-media-json-jackson1/">jersey-media-json-jackson1</a></td>
 <td>2.23.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
-<td>9.1.9.0</td>
+<td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
-<td>1.7.7</td>
+<td>1.7.24</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr></table></div>
 <div class="section">
@@ -715,7 +709,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr></table></div></div>
       </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/index.html
----------------------------------------------------------------------
diff --git a/hbase-spark/index.html b/hbase-spark/index.html
index a26c274..dc10cc9 100644
--- a/hbase-spark/index.html
+++ b/hbase-spark/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/integration.html
----------------------------------------------------------------------
diff --git a/hbase-spark/integration.html b/hbase-spark/integration.html
index 8a16651..9154636 100644
--- a/hbase-spark/integration.html
+++ b/hbase-spark/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-spark/issue-tracking.html b/hbase-spark/issue-tracking.html
index d5fc5df..ddec706 100644
--- a/hbase-spark/issue-tracking.html
+++ b/hbase-spark/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/license.html
----------------------------------------------------------------------
diff --git a/hbase-spark/license.html b/hbase-spark/license.html
index 12a9c75..38cdc33 100644
--- a/hbase-spark/license.html
+++ b/hbase-spark/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-spark/mail-lists.html b/hbase-spark/mail-lists.html
index 4f0cb12..00faa03 100644
--- a/hbase-spark/mail-lists.html
+++ b/hbase-spark/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-spark/plugin-management.html b/hbase-spark/plugin-management.html
index 44a0fe0..ce4d3a0 100644
--- a/hbase-spark/plugin-management.html
+++ b/hbase-spark/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-spark/plugins.html b/hbase-spark/plugins.html
index 2309a2e..02716d6 100644
--- a/hbase-spark/plugins.html
+++ b/hbase-spark/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-info.html b/hbase-spark/project-info.html
index 4c4bfe9..36a30d4 100644
--- a/hbase-spark/project-info.html
+++ b/hbase-spark/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-reports.html b/hbase-spark/project-reports.html
index 6766514..7a9ab0d 100644
--- a/hbase-spark/project-reports.html
+++ b/hbase-spark/project-reports.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-spark/project-summary.html b/hbase-spark/project-summary.html
index 4c006ea..945acfe 100644
--- a/hbase-spark/project-summary.html
+++ b/hbase-spark/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-spark/source-repository.html b/hbase-spark/source-repository.html
index 02e9a98..649635c 100644
--- a/hbase-spark/source-repository.html
+++ b/hbase-spark/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-spark/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-spark/team-list.html b/hbase-spark/team-list.html
index e25f429..a470c75 100644
--- a/hbase-spark/team-list.html
+++ b/hbase-spark/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Spark">Apache HBase - Spark</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index d727904..a2ad1b2 100644
--- a/index.html
+++ b/index.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBaseâ„¢ Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -438,7 +438,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index f98c227..b1c1416 100644
--- a/integration.html
+++ b/integration.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Continuous Integration</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -296,7 +296,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 61586d0..b0d2a6a 100644
--- a/issue-tracking.html
+++ b/issue-tracking.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Tracking</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -293,7 +293,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 5fb527b..363cc67 100644
--- a/license.html
+++ b/license.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project License</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -496,7 +496,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index 7ba4fc2..f90046e 100644
--- a/mail-lists.html
+++ b/mail-lists.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -346,7 +346,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index ee1a589..f22002e 100644
--- a/metrics.html
+++ b/metrics.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -464,7 +464,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index a66844a..42668e1 100644
--- a/old_news.html
+++ b/old_news.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -419,7 +419,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index d7d23cf..0963068 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -441,7 +441,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index 3a66a59..3c00611 100644
--- a/plugins.html
+++ b/plugins.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Build Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -376,7 +376,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 75828b5..516796c 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Powered By Apache HBase™</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -774,7 +774,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index c41828a..421d004 100644
--- a/project-info.html
+++ b/project-info.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -340,7 +340,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index d1cb8ed..b01f091 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -310,7 +310,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index 6b84675..f9135e9 100644
--- a/project-summary.html
+++ b/project-summary.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -336,7 +336,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 9d88b0d..0bfff74 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -313,7 +313,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index d8682b6..864c3de 100644
--- a/replication.html
+++ b/replication.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -308,7 +308,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index 8cbd8bf..c6d12c8 100644
--- a/resources.html
+++ b/resources.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Other Apache HBase (TM) Resources</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -336,7 +336,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index cd49063..d210024 100644
--- a/source-repository.html
+++ b/source-repository.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Repository</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -304,7 +304,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index ddfa1da..6edddb4 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase™ Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -338,7 +338,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index a3cb268..e43b1e9 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -525,7 +525,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index 6f99889..b43d553 100644
--- a/team-list.html
+++ b/team-list.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Team list</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -807,7 +807,7 @@ window.onLoad = init();
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index c41172c..9d29d0f 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -49470,6 +49470,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.html#testPostSync--">testPostSync()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">TestMetricsWAL</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestStoreScanner.html#testPreadNotEnabledForCompactionStoreScanners--">testPreadNotEnabledForCompactionStoreScanners()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestStoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">TestStoreScanner</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestFromClientSide3.html#testPreBatchMutate-org.apache.hadoop.hbase.TableName-java.lang.Runnable-">testPreBatchMutate(TableName, Runnable)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestFromClientSide3.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide3</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/TestParseFilter.html#testPrecedence1--">testPrecedence1()</a></span> - Method in class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/TestParseFilter.html" title="class in org.apache.hadoop.hbase.filter">TestParseFilter</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
index 83a1fc2..544f772 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -544,13 +544,13 @@
 <ul>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 451a7e3..b9a9b1d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -205,9 +205,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellGridStoreScanner.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellGridStoreScanner.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellGridStoreScanner.html
index c8aa163..64de472 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellGridStoreScanner.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellGridStoreScanner.html
@@ -248,7 +248,7 @@ extends org.apache.hadoop.hbase.regionserver.StoreScanner</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.StoreScanner</h3>
-<code>checkFlushed, checkScanOrder, close, enableLazySeekGlobally, getAllScannersForTesting, getEstimatedNumberOfKvsScanned, getReadPoint, getScannerOrder, next, next, next, peek, reopenAfterFlush, reseek, seek, seekAsDirection, seekScanners, seekToNextRow, selectScannersFrom, shipped, updateReaders</code></li>
+<code>checkFlushed, checkScanOrder, close, enableLazySeekGlobally, getAllScannersForTesting, getEstimatedNumberOfKvsScanned, getReadPoint, getScannerOrder, isScanUsePread, next, next, next, peek, reopenAfterFlush, reseek, seek, seekAsDirection, seekScanners, seekToNextRow, selectScannersFrom, shipped, updateReaders</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner">


[47/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/apache_hbase_reference_guide.pdfmarks
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdfmarks b/apache_hbase_reference_guide.pdfmarks
index 0e5ca79..97924a4 100644
--- a/apache_hbase_reference_guide.pdfmarks
+++ b/apache_hbase_reference_guide.pdfmarks
@@ -2,8 +2,8 @@
   /Author (Apache HBase Team)
   /Subject ()
   /Keywords ()
-  /ModDate (D:20170615145009)
-  /CreationDate (D:20170615145009)
+  /ModDate (D:20170616144948)
+  /CreationDate (D:20170616144948)
   /Creator (Asciidoctor PDF 1.5.0.alpha.6, based on Prawn 1.2.1)
   /Producer ()
   /DOCINFO pdfmark

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 8a529e9..b60b371 100644
--- a/book.html
+++ b/book.html
@@ -13176,7 +13176,59 @@ Please use <a href="http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/clie
 </div>
 </div>
 <div class="sect2">
-<h3 id="client.external"><a class="anchor" href="#client.external"></a>66.3. External Clients</h3>
+<h3 id="async.client"><a class="anchor" href="#async.client"></a>66.3. Asynchronous Client</h3>
+<div class="paragraph">
+<p>It is a new API introduced in HBase 2.0 which aims to provide the ability to access HBase asynchronously.</p>
+</div>
+<div class="paragraph">
+<p>You can obtain an <code>AsyncConnection</code> from <code>ConnectionFactory</code>, and then get a asynchronous table instance from it to access HBase. When done, close the <code>AsyncConnection</code> instance(usually when your program exits).</p>
+</div>
+<div class="paragraph">
+<p>For the asynchronous table, most methods have the same meaning with the old <code>Table</code> interface, expect that the return value is wrapped with a CompletableFuture usually. We do not have any buffer here so there is no close method for asynchronous table, you do not need to close it. And it is thread safe.</p>
+</div>
+<div class="paragraph">
+<p>There are several differences for scan:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>There is still a <code>getScanner</code> method which returns a <code>ResultScanner</code>. You can use it in the old way and it works like the old <code>ClientAsyncPrefetchScanner</code>.</p>
+</li>
+<li>
+<p>There is a <code>scanAll</code> method which will return all the results at once. It aims to provide a simpler way for small scans which you want to get the whole results at once usually.</p>
+</li>
+<li>
+<p>The Observer Pattern. There is a scan method which accepts a <code>ScanResultConsumer</code> as a parameter. It will pass the results to the consumer.</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Notice that there are two types of asynchronous table, one is <code>AsyncTable</code> and the other is <code>RawAsyncTable</code>.</p>
+</div>
+<div class="paragraph">
+<p>For <code>AsyncTable</code>, you need to provide a thread pool when getting it. The callbacks registered to the returned CompletableFuture will be executed in that thread pool. It is designed for normal users. You are free to do anything in the callbacks.</p>
+</div>
+<div class="paragraph">
+<p>For <code>RawAsyncTable</code>, all the callbacks are executed inside the framework thread so it is not allowed to do time consuming works in the callbacks otherwise you may block the framework thread and cause very bad performance impact. It is designed for advanced users who want to write high performance code. You can see the <code>org.apache.hadoop.hbase.client.example.HttpProxyExample</code> to see how to write fully asynchronous code with <code>RawAsyncTable</code>. And coprocessor related methods are only in <code>RawAsyncTable</code>.</p>
+</div>
+<div class="admonitionblock warning">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-warning" title="Warning"></i>
+</td>
+<td class="content">
+<div class="title">On <code>AsyncAdmin</code></div>
+<div class="paragraph">
+<p><code>AsyncAdmin</code> is still under development and marked as IA.Private. Use it with caution as we may change the API without any announcement.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+<div class="sect2">
+<h3 id="client.external"><a class="anchor" href="#client.external"></a>66.4. External Clients</h3>
 <div class="paragraph">
 <p>Information on non-Java clients and custom protocols is covered in <a href="#external_apis">Apache HBase External APIs</a></p>
 </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index e16c4bc..86b56de 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -311,7 +311,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-06-15</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-06-16</li>
             </p>
                 </div>
 


[08/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/checkstyle.html b/hbase-archetypes/hbase-client-project/checkstyle.html
index 240f334..a414dd1 100644
--- a/hbase-archetypes/hbase-client-project/checkstyle.html
+++ b/hbase-archetypes/hbase-client-project/checkstyle.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>


[15/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
index 4262d4d..6c614c0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
@@ -1452,7 +1452,7 @@
 <span class="sourceLineNo">1444</span>    StringBuilder message = new StringBuilder(<a name="line.1444"></a>
 <span class="sourceLineNo">1445</span>      "Completed" + (cr.isMajor() ? " major" : "") + " compaction of "<a name="line.1445"></a>
 <span class="sourceLineNo">1446</span>      + cr.getFiles().size() + (cr.isAllFiles() ? " (all)" : "") + " file(s) in "<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>      + this + " of " + this.getRegionInfo().getRegionNameAsString() + " into ");<a name="line.1447"></a>
+<span class="sourceLineNo">1447</span>      + this + " of " + this.getRegionInfo().getShortNameToLog() + " into ");<a name="line.1447"></a>
 <span class="sourceLineNo">1448</span>    if (sfs.isEmpty()) {<a name="line.1448"></a>
 <span class="sourceLineNo">1449</span>      message.append("none, ");<a name="line.1449"></a>
 <span class="sourceLineNo">1450</span>    } else {<a name="line.1450"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.html
index 4262d4d..6c614c0 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.html
@@ -1452,7 +1452,7 @@
 <span class="sourceLineNo">1444</span>    StringBuilder message = new StringBuilder(<a name="line.1444"></a>
 <span class="sourceLineNo">1445</span>      "Completed" + (cr.isMajor() ? " major" : "") + " compaction of "<a name="line.1445"></a>
 <span class="sourceLineNo">1446</span>      + cr.getFiles().size() + (cr.isAllFiles() ? " (all)" : "") + " file(s) in "<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>      + this + " of " + this.getRegionInfo().getRegionNameAsString() + " into ");<a name="line.1447"></a>
+<span class="sourceLineNo">1447</span>      + this + " of " + this.getRegionInfo().getShortNameToLog() + " into ");<a name="line.1447"></a>
 <span class="sourceLineNo">1448</span>    if (sfs.isEmpty()) {<a name="line.1448"></a>
 <span class="sourceLineNo">1449</span>      message.append("none, ");<a name="line.1449"></a>
 <span class="sourceLineNo">1450</span>    } else {<a name="line.1450"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html
index 9698e93..c8333b2 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/IncreasingToUpperBoundRegionSplitPolicy.html
@@ -35,106 +35,108 @@
 <span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.27"></a>
 <span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.TableName;<a name="line.28"></a>
 <span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.29"></a>
-<span class="sourceLineNo">030</span><a name="line.30"></a>
-<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * Split size is the number of regions that are on this server that all are<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * of the same table, cubed, times 2x the region flush size OR the maximum<a name="line.33"></a>
-<span class="sourceLineNo">034</span> * region split size, whichever is smaller.<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * &lt;p&gt;<a name="line.35"></a>
-<span class="sourceLineNo">036</span> * For example, if the flush size is 128MB, then after two flushes (256MB) we<a name="line.36"></a>
-<span class="sourceLineNo">037</span> * will split which will make two regions that will split when their size is<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * {@code 2^3 * 128MB*2 = 2048MB}.<a name="line.38"></a>
-<span class="sourceLineNo">039</span> * &lt;p&gt;<a name="line.39"></a>
-<span class="sourceLineNo">040</span> * If one of these regions splits, then there are three regions and now the<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * split size is {@code 3^3 * 128MB*2 = 6912MB}, and so on until we reach the configured<a name="line.41"></a>
-<span class="sourceLineNo">042</span> * maximum file size and then from there on out, we'll use that.<a name="line.42"></a>
-<span class="sourceLineNo">043</span> */<a name="line.43"></a>
-<span class="sourceLineNo">044</span>@InterfaceAudience.Private<a name="line.44"></a>
-<span class="sourceLineNo">045</span>public class IncreasingToUpperBoundRegionSplitPolicy extends ConstantSizeRegionSplitPolicy {<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  private static final Log LOG = LogFactory.getLog(IncreasingToUpperBoundRegionSplitPolicy.class);<a name="line.47"></a>
-<span class="sourceLineNo">048</span>  protected long initialSize;<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>  @Override<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  protected void configureForRegion(HRegion region) {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    super.configureForRegion(region);<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    Configuration conf = getConf();<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    initialSize = conf.getLong("hbase.increasing.policy.initial.size", -1);<a name="line.54"></a>
-<span class="sourceLineNo">055</span>    if (initialSize &gt; 0) {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>      return;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    }<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    HTableDescriptor desc = region.getTableDesc();<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    if (desc != null) {<a name="line.59"></a>
-<span class="sourceLineNo">060</span>      initialSize = 2 * desc.getMemStoreFlushSize();<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    }<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    if (initialSize &lt;= 0) {<a name="line.62"></a>
-<span class="sourceLineNo">063</span>      initialSize = 2 * conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE,<a name="line.63"></a>
-<span class="sourceLineNo">064</span>                                     HTableDescriptor.DEFAULT_MEMSTORE_FLUSH_SIZE);<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    }<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  }<a name="line.66"></a>
-<span class="sourceLineNo">067</span><a name="line.67"></a>
-<span class="sourceLineNo">068</span>  @Override<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  protected boolean shouldSplit() {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    boolean force = region.shouldForceSplit();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    boolean foundABigStore = false;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    // Get count of regions that have the same common table as this.region<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    int tableRegionsCount = getCountOfCommonTableRegions();<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    // Get size to check<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    long sizeToCheck = getSizeToCheck(tableRegionsCount);<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>    for (Store store : region.getStores()) {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      // If any of the stores is unable to split (eg they contain reference files)<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      // then don't split<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      if (!store.canSplit()) {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>        return false;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      }<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>      // Mark if any store is big enough<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      long size = store.getSize();<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      if (size &gt; sizeToCheck) {<a name="line.86"></a>
-<span class="sourceLineNo">087</span>        LOG.debug("ShouldSplit because " + store.getColumnFamilyName() + " size=" + size<a name="line.87"></a>
-<span class="sourceLineNo">088</span>                  + ", sizeToCheck=" + sizeToCheck + ", regionsWithCommonTable="<a name="line.88"></a>
-<span class="sourceLineNo">089</span>                  + tableRegionsCount);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        foundABigStore = true;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      }<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    }<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>    return foundABigStore | force;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
-<span class="sourceLineNo">098</span>   * @return Count of regions on this server that share the table this.region<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   * belongs to<a name="line.99"></a>
-<span class="sourceLineNo">100</span>   */<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  private int getCountOfCommonTableRegions() {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    RegionServerServices rss = region.getRegionServerServices();<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    // Can be null in tests<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    if (rss == null) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      return 0;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    TableName tablename = region.getTableDesc().getTableName();<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    int tableRegionsCount = 0;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    try {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      List&lt;Region&gt; hri = rss.getOnlineRegions(tablename);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      tableRegionsCount = hri == null || hri.isEmpty() ? 0 : hri.size();<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    } catch (IOException e) {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      LOG.debug("Failed getOnlineRegions " + tablename, e);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    }<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    return tableRegionsCount;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>  }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  /**<a name="line.118"></a>
-<span class="sourceLineNo">119</span>   * @return Region max size or {@code count of regions cubed * 2 * flushsize},<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   * which ever is smaller; guard against there being zero regions on this server.<a name="line.120"></a>
-<span class="sourceLineNo">121</span>   */<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  protected long getSizeToCheck(final int tableRegionsCount) {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    // safety check for 100 to avoid numerical overflow in extreme cases<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    return tableRegionsCount == 0 || tableRegionsCount &gt; 100<a name="line.124"></a>
-<span class="sourceLineNo">125</span>               ? getDesiredMaxFileSize()<a name="line.125"></a>
-<span class="sourceLineNo">126</span>               : Math.min(getDesiredMaxFileSize(),<a name="line.126"></a>
-<span class="sourceLineNo">127</span>                          initialSize * tableRegionsCount * tableRegionsCount * tableRegionsCount);<a name="line.127"></a>
-<span class="sourceLineNo">128</span>  }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>}<a name="line.129"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.procedure2.util.StringUtils;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>/**<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * Split size is the number of regions that are on this server that all are<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * of the same table, cubed, times 2x the region flush size OR the maximum<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * region split size, whichever is smaller.<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * &lt;p&gt;<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * For example, if the flush size is 128MB, then after two flushes (256MB) we<a name="line.37"></a>
+<span class="sourceLineNo">038</span> * will split which will make two regions that will split when their size is<a name="line.38"></a>
+<span class="sourceLineNo">039</span> * {@code 2^3 * 128MB*2 = 2048MB}.<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * &lt;p&gt;<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * If one of these regions splits, then there are three regions and now the<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * split size is {@code 3^3 * 128MB*2 = 6912MB}, and so on until we reach the configured<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * maximum file size and then from there on out, we'll use that.<a name="line.43"></a>
+<span class="sourceLineNo">044</span> */<a name="line.44"></a>
+<span class="sourceLineNo">045</span>@InterfaceAudience.Private<a name="line.45"></a>
+<span class="sourceLineNo">046</span>public class IncreasingToUpperBoundRegionSplitPolicy extends ConstantSizeRegionSplitPolicy {<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>  private static final Log LOG = LogFactory.getLog(IncreasingToUpperBoundRegionSplitPolicy.class);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  protected long initialSize;<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>  @Override<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  protected void configureForRegion(HRegion region) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    super.configureForRegion(region);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    Configuration conf = getConf();<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    initialSize = conf.getLong("hbase.increasing.policy.initial.size", -1);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    if (initialSize &gt; 0) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      return;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    }<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    HTableDescriptor desc = region.getTableDesc();<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    if (desc != null) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      initialSize = 2 * desc.getMemStoreFlushSize();<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    }<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    if (initialSize &lt;= 0) {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>      initialSize = 2 * conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE,<a name="line.64"></a>
+<span class="sourceLineNo">065</span>                                     HTableDescriptor.DEFAULT_MEMSTORE_FLUSH_SIZE);<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    }<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  }<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>  @Override<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  protected boolean shouldSplit() {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    boolean force = region.shouldForceSplit();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    boolean foundABigStore = false;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    // Get count of regions that have the same common table as this.region<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    int tableRegionsCount = getCountOfCommonTableRegions();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    // Get size to check<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    long sizeToCheck = getSizeToCheck(tableRegionsCount);<a name="line.76"></a>
+<span class="sourceLineNo">077</span><a name="line.77"></a>
+<span class="sourceLineNo">078</span>    for (Store store : region.getStores()) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      // If any of the stores is unable to split (eg they contain reference files)<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      // then don't split<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      if (!store.canSplit()) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>        return false;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      }<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>      // Mark if any store is big enough<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      long size = store.getSize();<a name="line.86"></a>
+<span class="sourceLineNo">087</span>      if (size &gt; sizeToCheck) {<a name="line.87"></a>
+<span class="sourceLineNo">088</span>        LOG.debug("ShouldSplit because " + store.getColumnFamilyName() +<a name="line.88"></a>
+<span class="sourceLineNo">089</span>          " size=" + StringUtils.humanSize(size) +<a name="line.89"></a>
+<span class="sourceLineNo">090</span>          ", sizeToCheck=" + StringUtils.humanSize(sizeToCheck) +<a name="line.90"></a>
+<span class="sourceLineNo">091</span>          ", regionsWithCommonTable=" + tableRegionsCount);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>        foundABigStore = true;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      }<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>    return foundABigStore | force;<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
+<span class="sourceLineNo">098</span><a name="line.98"></a>
+<span class="sourceLineNo">099</span>  /**<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   * @return Count of regions on this server that share the table this.region<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * belongs to<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   */<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  private int getCountOfCommonTableRegions() {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    RegionServerServices rss = region.getRegionServerServices();<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    // Can be null in tests<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    if (rss == null) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      return 0;<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    }<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    TableName tablename = region.getTableDesc().getTableName();<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    int tableRegionsCount = 0;<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    try {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      List&lt;Region&gt; hri = rss.getOnlineRegions(tablename);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      tableRegionsCount = hri == null || hri.isEmpty() ? 0 : hri.size();<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    } catch (IOException e) {<a name="line.114"></a>
+<span class="sourceLineNo">115</span>      LOG.debug("Failed getOnlineRegions " + tablename, e);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    return tableRegionsCount;<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  }<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  /**<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   * @return Region max size or {@code count of regions cubed * 2 * flushsize},<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * which ever is smaller; guard against there being zero regions on this server.<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   */<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  protected long getSizeToCheck(final int tableRegionsCount) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    // safety check for 100 to avoid numerical overflow in extreme cases<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    return tableRegionsCount == 0 || tableRegionsCount &gt; 100<a name="line.126"></a>
+<span class="sourceLineNo">127</span>               ? getDesiredMaxFileSize()<a name="line.127"></a>
+<span class="sourceLineNo">128</span>               : Math.min(getDesiredMaxFileSize(),<a name="line.128"></a>
+<span class="sourceLineNo">129</span>                          initialSize * tableRegionsCount * tableRegionsCount * tableRegionsCount);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  }<a name="line.130"></a>
+<span class="sourceLineNo">131</span>}<a name="line.131"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
index ec9d7ba..2f3c0cd 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
@@ -2815,8 +2815,8 @@
 <span class="sourceLineNo">2807</span>    HRegionInfo hri = rsh.s.getRegionInfo();<a name="line.2807"></a>
 <span class="sourceLineNo">2808</span>    // Yes, should be the same instance<a name="line.2808"></a>
 <span class="sourceLineNo">2809</span>    if (regionServer.getOnlineRegion(hri.getRegionName()) != rsh.r) {<a name="line.2809"></a>
-<span class="sourceLineNo">2810</span>      String msg = "Region was re-opened after the scanner" + scannerName + " was created: "<a name="line.2810"></a>
-<span class="sourceLineNo">2811</span>          + hri.getRegionNameAsString();<a name="line.2811"></a>
+<span class="sourceLineNo">2810</span>      String msg = "Region has changed on the scanner " + scannerName + ": regionName="<a name="line.2810"></a>
+<span class="sourceLineNo">2811</span>          + hri.getRegionName() + ", scannerRegionName=" + rsh.r;<a name="line.2811"></a>
 <span class="sourceLineNo">2812</span>      LOG.warn(msg + ", closing...");<a name="line.2812"></a>
 <span class="sourceLineNo">2813</span>      scanners.remove(scannerName);<a name="line.2813"></a>
 <span class="sourceLineNo">2814</span>      try {<a name="line.2814"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
index ec9d7ba..2f3c0cd 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
@@ -2815,8 +2815,8 @@
 <span class="sourceLineNo">2807</span>    HRegionInfo hri = rsh.s.getRegionInfo();<a name="line.2807"></a>
 <span class="sourceLineNo">2808</span>    // Yes, should be the same instance<a name="line.2808"></a>
 <span class="sourceLineNo">2809</span>    if (regionServer.getOnlineRegion(hri.getRegionName()) != rsh.r) {<a name="line.2809"></a>
-<span class="sourceLineNo">2810</span>      String msg = "Region was re-opened after the scanner" + scannerName + " was created: "<a name="line.2810"></a>
-<span class="sourceLineNo">2811</span>          + hri.getRegionNameAsString();<a name="line.2811"></a>
+<span class="sourceLineNo">2810</span>      String msg = "Region has changed on the scanner " + scannerName + ": regionName="<a name="line.2810"></a>
+<span class="sourceLineNo">2811</span>          + hri.getRegionName() + ", scannerRegionName=" + rsh.r;<a name="line.2811"></a>
 <span class="sourceLineNo">2812</span>      LOG.warn(msg + ", closing...");<a name="line.2812"></a>
 <span class="sourceLineNo">2813</span>      scanners.remove(scannerName);<a name="line.2813"></a>
 <span class="sourceLineNo">2814</span>      try {<a name="line.2814"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
index ec9d7ba..2f3c0cd 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
@@ -2815,8 +2815,8 @@
 <span class="sourceLineNo">2807</span>    HRegionInfo hri = rsh.s.getRegionInfo();<a name="line.2807"></a>
 <span class="sourceLineNo">2808</span>    // Yes, should be the same instance<a name="line.2808"></a>
 <span class="sourceLineNo">2809</span>    if (regionServer.getOnlineRegion(hri.getRegionName()) != rsh.r) {<a name="line.2809"></a>
-<span class="sourceLineNo">2810</span>      String msg = "Region was re-opened after the scanner" + scannerName + " was created: "<a name="line.2810"></a>
-<span class="sourceLineNo">2811</span>          + hri.getRegionNameAsString();<a name="line.2811"></a>
+<span class="sourceLineNo">2810</span>      String msg = "Region has changed on the scanner " + scannerName + ": regionName="<a name="line.2810"></a>
+<span class="sourceLineNo">2811</span>          + hri.getRegionName() + ", scannerRegionName=" + rsh.r;<a name="line.2811"></a>
 <span class="sourceLineNo">2812</span>      LOG.warn(msg + ", closing...");<a name="line.2812"></a>
 <span class="sourceLineNo">2813</span>      scanners.remove(scannerName);<a name="line.2813"></a>
 <span class="sourceLineNo">2814</span>      try {<a name="line.2814"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
index ec9d7ba..2f3c0cd 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
@@ -2815,8 +2815,8 @@
 <span class="sourceLineNo">2807</span>    HRegionInfo hri = rsh.s.getRegionInfo();<a name="line.2807"></a>
 <span class="sourceLineNo">2808</span>    // Yes, should be the same instance<a name="line.2808"></a>
 <span class="sourceLineNo">2809</span>    if (regionServer.getOnlineRegion(hri.getRegionName()) != rsh.r) {<a name="line.2809"></a>
-<span class="sourceLineNo">2810</span>      String msg = "Region was re-opened after the scanner" + scannerName + " was created: "<a name="line.2810"></a>
-<span class="sourceLineNo">2811</span>          + hri.getRegionNameAsString();<a name="line.2811"></a>
+<span class="sourceLineNo">2810</span>      String msg = "Region has changed on the scanner " + scannerName + ": regionName="<a name="line.2810"></a>
+<span class="sourceLineNo">2811</span>          + hri.getRegionName() + ", scannerRegionName=" + rsh.r;<a name="line.2811"></a>
 <span class="sourceLineNo">2812</span>      LOG.warn(msg + ", closing...");<a name="line.2812"></a>
 <span class="sourceLineNo">2813</span>      scanners.remove(scannerName);<a name="line.2813"></a>
 <span class="sourceLineNo">2814</span>      try {<a name="line.2814"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
index ec9d7ba..2f3c0cd 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
@@ -2815,8 +2815,8 @@
 <span class="sourceLineNo">2807</span>    HRegionInfo hri = rsh.s.getRegionInfo();<a name="line.2807"></a>
 <span class="sourceLineNo">2808</span>    // Yes, should be the same instance<a name="line.2808"></a>
 <span class="sourceLineNo">2809</span>    if (regionServer.getOnlineRegion(hri.getRegionName()) != rsh.r) {<a name="line.2809"></a>
-<span class="sourceLineNo">2810</span>      String msg = "Region was re-opened after the scanner" + scannerName + " was created: "<a name="line.2810"></a>
-<span class="sourceLineNo">2811</span>          + hri.getRegionNameAsString();<a name="line.2811"></a>
+<span class="sourceLineNo">2810</span>      String msg = "Region has changed on the scanner " + scannerName + ": regionName="<a name="line.2810"></a>
+<span class="sourceLineNo">2811</span>          + hri.getRegionName() + ", scannerRegionName=" + rsh.r;<a name="line.2811"></a>
 <span class="sourceLineNo">2812</span>      LOG.warn(msg + ", closing...");<a name="line.2812"></a>
 <span class="sourceLineNo">2813</span>      scanners.remove(scannerName);<a name="line.2813"></a>
 <span class="sourceLineNo">2814</span>      try {<a name="line.2814"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
index ec9d7ba..2f3c0cd 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
@@ -2815,8 +2815,8 @@
 <span class="sourceLineNo">2807</span>    HRegionInfo hri = rsh.s.getRegionInfo();<a name="line.2807"></a>
 <span class="sourceLineNo">2808</span>    // Yes, should be the same instance<a name="line.2808"></a>
 <span class="sourceLineNo">2809</span>    if (regionServer.getOnlineRegion(hri.getRegionName()) != rsh.r) {<a name="line.2809"></a>
-<span class="sourceLineNo">2810</span>      String msg = "Region was re-opened after the scanner" + scannerName + " was created: "<a name="line.2810"></a>
-<span class="sourceLineNo">2811</span>          + hri.getRegionNameAsString();<a name="line.2811"></a>
+<span class="sourceLineNo">2810</span>      String msg = "Region has changed on the scanner " + scannerName + ": regionName="<a name="line.2810"></a>
+<span class="sourceLineNo">2811</span>          + hri.getRegionName() + ", scannerRegionName=" + rsh.r;<a name="line.2811"></a>
 <span class="sourceLineNo">2812</span>      LOG.warn(msg + ", closing...");<a name="line.2812"></a>
 <span class="sourceLineNo">2813</span>      scanners.remove(scannerName);<a name="line.2813"></a>
 <span class="sourceLineNo">2814</span>      try {<a name="line.2814"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html
index 7f8b453..9c4b68a 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/StoreFileInfo.html
@@ -459,8 +459,8 @@
 <span class="sourceLineNo">451</span>    // Tabledir is up two directories from where Reference was written.<a name="line.451"></a>
 <span class="sourceLineNo">452</span>    Path tableDir = p.getParent().getParent().getParent();<a name="line.452"></a>
 <span class="sourceLineNo">453</span>    String nameStrippedOfSuffix = m.group(1);<a name="line.453"></a>
-<span class="sourceLineNo">454</span>    if (LOG.isDebugEnabled()) {<a name="line.454"></a>
-<span class="sourceLineNo">455</span>      LOG.debug("reference '" + p + "' to region=" + otherRegion<a name="line.455"></a>
+<span class="sourceLineNo">454</span>    if (LOG.isTraceEnabled()) {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>      LOG.trace("reference '" + p + "' to region=" + otherRegion<a name="line.455"></a>
 <span class="sourceLineNo">456</span>        + " hfile=" + nameStrippedOfSuffix);<a name="line.456"></a>
 <span class="sourceLineNo">457</span>    }<a name="line.457"></a>
 <span class="sourceLineNo">458</span><a name="line.458"></a>


[43/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
index 43b852d..3439e19 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html
@@ -134,7 +134,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre><a href="../../../../../../org/apache/hadoop/hbase/classification/InterfaceAudience.Private.html" title="annotation in org.apache.hadoop.hbase.classification">@InterfaceAudience.Private</a>
-public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.84">SplitTableRegionProcedure</a>
+public class <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.81">SplitTableRegionProcedure</a>
 extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/AbstractStateMachineRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">AbstractStateMachineRegionProcedure</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&gt;</pre>
 <div class="block">The procedure to split a region in a table.
  Takes lock on the parent region.
@@ -509,7 +509,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.86">LOG</a></pre>
+<pre>private static final&nbsp;org.apache.commons.logging.Log <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.83">LOG</a></pre>
 </li>
 </ul>
 <a name="traceEnabled">
@@ -518,7 +518,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>traceEnabled</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.87">traceEnabled</a></pre>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.84">traceEnabled</a></pre>
 </li>
 </ul>
 <a name="daughter_1_HRI">
@@ -527,7 +527,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>daughter_1_HRI</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.88">daughter_1_HRI</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.85">daughter_1_HRI</a></pre>
 </li>
 </ul>
 <a name="daughter_2_HRI">
@@ -536,7 +536,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>daughter_2_HRI</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.89">daughter_2_HRI</a></pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.86">daughter_2_HRI</a></pre>
 </li>
 </ul>
 <a name="EXPECTED_SPLIT_STATES">
@@ -545,7 +545,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>EXPECTED_SPLIT_STATES</h4>
-<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.338">EXPECTED_SPLIT_STATES</a></pre>
+<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master">RegionState.State</a>[] <a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.335">EXPECTED_SPLIT_STATES</a></pre>
 </li>
 </ul>
 </li>
@@ -562,7 +562,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>SplitTableRegionProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.91">SplitTableRegionProcedure</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.88">SplitTableRegionProcedure</a>()</pre>
 </li>
 </ul>
 <a name="SplitTableRegionProcedure-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-org.apache.hadoop.hbase.HRegionInfo-byte:A-">
@@ -571,7 +571,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SplitTableRegionProcedure</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.95">SplitTableRegionProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.92">SplitTableRegionProcedure</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                                  <a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionToSplit,
                                  byte[]&nbsp;splitRow)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -595,7 +595,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>checkSplitRow</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.107">checkSplitRow</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionToSplit,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.104">checkSplitRow</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;regionToSplit,
                                   byte[]&nbsp;splitRow)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -610,7 +610,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getDaughterRegionIdTimestamp</h4>
-<pre>private static&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.130">getDaughterRegionIdTimestamp</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri)</pre>
+<pre>private static&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.127">getDaughterRegionIdTimestamp</a>(<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;hri)</pre>
 <div class="block">Calculate daughter regionid to use.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -626,7 +626,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>executeFromState</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.143">executeFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2">StateMachineProcedure.Flow</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.140">executeFromState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;state)
                                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#executeFromState-TEnvironment-TState-">StateMachineProcedure</a></code></span></div>
@@ -649,7 +649,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>rollbackState</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.208">rollbackState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.205">rollbackState</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                              org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;state)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                              <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
@@ -671,7 +671,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>isRollbackSupported</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.252">isRollbackSupported</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;state)</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.249">isRollbackSupported</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;state)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#isRollbackSupported-TState-">StateMachineProcedure</a></code></span></div>
 <div class="block">Used by the default implementation of abort() to know if the current state can be aborted
  and rollback can be triggered.</div>
@@ -687,7 +687,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getState</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.267">getState</a>(int&nbsp;stateId)</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.264">getState</a>(int&nbsp;stateId)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getState-int-">StateMachineProcedure</a></code></span></div>
 <div class="block">Convert an ordinal (or state id) to an Enum (or more descriptive) state object.</div>
 <dl>
@@ -706,7 +706,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getStateId</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.272">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;state)</pre>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.269">getStateId</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;state)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getStateId-TState-">StateMachineProcedure</a></code></span></div>
 <div class="block">Convert the Enum (or more descriptive) state object to an ordinal (or state id).</div>
 <dl>
@@ -725,7 +725,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getInitialState</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.277">getInitialState</a>()</pre>
+<pre>protected&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.274">getInitialState</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.html#getInitialState--">StateMachineProcedure</a></code></span></div>
 <div class="block">Return the initial state object that will be used for the first call to executeFromState().</div>
 <dl>
@@ -742,7 +742,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>serializeStateData</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.282">serializeStateData</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;stream)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.279">serializeStateData</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html?is-external=true" title="class or interface in java.io">OutputStream</a>&nbsp;stream)
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#serializeStateData-java.io.OutputStream-">Procedure</a></code></span></div>
 <div class="block">The user-level code of the procedure may have some state to
@@ -764,7 +764,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>deserializeStateData</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.295">deserializeStateData</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;stream)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.292">deserializeStateData</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html?is-external=true" title="class or interface in java.io">InputStream</a>&nbsp;stream)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#deserializeStateData-java.io.InputStream-">Procedure</a></code></span></div>
 <div class="block">Called on store load to allow the user to decode the previously serialized
@@ -785,7 +785,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>toStringClassDetails</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.308">toStringClassDetails</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;sb)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.305">toStringClassDetails</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html?is-external=true" title="class or interface in java.lang">StringBuilder</a>&nbsp;sb)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#toStringClassDetails-java.lang.StringBuilder-">Procedure</a></code></span></div>
 <div class="block">Extend the toString() information with the procedure details
  e.g. className and parameters</div>
@@ -803,7 +803,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getParentRegion</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.320">getParentRegion</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/HRegionInfo.html" title="class in org.apache.hadoop.hbase">HRegionInfo</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.317">getParentRegion</a>()</pre>
 </li>
 </ul>
 <a name="getTableOperationType--">
@@ -812,7 +812,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableOperationType</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.325">getTableOperationType</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure">TableProcedureInterface.TableOperationType</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.322">getTableOperationType</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.html#getTableOperationType--">TableProcedureInterface</a></code></span></div>
 <div class="block">Given an operation type we can take decisions about what to do with pending operations.
  e.g. if we get a delete and we have some table operation pending (e.g. add column)
@@ -833,7 +833,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedureMetrics</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureMetrics</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.330">getProcedureMetrics</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureMetrics</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.327">getProcedureMetrics</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html#getProcedureMetrics-TEnvironment-">Procedure</a></code></span></div>
 <div class="block">Override this method to provide procedure specific counters for submitted count, failed
  count and time histogram.</div>
@@ -853,7 +853,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getSplitRow</h4>
-<pre>private&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.334">getSplitRow</a>()</pre>
+<pre>private&nbsp;byte[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.331">getSplitRow</a>()</pre>
 </li>
 </ul>
 <a name="prepareSplitRegion-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-">
@@ -862,7 +862,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareSplitRegion</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.345">prepareSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.342">prepareSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Prepare to Split region.</div>
 <dl>
@@ -879,14 +879,13 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>preSplitRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.415">preSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.411">preSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Action before splitting region in a table.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>env</code> - MasterProcedureEnv</dd>
-<dd><code>state</code> - the procedure state</dd>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
@@ -899,7 +898,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>postRollBackSplitRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.428">postRollBackSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.424">postRollBackSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Action after rollback a split table region action.</div>
 <dl>
@@ -916,7 +915,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>openParentRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.439">openParentRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.435">openParentRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Rollback close parent region</div>
 <dl>
@@ -933,7 +932,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createDaughterRegions</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.458">createDaughterRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.454">createDaughterRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Create daughter regions</div>
 <dl>
@@ -950,7 +949,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>splitStoreFiles</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.487">splitStoreFiles</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.483">splitStoreFiles</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                                               <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs)
                                        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Create Split directory</div>
@@ -968,7 +967,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>assertReferenceFileCount</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.579">assertReferenceFileCount</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.595">assertReferenceFileCount</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                                       int&nbsp;expectedReferenceFileCount,
                                       org.apache.hadoop.fs.Path&nbsp;dir)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -984,7 +983,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>splitStoreFile</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.587">splitStoreFile</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs,
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.603">splitStoreFile</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionFileSystem</a>&nbsp;regionFs,
                                                                                  byte[]&nbsp;family,
                                                                                  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&nbsp;sf)
                                                                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1000,7 +999,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>preSplitRegionBeforePONR</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.638">preSplitRegionBeforePONR</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.654">preSplitRegionBeforePONR</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                                throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Post split region actions before the Point-of-No-Return step</div>
@@ -1019,7 +1018,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>updateMetaForDaughterRegions</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.665">updateMetaForDaughterRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.681">updateMetaForDaughterRegions</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Add daughter regions to META</div>
 <dl>
@@ -1036,7 +1035,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>preSplitRegionAfterPONR</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.674">preSplitRegionAfterPONR</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.690">preSplitRegionAfterPONR</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Pre split region actions after the Point-of-No-Return step</div>
@@ -1055,7 +1054,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>postSplitRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.686">postSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.702">postSplitRegion</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Post split region actions</div>
 <dl>
@@ -1072,7 +1071,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getParentRegionServerName</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.693">getParentRegionServerName</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.709">getParentRegionServerName</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)</pre>
 </li>
 </ul>
 <a name="createUnassignProcedures-org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv-int-">
@@ -1081,7 +1080,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createUnassignProcedures</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">UnassignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.698">createUnassignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/UnassignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">UnassignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.714">createUnassignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                                                      int&nbsp;regionReplication)</pre>
 </li>
 </ul>
@@ -1091,7 +1090,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>createAssignProcedures</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.708">createAssignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignProcedure</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.724">createAssignProcedures</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env,
                                                  int&nbsp;regionReplication)</pre>
 </li>
 </ul>
@@ -1101,7 +1100,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionReplication</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.724">getRegionReplication</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.740">getRegionReplication</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&nbsp;env)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1115,7 +1114,7 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/master/procedure/Abst
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isTraceEnabled</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.734">isTraceEnabled</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.html#line.750">isTraceEnabled</a>()</pre>
 <div class="block">The procedure could be restarted from a different machine. If the variable is null, we need to
  retrieve it.</div>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
index 936fad3..ca0e67f 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -312,10 +312,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
index 7c507cc..b787ef7 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -211,9 +211,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.MarkRegionOfflineOpResult.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">DisableTableProcedure.MarkRegionOfflineOpResult</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.MarkRegionOfflineOpResult.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">DisableTableProcedure.MarkRegionOfflineOpResult</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/package-tree.html b/devapidocs/org/apache/hadoop/hbase/package-tree.html
index fa7b30c..1e106fe 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -422,16 +422,16 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ProcedureState.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ProcedureState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.Modify.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.Modify</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ProcedureState.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ProcedureState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 67c5d69..90ca7af 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -200,10 +200,10 @@
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockInfo.LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockInfo.LockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockInfo.ResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockInfo.ResourceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockInfo.LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockInfo.LockType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index 36b366e..9ba1b00 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -201,13 +201,13 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSnapshotStore.ViolationState.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaSnapshotStore.ViolationState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSnapshotStore.ViolationState.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaSnapshotStore.ViolationState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
index 3a9f03d..f3c5b8f 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2955">HRegion.BatchOperation</a>&lt;T&gt;
+<pre>private abstract static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2964">HRegion.BatchOperation</a>&lt;T&gt;
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Struct-like class that tracks the progress of a batch operation,
  accumulating status codes and tracking the index at which processing
@@ -246,7 +246,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>operations</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="type parameter in HRegion.BatchOperation">T</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2956">operations</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="type parameter in HRegion.BatchOperation">T</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2965">operations</a></pre>
 </li>
 </ul>
 <a name="nextIndexToProcess">
@@ -255,7 +255,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>nextIndexToProcess</h4>
-<pre>int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2957">nextIndexToProcess</a></pre>
+<pre>int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2966">nextIndexToProcess</a></pre>
 </li>
 </ul>
 <a name="retCodeDetails">
@@ -264,7 +264,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>retCodeDetails</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2958">retCodeDetails</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2967">retCodeDetails</a></pre>
 </li>
 </ul>
 <a name="walEditsFromCoprocessors">
@@ -273,7 +273,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>walEditsFromCoprocessors</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2959">walEditsFromCoprocessors</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALEdit</a>[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2968">walEditsFromCoprocessors</a></pre>
 </li>
 </ul>
 </li>
@@ -292,7 +292,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>BatchOperation</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2961">BatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="type parameter in HRegion.BatchOperation">T</a>[]&nbsp;operations)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2970">BatchOperation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="type parameter in HRegion.BatchOperation">T</a>[]&nbsp;operations)</pre>
 </li>
 </ul>
 </li>
@@ -309,7 +309,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutation</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2968">getMutation</a>(int&nbsp;index)</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2977">getMutation</a>(int&nbsp;index)</pre>
 </li>
 </ul>
 <a name="getNonceGroup-int-">
@@ -318,7 +318,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceGroup</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2969">getNonceGroup</a>(int&nbsp;index)</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2978">getNonceGroup</a>(int&nbsp;index)</pre>
 </li>
 </ul>
 <a name="getNonce-int-">
@@ -327,7 +327,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonce</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2970">getNonce</a>(int&nbsp;index)</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2979">getNonce</a>(int&nbsp;index)</pre>
 </li>
 </ul>
 <a name="getMutationsForCoprocs--">
@@ -336,7 +336,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutationsForCoprocs</h4>
-<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2972">getMutationsForCoprocs</a>()</pre>
+<pre>public abstract&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2981">getMutationsForCoprocs</a>()</pre>
 <div class="block">This method is potentially expensive and should only be used for non-replay CP path.</div>
 </li>
 </ul>
@@ -346,7 +346,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>isInReplay</h4>
-<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2973">isInReplay</a>()</pre>
+<pre>public abstract&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2982">isInReplay</a>()</pre>
 </li>
 </ul>
 <a name="getReplaySequenceId--">
@@ -355,7 +355,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplaySequenceId</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2974">getReplaySequenceId</a>()</pre>
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2983">getReplaySequenceId</a>()</pre>
 </li>
 </ul>
 <a name="isDone--">
@@ -364,7 +364,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isDone</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2976">isDone</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#line.2985">isDone</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html
index 39360b3..a8563c5 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2981">HRegion.MutationBatch</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.html#line.2990">HRegion.MutationBatch</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</pre>
 </li>
 </ul>
@@ -248,7 +248,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>nonceGroup</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.2982">nonceGroup</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.2991">nonceGroup</a></pre>
 </li>
 </ul>
 <a name="nonce">
@@ -257,7 +257,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>nonce</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.2983">nonce</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.2992">nonce</a></pre>
 </li>
 </ul>
 </li>
@@ -274,7 +274,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MutationBatch</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.2984">MutationBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;operations,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.2993">MutationBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;operations,
                      long&nbsp;nonceGroup,
                      long&nbsp;nonce)</pre>
 </li>
@@ -293,7 +293,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutation</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.2991">getMutation</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.3000">getMutation</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutation-int-">getMutation</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -306,7 +306,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonceGroup</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.2996">getNonceGroup</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.3005">getNonceGroup</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonceGroup-int-">getNonceGroup</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -319,7 +319,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getNonce</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.3001">getNonce</a>(int&nbsp;index)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.3010">getNonce</a>(int&nbsp;index)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getNonce-int-">getNonce</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -332,7 +332,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>getMutationsForCoprocs</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.3006">getMutationsForCoprocs</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.3015">getMutationsForCoprocs</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getMutationsForCoprocs--">HRegion.BatchOperation</a></code></span></div>
 <div class="block">This method is potentially expensive and should only be used for non-replay CP path.</div>
 <dl>
@@ -347,7 +347,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockList">
 <li class="blockList">
 <h4>isInReplay</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.3011">isInReplay</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.3020">isInReplay</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#isInReplay--">isInReplay</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>
@@ -360,7 +360,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.Bat
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getReplaySequenceId</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.3016">getReplaySequenceId</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegion.MutationBatch.html#line.3025">getReplaySequenceId</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html#getReplaySequenceId--">getReplaySequenceId</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.BatchOperation.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion.BatchOperation</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&gt;</code></dd>


[19/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
index 38500dd..e1e4110 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
@@ -35,3706 +35,3705 @@
 <span class="sourceLineNo">027</span>import java.net.BindException;<a name="line.27"></a>
 <span class="sourceLineNo">028</span>import java.net.InetAddress;<a name="line.28"></a>
 <span class="sourceLineNo">029</span>import java.net.InetSocketAddress;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.security.PrivilegedExceptionAction;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.ArrayList;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.Collection;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.Collections;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.util.Comparator;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import java.util.HashMap;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import java.util.HashSet;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import java.util.Iterator;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import java.util.List;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import java.util.Map;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import java.util.Objects;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import java.util.Map.Entry;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import java.util.Set;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import java.util.SortedMap;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import java.util.TreeMap;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import java.util.TreeSet;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import java.util.concurrent.ConcurrentMap;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.util.concurrent.ConcurrentSkipListMap;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.util.concurrent.CountDownLatch;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.util.concurrent.TimeUnit;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.util.concurrent.locks.ReentrantReadWriteLock;<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>import javax.management.MalformedObjectNameException;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import javax.management.ObjectName;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import javax.servlet.http.HttpServlet;<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.commons.lang.SystemUtils;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.commons.lang.math.RandomUtils;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.commons.logging.Log;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.commons.logging.LogFactory;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.conf.Configuration;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.fs.FileSystem;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.fs.Path;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.Abortable;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.ChoreService;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.ClockOutOfSyncException;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.CoordinatedStateManager;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.CoordinatedStateManagerFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.HConstants;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.HealthCheckChore;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.PleaseHoldException;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.ScheduledChore;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.ServerName;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.Stoppable;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.TableDescriptors;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.TableName;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.YouAreDeadException;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.ZNodeClearer;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.client.ConnectionUtils;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.client.Put;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.client.RpcRetryingCallerFactory;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.client.locking.EntityLock;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.client.locking.LockServiceClient;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.conf.ConfigurationManager;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.coordination.SplitLogWorkerCoordination;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.exceptions.UnknownProtocolException;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.executor.ExecutorService;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.fs.HFileSystem;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.io.hfile.HFile;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.io.util.MemorySizeUtil;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.ipc.RpcCallContext;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.ipc.RpcServerInterface;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.ipc.ServerRpcController;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.HMaster;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.mob.MobCacheConfig;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.procedure.RegionServerProcedureManagerHost;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.quotas.FileSystemUtilizationChore;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.quotas.QuotaUtil;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.quotas.RegionServerRpcQuotaManager;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.quotas.RegionServerSpaceQuotaManager;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionConfiguration;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionProgress;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.regionserver.handler.CloseMetaHandler;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.regionserver.handler.CloseRegionHandler;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.regionserver.handler.RegionReplicaFlushHandler;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.regionserver.throttle.FlushThroughputControllerFactory;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.regionserver.throttle.ThroughputController;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.regionserver.wal.MetricsWAL;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.regionserver.wal.WALActionsListener;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.replication.regionserver.Replication;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.replication.regionserver.ReplicationLoad;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.security.User;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.*;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceCall;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionStoreSequenceIds;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.Coprocessor;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.Coprocessor.Builder;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionServerInfo;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier.RegionSpecifierType;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUse;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportRequest;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRSFatalErrorRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.trace.SpanReceiverHost;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.util.Addressing;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.util.CompressionTest;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.FSTableDescriptors;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.HasThread;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.util.JSONBean;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.ServerRegionReplicaUtil;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.Sleeper;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.wal.WAL;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.wal.WALFactory;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.zookeeper.ClusterStatusTracker;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.zookeeper.RecoveringRegionWatcher;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.zookeeper.ZKClusterId;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.zookeeper.ZKSplitLog;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hadoop.metrics2.util.MBeans;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hadoop.util.ReflectionUtils;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hadoop.util.StringUtils;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>import org.apache.zookeeper.KeeperException;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.zookeeper.KeeperException.NoNodeException;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.zookeeper.data.Stat;<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>import com.google.common.annotations.VisibleForTesting;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import com.google.common.base.Preconditions;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import com.google.common.collect.Maps;<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>import sun.misc.Signal;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>import sun.misc.SignalHandler;<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>/**<a name="line.215"></a>
-<span class="sourceLineNo">216</span> * HRegionServer makes a set of HRegions available to clients. It checks in with<a name="line.216"></a>
-<span class="sourceLineNo">217</span> * the HMaster. There are many HRegionServers in a single HBase deployment.<a name="line.217"></a>
-<span class="sourceLineNo">218</span> */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.219"></a>
-<span class="sourceLineNo">220</span>@SuppressWarnings({ "deprecation"})<a name="line.220"></a>
-<span class="sourceLineNo">221</span>public class HRegionServer extends HasThread implements<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    RegionServerServices, LastSequenceId, ConfigurationObserver {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  // Time to pause if master says 'please hold'. Make configurable if needed.<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  private static final int INIT_PAUSE_TIME_MS = 1000;<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  public static final String REGION_LOCK_AWAIT_TIME_SEC =<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      "hbase.regionserver.region.lock.await.time.sec";<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public static final int DEFAULT_REGION_LOCK_AWAIT_TIME_SEC = 300;  // 5 min<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  private static final Log LOG = LogFactory.getLog(HRegionServer.class);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * For testing only!  Set to true to skip notifying region assignment to master .<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="MS_SHOULD_BE_FINAL")<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  public static boolean TEST_SKIP_REPORTING_TRANSITION = false;<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>  /*<a name="line.237"></a>
-<span class="sourceLineNo">238</span>   * Strings to be used in forming the exception message for<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * RegionsAlreadyInTransitionException.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   */<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  protected static final String OPEN = "OPEN";<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  protected static final String CLOSE = "CLOSE";<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  //RegionName vs current action in progress<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  //true - if open region action in progress<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  //false - if close region action in progress<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  protected final ConcurrentMap&lt;byte[], Boolean&gt; regionsInTransitionInRS =<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    new ConcurrentSkipListMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  // Cache flushing<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  protected MemStoreFlusher cacheFlusher;<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>  protected HeapMemoryManager hMemManager;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected CountDownLatch initLatch = null;<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>  /**<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * Cluster connection to be shared by services.<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * Initialized at server startup and closed when server shuts down.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * Clients must never close it explicitly.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   */<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  protected ClusterConnection clusterConnection;<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /*<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   * Long-living meta table locator, which is created when the server is started and stopped<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   * when server shuts down. References to this locator shall be used to perform according<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * operations in EventHandlers. Primary reason for this decision is to make it mockable<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * for tests.<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   */<a name="line.268"></a>
-<span class="sourceLineNo">269</span>  protected MetaTableLocator metaTableLocator;<a name="line.269"></a>
-<span class="sourceLineNo">270</span><a name="line.270"></a>
-<span class="sourceLineNo">271</span>  // Watch if a region is out of recovering state from ZooKeeper<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  @SuppressWarnings("unused")<a name="line.272"></a>
-<span class="sourceLineNo">273</span>  private RecoveringRegionWatcher recoveringRegionWatcher;<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>  /**<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * Go here to get table descriptors.<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   */<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  protected TableDescriptors tableDescriptors;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  // Replication services. If no replication, this handler will be null.<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  protected ReplicationSourceService replicationSourceHandler;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  protected ReplicationSinkService replicationSinkHandler;<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  // Compactions<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public CompactSplit compactSplitThread;<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>  /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * Map of regions currently being served by this region server. Key is the<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * encoded region name.  All access should be synchronized.<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   */<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected final Map&lt;String, Region&gt; onlineRegions = new ConcurrentHashMap&lt;&gt;();<a name="line.291"></a>
-<span class="sourceLineNo">292</span><a name="line.292"></a>
-<span class="sourceLineNo">293</span>  /**<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   * Map of encoded region names to the DataNode locations they should be hosted on<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   * We store the value as InetSocketAddress since this is used only in HDFS<a name="line.295"></a>
-<span class="sourceLineNo">296</span>   * API (create() that takes favored nodes as hints for placing file blocks).<a name="line.296"></a>
-<span class="sourceLineNo">297</span>   * We could have used ServerName here as the value class, but we'd need to<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   * convert it to InetSocketAddress at some point before the HDFS API call, and<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   * it seems a bit weird to store ServerName since ServerName refers to RegionServers<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   * and here we really mean DataNode locations.<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   */<a name="line.301"></a>
-<span class="sourceLineNo">302</span>  protected final Map&lt;String, InetSocketAddress[]&gt; regionFavoredNodesMap =<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      new ConcurrentHashMap&lt;&gt;();<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>  /**<a name="line.305"></a>
-<span class="sourceLineNo">306</span>   * Set of regions currently being in recovering state which means it can accept writes(edits from<a name="line.306"></a>
-<span class="sourceLineNo">307</span>   * previous failed region server) but not reads. A recovering region is also an online region.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>   */<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  protected final Map&lt;String, Region&gt; recoveringRegions = Collections<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      .synchronizedMap(new HashMap&lt;String, Region&gt;());<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  // Leases<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  protected Leases leases;<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>  // Instance of the hbase executor service.<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  protected ExecutorService service;<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>  // If false, the file system has become unavailable<a name="line.318"></a>
-<span class="sourceLineNo">319</span>  protected volatile boolean fsOk;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  protected HFileSystem fs;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  protected HFileSystem walFs;<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  // Set when a report to the master comes back with a message asking us to<a name="line.323"></a>
-<span class="sourceLineNo">324</span>  // shutdown. Also set by call to stop when debugging or running unit tests<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  // of HRegionServer in isolation.<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  private volatile boolean stopped = false;<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  // Go down hard. Used if file system becomes unavailable and also in<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  // debugging and unit tests.<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  private volatile boolean abortRequested;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  ConcurrentMap&lt;String, Integer&gt; rowlocks = new ConcurrentHashMap&lt;&gt;();<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>  // A state before we go into stopped state.  At this stage we're closing user<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  // space regions.<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  private boolean stopping = false;<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>  volatile boolean killed = false;<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  protected final Configuration conf;<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  private Path rootDir;<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  private Path walRootDir;<a name="line.343"></a>
-<span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>  protected final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  final int numRetries;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  protected final int threadWakeFrequency;<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  protected final int msgInterval;<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  protected final int numRegionsToReport;<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>  // Stub to do region server status calls against the master.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>  private volatile RegionServerStatusService.BlockingInterface rssStub;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  private volatile LockService.BlockingInterface lockStub;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  // RPC client. Used to make the stub above that does region server status checking.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  RpcClient rpcClient;<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  private RpcRetryingCallerFactory rpcRetryingCallerFactory;<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>  private UncaughtExceptionHandler uncaughtExceptionHandler;<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  // Info server. Default access so can be used by unit tests. REGIONSERVER<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  // is name of the webapp and the attribute name used stuffing this instance<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  // into web context.<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  protected InfoServer infoServer;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  private JvmPauseMonitor pauseMonitor;<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  /** region server process name */<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  public static final String REGIONSERVER = "regionserver";<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>  MetricsRegionServer metricsRegionServer;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  MetricsTable metricsTable;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  private SpanReceiverHost spanReceiverHost;<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  /**<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * ChoreService used to schedule tasks that we want to run periodically<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   */<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  private final ChoreService choreService;<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  /*<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * Check for compactions requests.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  ScheduledChore compactionChecker;<a name="line.385"></a>
-<span class="sourceLineNo">386</span><a name="line.386"></a>
-<span class="sourceLineNo">387</span>  /*<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   * Check for flushes<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   */<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  ScheduledChore periodicFlusher;<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  protected volatile WALFactory walFactory;<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  // WAL roller. log is protected rather than private to avoid<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  // eclipse warning when accessed by inner classes<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  protected final LogRoller walRoller;<a name="line.396"></a>
-<span class="sourceLineNo">397</span><a name="line.397"></a>
-<span class="sourceLineNo">398</span>  // flag set after we're done setting up server threads<a name="line.398"></a>
-<span class="sourceLineNo">399</span>  final AtomicBoolean online = new AtomicBoolean(false);<a name="line.399"></a>
-<span class="sourceLineNo">400</span><a name="line.400"></a>
-<span class="sourceLineNo">401</span>  // zookeeper connection and watcher<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  protected ZooKeeperWatcher zooKeeper;<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  // master address tracker<a name="line.404"></a>
-<span class="sourceLineNo">405</span>  private MasterAddressTracker masterAddressTracker;<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>  // Cluster Status Tracker<a name="line.407"></a>
-<span class="sourceLineNo">408</span>  protected ClusterStatusTracker clusterStatusTracker;<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>  // Log Splitting Worker<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  private SplitLogWorker splitLogWorker;<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  // A sleeper that sleeps for msgInterval.<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  protected final Sleeper sleeper;<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  private final int operationTimeout;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private final int shortOperationTimeout;<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  private final RegionServerAccounting regionServerAccounting;<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>  // Cache configuration and block cache reference<a name="line.421"></a>
-<span class="sourceLineNo">422</span>  protected CacheConfig cacheConfig;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  // Cache configuration for mob<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  final MobCacheConfig mobCacheConfig;<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>  /** The health check chore. */<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  private HealthCheckChore healthCheckChore;<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  /** The nonce manager chore. */<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  private ScheduledChore nonceManagerChore;<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>  private Map&lt;String, com.google.protobuf.Service&gt; coprocessorServiceHandlers = Maps.newHashMap();<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>  /**<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   * The server name the Master sees us as.  Its made from the hostname the<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * master passes us, port, and server startcode. Gets set after registration<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * against  Master.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  protected ServerName serverName;<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>  /*<a name="line.441"></a>
-<span class="sourceLineNo">442</span>   * hostname specified by hostname config<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   */<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  protected String useThisHostnameInstead;<a name="line.444"></a>
-<span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>  // key to the config parameter of server hostname<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  // the specification of server hostname is optional. The hostname should be resolvable from<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  // both master and region server<a name="line.448"></a>
-<span class="sourceLineNo">449</span>  @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  final static String RS_HOSTNAME_KEY = "hbase.regionserver.hostname";<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  protected final static String MASTER_HOSTNAME_KEY = "hbase.master.hostname";<a name="line.452"></a>
-<span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>  /**<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * This servers startcode.<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   */<a name="line.456"></a>
-<span class="sourceLineNo">457</span>  protected final long startcode;<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>  /**<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   * Unique identifier for the cluster we are a part of.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   */<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  private String clusterId;<a name="line.462"></a>
-<span class="sourceLineNo">463</span><a name="line.463"></a>
-<span class="sourceLineNo">464</span>  /**<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * MX Bean for RegionServerInfo<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   */<a name="line.466"></a>
-<span class="sourceLineNo">467</span>  private ObjectName mxBean = null;<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>  /**<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   * Chore to clean periodically the moved region list<a name="line.470"></a>
-<span class="sourceLineNo">471</span>   */<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  private MovedRegionsCleaner movedRegionsCleaner;<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>  // chore for refreshing store files for secondary regions<a name="line.474"></a>
-<span class="sourceLineNo">475</span>  private StorefileRefresherChore storefileRefresher;<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>  private RegionServerCoprocessorHost rsHost;<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>  private RegionServerProcedureManagerHost rspmHost;<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>  private RegionServerRpcQuotaManager rsQuotaManager;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  private RegionServerSpaceQuotaManager rsSpaceQuotaManager;<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  /**<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * Nonce manager. Nonces are used to make operations like increment and append idempotent<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * in the case where client doesn't receive the response from a successful operation and<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   * retries. We track the successful ops for some time via a nonce sent by client and handle<a name="line.487"></a>
-<span class="sourceLineNo">488</span>   * duplicate operations (currently, by failing them; in future we might use MVCC to return<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * result). Nonces are also recovered from WAL during, recovery; however, the caveats (from<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   * HBASE-3787) are:<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   * - WAL recovery is optimized, and under high load we won't read nearly nonce-timeout worth<a name="line.491"></a>
-<span class="sourceLineNo">492</span>   *   of past records. If we don't read the records, we don't read and recover the nonces.<a name="line.492"></a>
-<span class="sourceLineNo">493</span>   *   Some WALs within nonce-timeout at recovery may not even be present due to rolling/cleanup.<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   * - There's no WAL recovery during normal region move, so nonces will not be transfered.<a name="line.494"></a>
-<span class="sourceLineNo">495</span>   * We can have separate additional "Nonce WAL". It will just contain bunch of numbers and<a name="line.495"></a>
-<span class="sourceLineNo">496</span>   * won't be flushed on main path - because WAL itself also contains nonces, if we only flush<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * it before memstore flush, for a given nonce we will either see it in the WAL (if it was<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   * never flushed to disk, it will be part of recovery), or we'll see it as part of the nonce<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * log (or both occasionally, which doesn't matter). Nonce log file can be deleted after the<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * latest nonce in it expired. It can also be recovered during move.<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   */<a name="line.501"></a>
-<span class="sourceLineNo">502</span>  final ServerNonceManager nonceManager;<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span>  private UserProvider userProvider;<a name="line.504"></a>
-<span class="sourceLineNo">505</span><a name="line.505"></a>
-<span class="sourceLineNo">506</span>  protected final RSRpcServices rpcServices;<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>  protected BaseCoordinatedStateManager csm;<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>  /**<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   * Configuration manager is used to register/deregister and notify the configuration observers<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * when the regionserver is notified that there was a change in the on disk configs.<a name="line.512"></a>
-<span class="sourceLineNo">513</span>   */<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  protected final ConfigurationManager configurationManager;<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>  @VisibleForTesting<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  CompactedHFilesDischarger compactedFileDischarger;<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>  private volatile ThroughputController flushThroughputController;<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>  protected SecureBulkLoadManager secureBulkLoadManager;<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>  protected FileSystemUtilizationChore fsUtilizationChore;<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>  /**<a name="line.525"></a>
-<span class="sourceLineNo">526</span>   * Starts a HRegionServer at the default location.<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   */<a name="line.527"></a>
-<span class="sourceLineNo">528</span>  public HRegionServer(Configuration conf) throws IOException, InterruptedException {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    this(conf, CoordinatedStateManagerFactory.getCoordinatedStateManager(conf));<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>  /**<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * Starts a HRegionServer at the default location<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @param csm implementation of CoordinatedStateManager to be used<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   */<a name="line.535"></a>
-<span class="sourceLineNo">536</span>  public HRegionServer(Configuration conf, CoordinatedStateManager csm) throws IOException {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    super("RegionServer");  // thread name<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    this.fsOk = true;<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    this.conf = conf;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    MemorySizeUtil.checkForClusterFreeHeapMemoryLimit(this.conf);<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    HFile.checkHFileVersion(this.conf);<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    checkCodecs(this.conf);<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    this.userProvider = UserProvider.instantiate(conf);<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    FSUtils.setupShortCircuitRead(this.conf);<a name="line.544"></a>
-<span class="sourceLineNo">545</span><a name="line.545"></a>
-<span class="sourceLineNo">546</span>    Replication.decorateRegionServerConfiguration(this.conf);<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    // Disable usage of meta replicas in the regionserver<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    this.conf.setBoolean(HConstants.USE_META_REPLICAS, false);<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    // Config'ed params<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    this.numRetries = this.conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.551"></a>
-<span class="sourceLineNo">552</span>        HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    this.threadWakeFrequency = conf.getInt(HConstants.THREAD_WAKE_FREQUENCY, 10 * 1000);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    this.msgInterval = conf.getInt("hbase.regionserver.msginterval", 3 * 1000);<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>    this.sleeper = new Sleeper(this.msgInterval, this);<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>    boolean isNoncesEnabled = conf.getBoolean(HConstants.HBASE_RS_NONCES_ENABLED, true);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    this.nonceManager = isNoncesEnabled ? new ServerNonceManager(this.conf) : null;<a name="line.559"></a>
-<span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>    this.numRegionsToReport = conf.getInt(<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      "hbase.regionserver.numregionstoreport", 10);<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>    this.operationTimeout = conf.getInt(<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);<a name="line.566"></a>
-<span class="sourceLineNo">567</span><a name="line.567"></a>
-<span class="sourceLineNo">568</span>    this.shortOperationTimeout = conf.getInt(<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      HConstants.HBASE_RPC_SHORTOPERATION_TIMEOUT_KEY,<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      HConstants.DEFAULT_HBASE_RPC_SHORTOPERATION_TIMEOUT);<a name="line.570"></a>
-<span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span>    this.abortRequested = false;<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    this.stopped = false;<a name="line.573"></a>
-<span class="sourceLineNo">574</span><a name="line.574"></a>
-<span class="sourceLineNo">575</span>    rpcServices = createRpcServices();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    this.startcode = System.currentTimeMillis();<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    if (this instanceof HMaster) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      useThisHostnameInstead = conf.get(MASTER_HOSTNAME_KEY);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    } else {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      useThisHostnameInstead = conf.get(RS_HOSTNAME_KEY);<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    }<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    String hostName = shouldUseThisHostnameInstead() ? useThisHostnameInstead :<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      rpcServices.isa.getHostName();<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    serverName = ServerName.valueOf(hostName, rpcServices.isa.getPort(), startcode);<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>    rpcControllerFactory = RpcControllerFactory.instantiate(this.conf);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    rpcRetryingCallerFactory = RpcRetryingCallerFactory.instantiate(this.conf);<a name="line.587"></a>
-<span class="sourceLineNo">588</span><a name="line.588"></a>
-<span class="sourceLineNo">589</span>    // login the zookeeper client principal (if using security)<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    ZKUtil.loginClient(this.conf, HConstants.ZK_CLIENT_KEYTAB_FILE,<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      HConstants.ZK_CLIENT_KERBEROS_PRINCIPAL, hostName);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    // login the server principal (if using secure Hadoop)<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    login(userProvider, hostName);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    // init superusers and add the server principal (if using security)<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    // or process owner as default super user.<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    Superusers.initialize(conf);<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>    regionServerAccounting = new RegionServerAccounting(conf);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>    cacheConfig = new CacheConfig(conf);<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    mobCacheConfig = new MobCacheConfig(conf);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      @Override<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      public void uncaughtException(Thread t, Throwable e) {<a name="line.603"></a>
-<span class="sourceLineNo">604</span>        abort("Uncaught exception in service thread " + t.getName(), e);<a name="line.604"></a>
-<span class="sourceLineNo">605</span>      }<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    };<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>    initializeFileSystem();<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    service = new ExecutorService(getServerName().toShortString());<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>    // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      // Open connection to zookeeper and set primary watcher<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      zooKeeper = new ZooKeeperWatcher(conf, getProcessName() + ":" +<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span>      this.csm = (BaseCoordinatedStateManager) csm;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      this.csm.initialize(this);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      this.csm.start();<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>      masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      masterAddressTracker.start();<a name="line.624"></a>
-<span class="sourceLineNo">625</span><a name="line.625"></a>
-<span class="sourceLineNo">626</span>      clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      clusterStatusTracker.start();<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    this.configurationManager = new ConfigurationManager();<a name="line.629"></a>
-<span class="sourceLineNo">630</span><a name="line.630"></a>
-<span class="sourceLineNo">631</span>    rpcServices.start();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    putUpWebUI();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    this.walRoller = new LogRoller(this, this);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    this.choreService = new ChoreService(getServerName().toString(), true);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    this.flushThroughputController = FlushThroughputControllerFactory.create(this, conf);<a name="line.635"></a>
-<span class="sourceLineNo">636</span><a name="line.636"></a>
-<span class="sourceLineNo">637</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>        @Override<a name="line.639"></a>
-<span class="sourceLineNo">640</span>        public void handle(Signal signal) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>          getConfiguration().reloadConfiguration();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>          configurationManager.notifyAllObservers(getConfiguration());<a name="line.642"></a>
-<span class="sourceLineNo">643</span>        }<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      });<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    // Create the CompactedFileDischarger chore service. This chore helps to<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    // remove the compacted files<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    // that will no longer be used in reads.<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    // Default is 2 mins. The default value for TTLCleaner is 5 mins so we set this to<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    // 2 mins so that compacted files can be archived before the TTLCleaner runs<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    int cleanerInterval =<a name="line.651"></a>
-<span class="sourceLineNo">652</span>        conf.getInt("hbase.hfile.compaction.discharger.interval", 2 * 60 * 1000);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    this.compactedFileDischarger =<a name="line.653"></a>
-<span class="sourceLineNo">654</span>        new CompactedHFilesDischarger(cleanerInterval, this, this);<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    choreService.scheduleChore(compactedFileDischarger);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span>  private void initializeFileSystem() throws IOException {<a name="line.658"></a>
-<span class="sourceLineNo">659</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    // (unless all is set to defaults).<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.670"></a>
-<span class="sourceLineNo">671</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.671"></a>
-<span class="sourceLineNo">672</span>  }<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>    return new FSTableDescriptors(this.conf,<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false);<a name="line.676"></a>
-<span class="sourceLineNo">677</span>  }<a name="line.677"></a>
-<span class="sourceLineNo">678</span><a name="line.678"></a>
-<span class="sourceLineNo">679</span>  protected void setInitLatch(CountDownLatch latch) {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    this.initLatch = latch;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>  /*<a name="line.683"></a>
-<span class="sourceLineNo">684</span>   * Returns true if configured hostname should be used<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   */<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  protected boolean shouldUseThisHostnameInstead() {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    return useThisHostnameInstead != null &amp;&amp; !useThisHostnameInstead.isEmpty();<a name="line.687"></a>
-<span class="sourceLineNo">688</span>  }<a name="line.688"></a>
-<span class="sourceLineNo">689</span><a name="line.689"></a>
-<span class="sourceLineNo">690</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    user.login("hbase.regionserver.keytab.file",<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      "hbase.regionserver.kerberos.principal", host);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>  }<a name="line.693"></a>
-<span class="sourceLineNo">694</span><a name="line.694"></a>
-<span class="sourceLineNo">695</span>  protected void waitForMasterActive(){<a name="line.695"></a>
-<span class="sourceLineNo">696</span>  }<a name="line.696"></a>
-<span class="sourceLineNo">697</span><a name="line.697"></a>
-<span class="sourceLineNo">698</span>  protected String getProcessName() {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    return REGIONSERVER;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
-<span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>  protected boolean canCreateBaseZNode() {<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    return false;<a name="line.703"></a>
-<span class="sourceLineNo">704</span>  }<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>  protected boolean canUpdateTableDescriptor() {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>    return false;<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  }<a name="line.708"></a>
-<span class="sourceLineNo">709</span><a name="line.709"></a>
-<span class="sourceLineNo">710</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return new RSRpcServices(this);<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  }<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>  protected void configureInfoServer() {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    return RSDumpServlet.class;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>  }<a name="line.721"></a>
-<span class="sourceLineNo">722</span><a name="line.722"></a>
-<span class="sourceLineNo">723</span>  @Override<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    /*<a name="line.725"></a>
-<span class="sourceLineNo">726</span>     * No stacking of instances is allowed for a single service name<a name="line.726"></a>
-<span class="sourceLineNo">727</span>     */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.728"></a>
-<span class="sourceLineNo">729</span>        instance.getDescriptorForType();<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      LOG.error("Coprocessor service " + serviceName<a name="line.732"></a>
-<span class="sourceLineNo">733</span>          + " already registered, rejecting request from " + instance);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      return false;<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    }<a name="line.735"></a>
-<span class="sourceLineNo">736</span><a name="line.736"></a>
-<span class="sourceLineNo">737</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    if (LOG.isDebugEnabled()) {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      LOG.debug("Registered regionserver coprocessor service: service=" + serviceName);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    }<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    return true;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span>  /**<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * the local server. Safe to use going to local or remote server.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * Create this instance in a method can be intercepted and mocked in tests.<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @throws IOException<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   */<a name="line.749"></a>
-<span class="sourceLineNo">750</span>  @VisibleForTesting<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    // and remote invocations.<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      serverName, rpcServices, rpcServices);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   * @param c<a name="line.761"></a>
-<span class="sourceLineNo">762</span>   * @throws IOException<a name="line.762"></a>
-<span class="sourceLineNo">763</span>   */<a name="line.763"></a>
-<span class="sourceLineNo">764</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.764"></a>
-<span class="sourceLineNo">765</span>    // check to see if the codec list is available:<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    if (codecs == null) return;<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    for (String codec : codecs) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>        throw new IOException("Compression codec " + codec +<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          " not supported, aborting RS construction");<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    }<a name="line.773"></a>
-<span class="sourceLineNo">774</span>  }<a name="line.774"></a>
-<span class="sourceLineNo">775</span><a name="line.775"></a>
-<span class="sourceLineNo">776</span>  public String getClusterId() {<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    return this.clusterId;<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  }<a name="line.778"></a>
-<span class="sourceLineNo">779</span><a name="line.779"></a>
-<span class="sourceLineNo">780</span>  /**<a name="line.780"></a>
-<span class="sourceLineNo">781</span>   * Setup our cluster connection if not already initialized.<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   * @throws IOException<a name="line.782"></a>
-<span class="sourceLineNo">783</span>   */<a name="line.783"></a>
-<span class="sourceLineNo">784</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    if (clusterConnection == null) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span>      clusterConnection = createClusterConnection();<a name="line.786"></a>
-<span class="sourceLineNo">787</span>      metaTableLocator = new MetaTableLocator();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    }<a name="line.788"></a>
-<span class="sourceLineNo">789</span>  }<a name="line.789"></a>
-<span class="sourceLineNo">790</span><a name="line.790"></a>
-<span class="sourceLineNo">791</span>  /**<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   * All initialization needed before we go register with Master.<a name="line.792"></a>
-<span class="sourceLineNo">793</span>   *<a name="line.793"></a>
-<span class="sourceLineNo">794</span>   * @throws IOException<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * @throws InterruptedException<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   */<a name="line.796"></a>
-<span class="sourceLineNo">797</span>  private void preRegistrationInitialization(){<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    try {<a name="line.798"></a>
-<span class="sourceLineNo">799</span>      setupClusterConnection();<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>      this.secureBulkLoadManager = new SecureBulkLoadManager(this.conf, clusterConnection);<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      this.secureBulkLoadManager.start();<a name="line.802"></a>
-<span class="sourceLineNo">803</span><a name="line.803"></a>
-<span class="sourceLineNo">804</span>      // Health checker thread.<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      if (isHealthCheckerConfigured()) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>        int sleepTime = this.conf.getInt(HConstants.HEALTH_CHORE_WAKE_FREQ,<a name="line.806"></a>
-<span class="sourceLineNo">807</span>          HConstants.DEFAULT_THREAD_WAKE_FREQUENCY);<a name="line.807"></a>
-<span class="sourceLineNo">808</span>        healthCheckChore = new HealthCheckChore(sleepTime, this, getConfiguration());<a name="line.808"></a>
-<span class="sourceLineNo">809</span>      }<a name="line.809"></a>
-<span class="sourceLineNo">810</span><a name="line.810"></a>
-<span class="sourceLineNo">811</span>      initializeZooKeeper();<a name="line.811"></a>
-<span class="sourceLineNo">812</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.812"></a>
-<span class="sourceLineNo">813</span>        initializeThreads();<a name="line.813"></a>
-<span class="sourceLineNo">814</span>      }<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    } catch (Throwable t) {<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      // Call stop if error or process will stick around for ever since server<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      // puts up non-daemon threads.<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      this.rpcServices.stop();<a name="line.818"></a>
-<span class="sourceLineNo">819</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    }<a name="line.820"></a>
-<span class="sourceLineNo">821</span>  }<a name="line.821"></a>
-<span class="sourceLineNo">822</span><a name="line.822"></a>
-<span class="sourceLineNo">823</span>  /**<a name="line.823"></a>
-<span class="sourceLineNo">824</span>   * Bring up connection to zk ensemble and then wait until a master for this<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * cluster and then after that, wait until cluster 'up' flag has been set.<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * This is the order in which master does things.<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * Finally open long-living server short-circuit connection.<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * @throws IOException<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * @throws InterruptedException<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   */<a name="line.830"></a>
-<span class="sourceLineNo">831</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    justification="cluster Id znode read would give us correct response")<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    // block until a master is available.  No point in starting up if no master<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    // running.<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    // when ready.<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.841"></a>
-<span class="sourceLineNo">842</span><a name="line.842"></a>
-<span class="sourceLineNo">843</span>    doLatch(this.initLatch);<a name="line.843"></a>
-<span class="sourceLineNo">844</span><a name="line.844"></a>
-<span class="sourceLineNo">845</span>    // Retrieve clusterId<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    // Since cluster status is now up<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    // ID should have already been set by HMaster<a name="line.847"></a>
-<span class="sourceLineNo">848</span>    try {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      if (clusterId == null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        this.abort("Cluster ID has not been set");<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      LOG.info("ClusterId : "+clusterId);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    } catch (KeeperException e) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      this.abort("Failed to retrieve Cluster ID",e);<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    }<a name="line.856"></a>
-<span class="sourceLineNo">857</span><a name="line.857"></a>
-<span class="sourceLineNo">858</span>    // In case colocated master, wait here till it's active.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    // So backup masters won't start as regionservers.<a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // This is to avoid showing backup masters as regionservers<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // in master web UI, or assigning any region to them.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    waitForMasterActive();<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    if (isStopped() || isAborted()) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      return; // No need for further initialization<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    }<a name="line.865"></a>
-<span class="sourceLineNo">866</span><a name="line.866"></a>
-<span class="sourceLineNo">867</span>    // watch for snapshots and other procedures<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    try {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      rspmHost.loadProcedures(conf);<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      rspmHost.initialize(this);<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    } catch (KeeperException e) {<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    }<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    // register watcher for recovering regions<a name="line.875"></a>
-<span class="sourceLineNo">876</span>    this.recoveringRegionWatcher = new RecoveringRegionWatcher(this.zooKeeper, this);<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  }<a name="line.877"></a>
-<span class="sourceLineNo">878</span><a name="line.878"></a>
-<span class="sourceLineNo">879</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED",<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      justification="We don't care about the return")<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private void doLatch(final CountDownLatch latch) throws InterruptedException {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    if (latch != null) {<a name="line.882"></a>
-<span class="sourceLineNo">883</span>      // Result is ignored intentionally but if I remove the below, findbugs complains (the<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      // above justification on this method doesn't seem to suppress it).<a name="line.884"></a>
-<span class="sourceLineNo">885</span>      boolean result = latch.await(20, TimeUnit.SECONDS);<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    }<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  /**<a name="line.889"></a>
-<span class="sourceLineNo">890</span>   * Utilty method to wait indefinitely on a znode availability while checking<a name="line.890">

<TRUNCATED>

[33/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
index 6318095..30168b3 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/assignment/SplitTableRegionProcedure.StoreFileSplitter.html
@@ -33,719 +33,735 @@
 <span class="sourceLineNo">025</span>import java.io.InputStream;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import java.io.InterruptedIOException;<a name="line.26"></a>
 <span class="sourceLineNo">027</span>import java.io.OutputStream;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.ArrayList;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import java.util.Arrays;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.util.Collection;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.List;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.concurrent.Callable;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.concurrent.ExecutionException;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.util.concurrent.ExecutorService;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import java.util.concurrent.Executors;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import java.util.concurrent.Future;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import java.util.concurrent.TimeUnit;<a name="line.37"></a>
-<span class="sourceLineNo">038</span><a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.commons.logging.Log;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.commons.logging.LogFactory;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.conf.Configuration;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.fs.FileSystem;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.fs.Path;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.HConstants;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.ServerName;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.TableName;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.MasterSwitchType;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.client.Mutation;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.client.RegionReplicaUtil;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.master.MasterCoprocessorHost;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.master.MasterFileSystem;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.master.procedure.AbstractStateMachineRegionProcedure;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.procedure2.ProcedureMetrics;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.regionserver.HStore;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.regionserver.HStoreFile;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.regionserver.StoreFile;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.regionserver.StoreFileInfo;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.76"></a>
-<span class="sourceLineNo">077</span><a name="line.77"></a>
-<span class="sourceLineNo">078</span>/**<a name="line.78"></a>
-<span class="sourceLineNo">079</span> * The procedure to split a region in a table.<a name="line.79"></a>
-<span class="sourceLineNo">080</span> * Takes lock on the parent region.<a name="line.80"></a>
-<span class="sourceLineNo">081</span> * It holds the lock for the life of the procedure.<a name="line.81"></a>
-<span class="sourceLineNo">082</span> */<a name="line.82"></a>
-<span class="sourceLineNo">083</span>@InterfaceAudience.Private<a name="line.83"></a>
-<span class="sourceLineNo">084</span>public class SplitTableRegionProcedure<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    extends AbstractStateMachineRegionProcedure&lt;SplitTableRegionState&gt; {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>  private static final Log LOG = LogFactory.getLog(SplitTableRegionProcedure.class);<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  private Boolean traceEnabled = null;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>  private HRegionInfo daughter_1_HRI;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>  private HRegionInfo daughter_2_HRI;<a name="line.89"></a>
-<span class="sourceLineNo">090</span><a name="line.90"></a>
-<span class="sourceLineNo">091</span>  public SplitTableRegionProcedure() {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    // Required by the Procedure framework to create the procedure on replay<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  }<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>  public SplitTableRegionProcedure(final MasterProcedureEnv env,<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      final HRegionInfo regionToSplit, final byte[] splitRow) throws IOException {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    super(env, regionToSplit);<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>    checkSplitRow(regionToSplit, splitRow);<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>    final TableName table = regionToSplit.getTable();<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    final long rid = getDaughterRegionIdTimestamp(regionToSplit);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    this.daughter_1_HRI = new HRegionInfo(table, regionToSplit.getStartKey(), splitRow, false, rid);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    this.daughter_2_HRI = new HRegionInfo(table, splitRow, regionToSplit.getEndKey(), false, rid);<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  private static void checkSplitRow(final HRegionInfo regionToSplit, final byte[] splitRow)<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      throws IOException {<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    if (splitRow == null || splitRow.length == 0) {<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      throw new DoNotRetryIOException("Split row cannot be null");<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    }<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>    if (Bytes.equals(regionToSplit.getStartKey(), splitRow)) {<a name="line.113"></a>
-<span class="sourceLineNo">114</span>      throw new DoNotRetryIOException(<a name="line.114"></a>
-<span class="sourceLineNo">115</span>        "Split row is equal to startkey: " + Bytes.toStringBinary(splitRow));<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    }<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    if (!regionToSplit.containsRow(splitRow)) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>      throw new DoNotRetryIOException(<a name="line.119"></a>
-<span class="sourceLineNo">120</span>        "Split row is not inside region key range splitKey:" + Bytes.toStringBinary(splitRow) +<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        " region: " + regionToSplit);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  }<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>  /**<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   * Calculate daughter regionid to use.<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * @param hri Parent {@link HRegionInfo}<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * @return Daughter region id (timestamp) to use.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  private static long getDaughterRegionIdTimestamp(final HRegionInfo hri) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    long rid = EnvironmentEdgeManager.currentTime();<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    // Regionid is timestamp.  Can't be less than that of parent else will insert<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    // at wrong location in hbase:meta (See HBASE-710).<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    if (rid &lt; hri.getRegionId()) {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      LOG.warn("Clock skew; parent regions id is " + hri.getRegionId() +<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        " but current time here is " + rid);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      rid = hri.getRegionId() + 1;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    return rid;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  }<a name="line.140"></a>
-<span class="sourceLineNo">141</span><a name="line.141"></a>
-<span class="sourceLineNo">142</span>  @Override<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  protected Flow executeFromState(final MasterProcedureEnv env, final SplitTableRegionState state)<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      throws InterruptedException {<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    if (isTraceEnabled()) {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      LOG.trace(this + " execute state=" + state);<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>    try {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>      switch (state) {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      case SPLIT_TABLE_REGION_PREPARE:<a name="line.151"></a>
-<span class="sourceLineNo">152</span>        if (prepareSplitRegion(env)) {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>          setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_PRE_OPERATION);<a name="line.153"></a>
-<span class="sourceLineNo">154</span>          break;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>        } else {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>          assert isFailed() : "split region should have an exception here";<a name="line.156"></a>
-<span class="sourceLineNo">157</span>          return Flow.NO_MORE_STATE;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>        }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      case SPLIT_TABLE_REGION_PRE_OPERATION:<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        preSplitRegion(env);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_CLOSE_PARENT_REGION);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>        break;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      case SPLIT_TABLE_REGION_CLOSE_PARENT_REGION:<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        addChildProcedure(createUnassignProcedures(env, getRegionReplication(env)));<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS);<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        break;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      case SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS:<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        createDaughterRegions(env);<a name="line.168"></a>
-<span class="sourceLineNo">169</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR);<a name="line.169"></a>
-<span class="sourceLineNo">170</span>        break;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR:<a name="line.171"></a>
-<span class="sourceLineNo">172</span>        preSplitRegionBeforePONR(env);<a name="line.172"></a>
-<span class="sourceLineNo">173</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_UPDATE_META);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>        break;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      case SPLIT_TABLE_REGION_UPDATE_META:<a name="line.175"></a>
-<span class="sourceLineNo">176</span>        updateMetaForDaughterRegions(env);<a name="line.176"></a>
-<span class="sourceLineNo">177</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>        break;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR:<a name="line.179"></a>
-<span class="sourceLineNo">180</span>        preSplitRegionAfterPONR(env);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>        break;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      case SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS:<a name="line.183"></a>
-<span class="sourceLineNo">184</span>        addChildProcedure(createAssignProcedures(env, getRegionReplication(env)));<a name="line.184"></a>
-<span class="sourceLineNo">185</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_POST_OPERATION);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>        break;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>      case SPLIT_TABLE_REGION_POST_OPERATION:<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        postSplitRegion(env);<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        return Flow.NO_MORE_STATE;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      default:<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        throw new UnsupportedOperationException(this + " unhandled state=" + state);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      }<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    } catch (IOException e) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      String msg = "Error trying to split region " + getParentRegion().getEncodedName() + " in the table "<a name="line.194"></a>
-<span class="sourceLineNo">195</span>          + getTableName() + " (in state=" + state + ")";<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      if (!isRollbackSupported(state)) {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>        // We reach a state that cannot be rolled back. We just need to keep retry.<a name="line.197"></a>
-<span class="sourceLineNo">198</span>        LOG.warn(msg, e);<a name="line.198"></a>
-<span class="sourceLineNo">199</span>      } else {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        LOG.error(msg, e);<a name="line.200"></a>
-<span class="sourceLineNo">201</span>        setFailure(e);<a name="line.201"></a>
-<span class="sourceLineNo">202</span>      }<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    }<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    return Flow.HAS_MORE_STATE;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>  }<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>  @Override<a name="line.207"></a>
-<span class="sourceLineNo">208</span>  protected void rollbackState(final MasterProcedureEnv env, final SplitTableRegionState state)<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      throws IOException, InterruptedException {<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    if (isTraceEnabled()) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      LOG.trace(this + " rollback state=" + state);<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    }<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>    try {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      switch (state) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      case SPLIT_TABLE_REGION_POST_OPERATION:<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      case SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS:<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR:<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      case SPLIT_TABLE_REGION_UPDATE_META:<a name="line.219"></a>
-<span class="sourceLineNo">220</span>        // PONR<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        throw new UnsupportedOperationException(this + " unhandled state=" + state);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR:<a name="line.222"></a>
+<span class="sourceLineNo">028</span>import java.util.*;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.concurrent.Callable;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import java.util.concurrent.ExecutionException;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import java.util.concurrent.ExecutorService;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import java.util.concurrent.Executors;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import java.util.concurrent.Future;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import java.util.concurrent.TimeUnit;<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.commons.logging.Log;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.commons.logging.LogFactory;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.conf.Configuration;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.fs.FileSystem;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.fs.Path;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.HConstants;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.ServerName;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.TableName;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.MasterSwitchType;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.client.Mutation;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.client.RegionReplicaUtil;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.master.MasterCoprocessorHost;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.master.MasterFileSystem;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.apache.hadoop.hbase.master.assignment.RegionStates.RegionStateNode;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.apache.hadoop.hbase.master.procedure.AbstractStateMachineRegionProcedure;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureEnv;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.apache.hadoop.hbase.procedure2.ProcedureMetrics;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProcedureProtos.SplitTableRegionState;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.apache.hadoop.hbase.regionserver.HRegionFileSystem;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.apache.hadoop.hbase.regionserver.HStore;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.regionserver.HStoreFile;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.regionserver.StoreFile;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.regionserver.StoreFileInfo;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse;<a name="line.68"></a>
+<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>/**<a name="line.75"></a>
+<span class="sourceLineNo">076</span> * The procedure to split a region in a table.<a name="line.76"></a>
+<span class="sourceLineNo">077</span> * Takes lock on the parent region.<a name="line.77"></a>
+<span class="sourceLineNo">078</span> * It holds the lock for the life of the procedure.<a name="line.78"></a>
+<span class="sourceLineNo">079</span> */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>@InterfaceAudience.Private<a name="line.80"></a>
+<span class="sourceLineNo">081</span>public class SplitTableRegionProcedure<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    extends AbstractStateMachineRegionProcedure&lt;SplitTableRegionState&gt; {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  private static final Log LOG = LogFactory.getLog(SplitTableRegionProcedure.class);<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private Boolean traceEnabled = null;<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  private HRegionInfo daughter_1_HRI;<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  private HRegionInfo daughter_2_HRI;<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>  public SplitTableRegionProcedure() {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    // Required by the Procedure framework to create the procedure on replay<a name="line.89"></a>
+<span class="sourceLineNo">090</span>  }<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>  public SplitTableRegionProcedure(final MasterProcedureEnv env,<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      final HRegionInfo regionToSplit, final byte[] splitRow) throws IOException {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    super(env, regionToSplit);<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>    checkSplitRow(regionToSplit, splitRow);<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>    final TableName table = regionToSplit.getTable();<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    final long rid = getDaughterRegionIdTimestamp(regionToSplit);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    this.daughter_1_HRI = new HRegionInfo(table, regionToSplit.getStartKey(), splitRow, false, rid);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    this.daughter_2_HRI = new HRegionInfo(table, splitRow, regionToSplit.getEndKey(), false, rid);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  private static void checkSplitRow(final HRegionInfo regionToSplit, final byte[] splitRow)<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      throws IOException {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    if (splitRow == null || splitRow.length == 0) {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      throw new DoNotRetryIOException("Split row cannot be null");<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>    if (Bytes.equals(regionToSplit.getStartKey(), splitRow)) {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      throw new DoNotRetryIOException(<a name="line.111"></a>
+<span class="sourceLineNo">112</span>        "Split row is equal to startkey: " + Bytes.toStringBinary(splitRow));<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    if (!regionToSplit.containsRow(splitRow)) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      throw new DoNotRetryIOException(<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        "Split row is not inside region key range splitKey:" + Bytes.toStringBinary(splitRow) +<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        " region: " + regionToSplit);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>  /**<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   * Calculate daughter regionid to use.<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   * @param hri Parent {@link HRegionInfo}<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   * @return Daughter region id (timestamp) to use.<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   */<a name="line.126"></a>
+<span class="sourceLineNo">127</span>  private static long getDaughterRegionIdTimestamp(final HRegionInfo hri) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    long rid = EnvironmentEdgeManager.currentTime();<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    // Regionid is timestamp.  Can't be less than that of parent else will insert<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // at wrong location in hbase:meta (See HBASE-710).<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    if (rid &lt; hri.getRegionId()) {<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      LOG.warn("Clock skew; parent regions id is " + hri.getRegionId() +<a name="line.132"></a>
+<span class="sourceLineNo">133</span>        " but current time here is " + rid);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      rid = hri.getRegionId() + 1;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    return rid;<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  }<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  @Override<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  protected Flow executeFromState(final MasterProcedureEnv env, final SplitTableRegionState state)<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      throws InterruptedException {<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    if (isTraceEnabled()) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      LOG.trace(this + " execute state=" + state);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    }<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>    try {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      switch (state) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      case SPLIT_TABLE_REGION_PREPARE:<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        if (prepareSplitRegion(env)) {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>          setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_PRE_OPERATION);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>          break;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>        } else {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>          assert isFailed() : "split region should have an exception here";<a name="line.153"></a>
+<span class="sourceLineNo">154</span>          return Flow.NO_MORE_STATE;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        }<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      case SPLIT_TABLE_REGION_PRE_OPERATION:<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        preSplitRegion(env);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_CLOSE_PARENT_REGION);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        break;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      case SPLIT_TABLE_REGION_CLOSE_PARENT_REGION:<a name="line.160"></a>
+<span class="sourceLineNo">161</span>        addChildProcedure(createUnassignProcedures(env, getRegionReplication(env)));<a name="line.161"></a>
+<span class="sourceLineNo">162</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>        break;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      case SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS:<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        createDaughterRegions(env);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR);<a name="line.166"></a>
+<span class="sourceLineNo">167</span>        break;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR:<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        preSplitRegionBeforePONR(env);<a name="line.169"></a>
+<span class="sourceLineNo">170</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_UPDATE_META);<a name="line.170"></a>
+<span class="sourceLineNo">171</span>        break;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      case SPLIT_TABLE_REGION_UPDATE_META:<a name="line.172"></a>
+<span class="sourceLineNo">173</span>        updateMetaForDaughterRegions(env);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        break;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR:<a name="line.176"></a>
+<span class="sourceLineNo">177</span>        preSplitRegionAfterPONR(env);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS);<a name="line.178"></a>
+<span class="sourceLineNo">179</span>        break;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      case SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS:<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        addChildProcedure(createAssignProcedures(env, getRegionReplication(env)));<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        setNextState(SplitTableRegionState.SPLIT_TABLE_REGION_POST_OPERATION);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        break;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      case SPLIT_TABLE_REGION_POST_OPERATION:<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        postSplitRegion(env);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>        return Flow.NO_MORE_STATE;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      default:<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        throw new UnsupportedOperationException(this + " unhandled state=" + state);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    } catch (IOException e) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      String msg = "Error trying to split region " + getParentRegion().getEncodedName() + " in the table "<a name="line.191"></a>
+<span class="sourceLineNo">192</span>          + getTableName() + " (in state=" + state + ")";<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      if (!isRollbackSupported(state)) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        // We reach a state that cannot be rolled back. We just need to keep retry.<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        LOG.warn(msg, e);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      } else {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>        LOG.error(msg, e);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        setFailure(e);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    return Flow.HAS_MORE_STATE;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>  }<a name="line.202"></a>
+<span class="sourceLineNo">203</span><a name="line.203"></a>
+<span class="sourceLineNo">204</span>  @Override<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  protected void rollbackState(final MasterProcedureEnv env, final SplitTableRegionState state)<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      throws IOException, InterruptedException {<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    if (isTraceEnabled()) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      LOG.trace(this + " rollback state=" + state);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>    try {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      switch (state) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      case SPLIT_TABLE_REGION_POST_OPERATION:<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      case SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS:<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR:<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      case SPLIT_TABLE_REGION_UPDATE_META:<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        // PONR<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        throw new UnsupportedOperationException(this + " unhandled state=" + state);<a name="line.218"></a>
+<span class="sourceLineNo">219</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_BEFORE_PONR:<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        break;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      case SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS:<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        // Doing nothing, as re-open parent region would clean up daughter region directories.<a name="line.222"></a>
 <span class="sourceLineNo">223</span>        break;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      case SPLIT_TABLE_REGION_CREATE_DAUGHTER_REGIONS:<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        // Doing nothing, as re-open parent region would clean up daughter region directories.<a name="line.225"></a>
+<span class="sourceLineNo">224</span>      case SPLIT_TABLE_REGION_CLOSE_PARENT_REGION:<a name="line.224"></a>
+<span class="sourceLineNo">225</span>        openParentRegion(env);<a name="line.225"></a>
 <span class="sourceLineNo">226</span>        break;<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      case SPLIT_TABLE_REGION_CLOSE_PARENT_REGION:<a name="line.227"></a>
-<span class="sourceLineNo">228</span>        openParentRegion(env);<a name="line.228"></a>
+<span class="sourceLineNo">227</span>      case SPLIT_TABLE_REGION_PRE_OPERATION:<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        postRollBackSplitRegion(env);<a name="line.228"></a>
 <span class="sourceLineNo">229</span>        break;<a name="line.229"></a>
-<span class="sourceLineNo">230</span>      case SPLIT_TABLE_REGION_PRE_OPERATION:<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        postRollBackSplitRegion(env);<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        break;<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      case SPLIT_TABLE_REGION_PREPARE:<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        break; // nothing to do<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      default:<a name="line.235"></a>
-<span class="sourceLineNo">236</span>        throw new UnsupportedOperationException(this + " unhandled state=" + state);<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      }<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    } catch (IOException e) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      // This will be retried. Unless there is a bug in the code,<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      // this should be just a "temporary error" (e.g. network down)<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      LOG.warn("pid=" + getProcId() + " failed rollback attempt step " + state +<a name="line.241"></a>
-<span class="sourceLineNo">242</span>          " for splitting the region "<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        + getParentRegion().getEncodedName() + " in table " + getTableName(), e);<a name="line.243"></a>
-<span class="sourceLineNo">244</span>      throw e;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    }<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>  /*<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * Check whether we are in the state that can be rollback<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   */<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  @Override<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  protected boolean isRollbackSupported(final SplitTableRegionState state) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    switch (state) {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      case SPLIT_TABLE_REGION_POST_OPERATION:<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      case SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS:<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR:<a name="line.256"></a>
-<span class="sourceLineNo">257</span>      case SPLIT_TABLE_REGION_UPDATE_META:<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        // It is not safe to rollback if we reach to these states.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        return false;<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      default:<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        break;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    return true;<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  }<a name="line.264"></a>
-<span class="sourceLineNo">265</span><a name="line.265"></a>
-<span class="sourceLineNo">266</span>  @Override<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  protected SplitTableRegionState getState(final int stateId) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    return SplitTableRegionState.forNumber(stateId);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>  }<a name="line.269"></a>
-<span class="sourceLineNo">270</span><a name="line.270"></a>
-<span class="sourceLineNo">271</span>  @Override<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  protected int getStateId(final SplitTableRegionState state) {<a name="line.272"></a>
-<span class="sourceLineNo">273</span>    return state.getNumber();<a name="line.273"></a>
-<span class="sourceLineNo">274</span>  }<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>  @Override<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  protected SplitTableRegionState getInitialState() {<a name="line.277"></a>
-<span class="sourceLineNo">278</span>    return SplitTableRegionState.SPLIT_TABLE_REGION_PREPARE;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>  }<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>  @Override<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  public void serializeStateData(final OutputStream stream) throws IOException {<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    super.serializeStateData(stream);<a name="line.283"></a>
-<span class="sourceLineNo">284</span><a name="line.284"></a>
-<span class="sourceLineNo">285</span>    final MasterProcedureProtos.SplitTableRegionStateData.Builder splitTableRegionMsg =<a name="line.285"></a>
-<span class="sourceLineNo">286</span>        MasterProcedureProtos.SplitTableRegionStateData.newBuilder()<a name="line.286"></a>
-<span class="sourceLineNo">287</span>        .setUserInfo(MasterProcedureUtil.toProtoUserInfo(getUser()))<a name="line.287"></a>
-<span class="sourceLineNo">288</span>        .setParentRegionInfo(HRegionInfo.convert(getRegion()))<a name="line.288"></a>
-<span class="sourceLineNo">289</span>        .addChildRegionInfo(HRegionInfo.convert(daughter_1_HRI))<a name="line.289"></a>
-<span class="sourceLineNo">290</span>        .addChildRegionInfo(HRegionInfo.convert(daughter_2_HRI));<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    splitTableRegionMsg.build().writeDelimitedTo(stream);<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>  @Override<a name="line.294"></a>
-<span class="sourceLineNo">295</span>  public void deserializeStateData(final InputStream stream) throws IOException {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    super.deserializeStateData(stream);<a name="line.296"></a>
-<span class="sourceLineNo">297</span><a name="line.297"></a>
-<span class="sourceLineNo">298</span>    final MasterProcedureProtos.SplitTableRegionStateData splitTableRegionsMsg =<a name="line.298"></a>
-<span class="sourceLineNo">299</span>        MasterProcedureProtos.SplitTableRegionStateData.parseDelimitedFrom(stream);<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    setUser(MasterProcedureUtil.toUserInfo(splitTableRegionsMsg.getUserInfo()));<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    setRegion(HRegionInfo.convert(splitTableRegionsMsg.getParentRegionInfo()));<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    assert(splitTableRegionsMsg.getChildRegionInfoCount() == 2);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>    daughter_1_HRI = HRegionInfo.convert(splitTableRegionsMsg.getChildRegionInfo(0));<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    daughter_2_HRI = HRegionInfo.convert(splitTableRegionsMsg.getChildRegionInfo(1));<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>  @Override<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  public void toStringClassDetails(StringBuilder sb) {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    sb.append(getClass().getSimpleName());<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    sb.append(" table=");<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    sb.append(getTableName());<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    sb.append(", parent=");<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    sb.append(getParentRegion().getShortNameToLog());<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    sb.append(", daughterA=");<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    sb.append(daughter_1_HRI.getShortNameToLog());<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    sb.append(", daughterB=");<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    sb.append(daughter_2_HRI.getShortNameToLog());<a name="line.317"></a>
-<span class="sourceLineNo">318</span>  }<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>  private HRegionInfo getParentRegion() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    return getRegion();<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>  @Override<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  public TableOperationType getTableOperationType() {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    return TableOperationType.REGION_SPLIT;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  }<a name="line.327"></a>
-<span class="sourceLineNo">328</span><a name="line.328"></a>
-<span class="sourceLineNo">329</span>  @Override<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  protected ProcedureMetrics getProcedureMetrics(MasterProcedureEnv env) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>    return env.getAssignmentManager().getAssignmentManagerMetrics().getSplitProcMetrics();<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  }<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>  private byte[] getSplitRow() {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    return daughter_2_HRI.getStartKey();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>  private static State [] EXPECTED_SPLIT_STATES = new State [] {State.OPEN, State.CLOSED};<a name="line.338"></a>
-<span class="sourceLineNo">339</span>  /**<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   * Prepare to Split region.<a name="line.340"></a>
-<span class="sourceLineNo">341</span>   * @param env MasterProcedureEnv<a name="line.341"></a>
-<span class="sourceLineNo">342</span>   * @throws IOException<a name="line.342"></a>
-<span class="sourceLineNo">343</span>   */<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  @VisibleForTesting<a name="line.344"></a>
-<span class="sourceLineNo">345</span>  public boolean prepareSplitRegion(final MasterProcedureEnv env) throws IOException {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    // Check whether the region is splittable<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    RegionStateNode node =<a name="line.347"></a>
-<span class="sourceLineNo">348</span>      env.getAssignmentManager().getRegionStates().getRegionNode(getParentRegion());<a name="line.348"></a>
-<span class="sourceLineNo">349</span>    HRegionInfo parentHRI = null;<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    if (node != null) {<a name="line.350"></a>
-<span class="sourceLineNo">351</span>      parentHRI = node.getRegionInfo();<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>      // Lookup the parent HRI state from the AM, which has the latest updated info.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>      // Protect against the case where concurrent SPLIT requests came in and succeeded<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      // just before us.<a name="line.355"></a>
-<span class="sourceLineNo">356</span>      if (node.isInState(State.SPLIT)) {<a name="line.356"></a>
-<span class="sourceLineNo">357</span>        LOG.info("Split of " + parentHRI + " skipped; state is already SPLIT");<a name="line.357"></a>
-<span class="sourceLineNo">358</span>        return false;<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      }<a name="line.359"></a>
-<span class="sourceLineNo">360</span>      if (parentHRI.isSplit() || parentHRI.isOffline()) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        LOG.info("Split of " + parentHRI + " skipped because offline/split.");<a name="line.361"></a>
-<span class="sourceLineNo">362</span>        return false;<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      }<a name="line.363"></a>
-<span class="sourceLineNo">364</span><a name="line.364"></a>
-<span class="sourceLineNo">365</span>      // expected parent to be online or closed<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      if (!node.isInState(EXPECTED_SPLIT_STATES)) {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>        // We may have SPLIT already?<a name="line.367"></a>
-<span class="sourceLineNo">368</span>        setFailure(new IOException("Split " + parentHRI.getRegionNameAsString() +<a name="line.368"></a>
-<span class="sourceLineNo">369</span>            " FAILED because state=" + node.getState() + "; expected " +<a name="line.369"></a>
-<span class="sourceLineNo">370</span>            Arrays.toString(EXPECTED_SPLIT_STATES)));<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        return false;<a name="line.371"></a>
-<span class="sourceLineNo">372</span>      }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>      // Ask the remote regionserver if this region is splittable. If we get an IOE, report it<a name="line.374"></a>
-<span class="sourceLineNo">375</span>      // along w/ the failure so can see why we are not splittable at this time.<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      IOException splittableCheckIOE = null;<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      boolean splittable = false;<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      try {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        GetRegionInfoResponse response =<a name="line.379"></a>
-<span class="sourceLineNo">380</span>            Util.getRegionInfoResponse(env, node.getRegionLocation(), node.getRegionInfo());<a name="line.380"></a>
-<span class="sourceLineNo">381</span>        splittable = response.hasSplittable() &amp;&amp; response.getSplittable();<a name="line.381"></a>
-<span class="sourceLineNo">382</span>        if (LOG.isDebugEnabled()) {<a name="line.382"></a>
-<span class="sourceLineNo">383</span>          LOG.debug("Splittable=" + splittable + " " + this + " " + node.toShortString());<a name="line.383"></a>
-<span class="sourceLineNo">384</span>        }<a name="line.384"></a>
-<span class="sourceLineNo">385</span>      } catch (IOException e) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>        splittableCheckIOE = e;<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      }<a name="line.387"></a>
-<span class="sourceLineNo">388</span>      if (!splittable) {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>        IOException e = new IOException(parentHRI.getShortNameToLog() + " NOT splittable");<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        if (splittableCheckIOE != null) e.initCause(splittableCheckIOE);<a name="line.390"></a>
-<span class="sourceLineNo">391</span>        setFailure(e);<a name="line.391"></a>
-<span class="sourceLineNo">392</span>        return false;<a name="line.392"></a>
-<span class="sourceLineNo">393</span>      }<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
-<span class="sourceLineNo">395</span><a name="line.395"></a>
-<span class="sourceLineNo">396</span>    // Since we have the lock and the master is coordinating the operation<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    // we are always able to split the region<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    if (!env.getMasterServices().isSplitOrMergeEnabled(MasterSwitchType.SPLIT)) {<a name="line.398"></a>
-<span class="sourceLineNo">399</span>      LOG.warn("pid=" + getProcId() + " split switch is off! skip split of " + parentHRI);<a name="line.399"></a>
-<span class="sourceLineNo">400</span>      setFailure(new IOException("Split region " +<a name="line.400"></a>
-<span class="sourceLineNo">401</span>          (parentHRI == null? "null": parentHRI.getRegionNameAsString()) +<a name="line.401"></a>
-<span class="sourceLineNo">402</span>          " failed due to split switch off"));<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      return false;<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    }<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    return true;<a name="line.405"></a>
-<span class="sourceLineNo">406</span>  }<a name="line.406"></a>
-<span class="sourceLineNo">407</span><a name="line.407"></a>
-<span class="sourceLineNo">408</span>  /**<a name="line.408"></a>
-<span class="sourceLineNo">409</span>   * Action before splitting region in a table.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @param env MasterProcedureEnv<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   * @param state the procedure state<a name="line.411"></a>
-<span class="sourceLineNo">412</span>   * @throws IOException<a name="line.412"></a>
-<span class="sourceLineNo">413</span>   * @throws InterruptedException<a name="line.413"></a>
-<span class="sourceLineNo">414</span>   */<a name="line.414"></a>
-<span class="sourceLineNo">415</span>  private void preSplitRegion(final MasterProcedureEnv env)<a name="line.415"></a>
-<span class="sourceLineNo">416</span>      throws IOException, InterruptedException {<a name="line.416"></a>
-<span class="sourceLineNo">417</span>    final MasterCoprocessorHost cpHost = env.getMasterCoprocessorHost();<a name="line.417"></a>
-<span class="sourceLineNo">418</span>    if (cpHost != null) {<a name="line.418"></a>
-<span class="sourceLineNo">419</span>      cpHost.preSplitRegionAction(getTableName(), getSplitRow(), getUser());<a name="line.419"></a>
-<span class="sourceLineNo">420</span>    }<a name="line.420"></a>
-<span class="sourceLineNo">421</span>  }<a name="line.421"></a>
-<span class="sourceLineNo">422</span><a name="line.422"></a>
-<span class="sourceLineNo">423</span>  /**<a name="line.423"></a>
-<span class="sourceLineNo">424</span>   * Action after rollback a split table region action.<a name="line.424"></a>
-<span class="sourceLineNo">425</span>   * @param env MasterProcedureEnv<a name="line.425"></a>
-<span class="sourceLineNo">426</span>   * @throws IOException<a name="line.426"></a>
-<span class="sourceLineNo">427</span>   */<a name="line.427"></a>
-<span class="sourceLineNo">428</span>  private void postRollBackSplitRegion(final MasterProcedureEnv env) throws IOException {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    final MasterCoprocessorHost cpHost = env.getMasterCoprocessorHost();<a name="line.429"></a>
-<span class="sourceLineNo">430</span>    if (cpHost != null) {<a name="line.430"></a>
-<span class="sourceLineNo">431</span>      cpHost.postRollBackSplitRegionAction(getUser());<a name="line.431"></a>
-<span class="sourceLineNo">432</span>    }<a name="line.432"></a>
-<span class="sourceLineNo">433</span>  }<a name="line.433"></a>
-<span class="sourceLineNo">434</span><a name="line.434"></a>
-<span class="sourceLineNo">435</span>  /**<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * Rollback close parent region<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * @param env MasterProcedureEnv<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   **/<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  private void openParentRegion(final MasterProcedureEnv env) throws IOException {<a name="line.439"></a>
-<span class="sourceLineNo">440</span>    // Check whether the region is closed; if so, open it in the same server<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    final int regionReplication = getRegionReplication(env);<a name="line.441"></a>
-<span class="sourceLineNo">442</span>    final ServerName serverName = getParentRegionServerName(env);<a name="line.442"></a>
-<span class="sourceLineNo">443</span><a name="line.443"></a>
-<span class="sourceLineNo">444</span>    final AssignProcedure[] procs = new AssignProcedure[regionReplication];<a name="line.444"></a>
-<span class="sourceLineNo">445</span>    for (int i = 0; i &lt; regionReplication; ++i) {<a name="line.445"></a>
-<span class="sourceLineNo">446</span>      final HRegionInfo hri = RegionReplicaUtil.getRegionInfoForReplica(getParentRegion(), i);<a name="line.446"></a>
-<span class="sourceLineNo">447</span>      procs[i] = env.getAssignmentManager().createAssignProcedure(hri, serverName);<a name="line.447"></a>
-<span class="sourceLineNo">448</span>    }<a name="line.448"></a>
-<span class="sourceLineNo">449</span>    env.getMasterServices().getMasterProcedureExecutor().submitProcedures(procs);<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
-<span class="sourceLineNo">451</span><a name="line.451"></a>
-<span class="sourceLineNo">452</span>  /**<a name="line.452"></a>
-<span class="sourceLineNo">453</span>   * Create daughter regions<a name="line.453"></a>
-<span class="sourceLineNo">454</span>   * @param env MasterProcedureEnv<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * @throws IOException<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   */<a name="line.456"></a>
-<span class="sourceLineNo">457</span>  @VisibleForTesting<a name="line.457"></a>
-<span class="sourceLineNo">458</span>  public void createDaughterRegions(final MasterProcedureEnv env) throws IOException {<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    final MasterFileSystem mfs = env.getMasterServices().getMasterFileSystem();<a name="line.459"></a>
-<span class="sourceLineNo">460</span>    final Path tabledir = FSUtils.getTableDir(mfs.getRootDir(), getTableName());<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    final FileSystem fs = mfs.getFileSystem();<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    HRegionFileSystem regionFs = HRegionFileSystem.openRegionFromFileSystem(<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      env.getMasterConfiguration(), fs, tabledir, getParentRegion(), false);<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    regionFs.createSplitsDir();<a name="line.464"></a>
-<span class="sourceLineNo">465</span><a name="line.465"></a>
-<span class="sourceLineNo">466</span>    Pair&lt;Integer, Integer&gt; expectedReferences = splitStoreFiles(env, regionFs);<a name="line.466"></a>
-<span class="sourceLineNo">467</span><a name="line.467"></a>
+<span class="sourceLineNo">230</span>      case SPLIT_TABLE_REGION_PREPARE:<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        break; // nothing to do<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      default:<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        throw new UnsupportedOperationException(this + " unhandled state=" + state);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    } catch (IOException e) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      // This will be retried. Unless there is a bug in the code,<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      // this should be just a "temporary error" (e.g. network down)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      LOG.warn("pid=" + getProcId() + " failed rollback attempt step " + state +<a name="line.238"></a>
+<span class="sourceLineNo">239</span>          " for splitting the region "<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        + getParentRegion().getEncodedName() + " in table " + getTableName(), e);<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      throw e;<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  }<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>  /*<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   * Check whether we are in the state that can be rollback<a name="line.246"></a>
+<span class="sourceLineNo">247</span>   */<a name="line.247"></a>
+<span class="sourceLineNo">248</span>  @Override<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  protected boolean isRollbackSupported(final SplitTableRegionState state) {<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    switch (state) {<a name="line.250"></a>
+<span class="sourceLineNo">251</span>      case SPLIT_TABLE_REGION_POST_OPERATION:<a name="line.251"></a>
+<span class="sourceLineNo">252</span>      case SPLIT_TABLE_REGION_OPEN_CHILD_REGIONS:<a name="line.252"></a>
+<span class="sourceLineNo">253</span>      case SPLIT_TABLE_REGION_PRE_OPERATION_AFTER_PONR:<a name="line.253"></a>
+<span class="sourceLineNo">254</span>      case SPLIT_TABLE_REGION_UPDATE_META:<a name="line.254"></a>
+<span class="sourceLineNo">255</span>        // It is not safe to rollback if we reach to these states.<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        return false;<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      default:<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        break;<a name="line.258"></a>
+<span class="sourceLineNo">259</span>    }<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    return true;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>  }<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>  @Override<a name="line.263"></a>
+<span class="sourceLineNo">264</span>  protected SplitTableRegionState getState(final int stateId) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    return SplitTableRegionState.forNumber(stateId);<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  @Override<a name="line.268"></a>
+<span class="sourceLineNo">269</span>  protected int getStateId(final SplitTableRegionState state) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    return state.getNumber();<a name="line.270"></a>
+<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
+<span class="sourceLineNo">272</span><a name="line.272"></a>
+<span class="sourceLineNo">273</span>  @Override<a name="line.273"></a>
+<span class="sourceLineNo">274</span>  protected SplitTableRegionState getInitialState() {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    return SplitTableRegionState.SPLIT_TABLE_REGION_PREPARE;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  @Override<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  public void serializeStateData(final OutputStream stream) throws IOException {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    super.serializeStateData(stream);<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>    final MasterProcedureProtos.SplitTableRegionStateData.Builder splitTableRegionMsg =<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        MasterProcedureProtos.SplitTableRegionStateData.newBuilder()<a name="line.283"></a>
+<span class="sourceLineNo">284</span>        .setUserInfo(MasterProcedureUtil.toProtoUserInfo(getUser()))<a name="line.284"></a>
+<span class="sourceLineNo">285</span>        .setParentRegionInfo(HRegionInfo.convert(getRegion()))<a name="line.285"></a>
+<span class="sourceLineNo">286</span>        .addChildRegionInfo(HRegionInfo.convert(daughter_1_HRI))<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        .addChildRegionInfo(HRegionInfo.convert(daughter_2_HRI));<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    splitTableRegionMsg.build().writeDelimitedTo(stream);<a name="line.288"></a>
+<span class="sourceLineNo">289</span>  }<a name="line.289"></a>
+<span class="sourceLineNo">290</span><a name="line.290"></a>
+<span class="sourceLineNo">291</span>  @Override<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public void deserializeStateData(final InputStream stream) throws IOException {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    super.deserializeStateData(stream);<a name="line.293"></a>
+<span class="sourceLineNo">294</span><a name="line.294"></a>
+<span class="sourceLineNo">295</span>    final MasterProcedureProtos.SplitTableRegionStateData splitTableRegionsMsg =<a name="line.295"></a>
+<span class="sourceLineNo">296</span>        MasterProcedureProtos.SplitTableRegionStateData.parseDelimitedFrom(stream);<a name="line.296"></a>
+<span class="sourceLineNo">297</span>    setUser(MasterProcedureUtil.toUserInfo(splitTableRegionsMsg.getUserInfo()));<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    setRegion(HRegionInfo.convert(splitTableRegionsMsg.getParentRegionInfo()));<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    assert(splitTableRegionsMsg.getChildRegionInfoCount() == 2);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    daughter_1_HRI = HRegionInfo.convert(splitTableRegionsMsg.getChildRegionInfo(0));<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    daughter_2_HRI = HRegionInfo.convert(splitTableRegionsMsg.getChildRegionInfo(1));<a name="line.301"></a>
+<span class="sourceLineNo">302</span>  }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>  @Override<a name="line.304"></a>
+<span class="sourceLineNo">305</span>  public void toStringClassDetails(StringBuilder sb) {<a name="line.305"></a>
+<span class="sourceLineNo">306</span>    sb.append(getClass().getSimpleName());<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    sb.append(" table=");<a name="line.307"></a>
+<span class="sourceLineNo">308</span>    sb.append(getTableName());<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    sb.append(", parent=");<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    sb.append(getParentRegion().getShortNameToLog());<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    sb.append(", daughterA=");<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    sb.append(daughter_1_HRI.getShortNameToLog());<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    sb.append(", daughterB=");<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    sb.append(daughter_2_HRI.getShortNameToLog());<a name="line.314"></a>
+<span class="sourceLineNo">315</span>  }<a name="line.315"></a>
+<span class="sourceLineNo">316</span><a name="line.316"></a>
+<span class="sourceLineNo">317</span>  private HRegionInfo getParentRegion() {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    return getRegion();<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  }<a name="line.319"></a>
+<span class="sourceLineNo">320</span><a name="line.320"></a>
+<span class="sourceLineNo">321</span>  @Override<a name="line.321"></a>
+<span class="sourceLineNo">322</span>  public TableOperationType getTableOperationType() {<a name="line.322"></a>
+<span class="sourceLineNo">323</span>    return TableOperationType.REGION_SPLIT;<a name="line.323"></a>
+<span class="sourceLineNo">324</span>  }<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>  @Override<a name="line.326"></a>
+<span class="sourceLineNo">327</span>  protected ProcedureMetrics getProcedureMetrics(MasterProcedureEnv env) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    return env.getAssignmentManager().getAssignmentManagerMetrics().getSplitProcMetrics();<a name="line.328"></a>
+<span class="sourceLineNo">329</span>  }<a name="line.329"></a>
+<span class="sourceLineNo">330</span><a name="line.330"></a>
+<span class="sourceLineNo">331</span>  private byte[] getSplitRow() {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>    return daughter_2_HRI.getStartKey();<a name="line.332"></a>
+<span class="sourceLineNo">333</span>  }<a name="line.333"></a>
+<span class="sourceLineNo">334</span><a name="line.334"></a>
+<span class="sourceLineNo">335</span>  private static State [] EXPECTED_SPLIT_STATES = new State [] {State.OPEN, State.CLOSED};<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  /**<a name="line.336"></a>
+<span class="sourceLineNo">337</span>   * Prepare to Split region.<a name="line.337"></a>
+<span class="sourceLineNo">338</span>   * @param env MasterProcedureEnv<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   * @throws IOException<a name="line.339"></a>
+<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
+<span class="sourceLineNo">341</span>  @VisibleForTesting<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  public boolean prepareSplitRegion(final MasterProcedureEnv env) throws IOException {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    // Check whether the region is splittable<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    RegionStateNode node =<a name="line.344"></a>
+<span class="sourceLineNo">345</span>      env.getAssignmentManager().getRegionStates().getRegionNode(getParentRegion());<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    HRegionInfo parentHRI = null;<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    if (node != null) {<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      parentHRI = node.getRegionInfo();<a name="line.348"></a>
+<span class="sourceLineNo">349</span><a name="line.349"></a>
+<span class="sourceLineNo">350</span>      // Lookup the parent HRI state from the AM, which has the latest updated info.<a name="line.350"></a>
+<span class="sourceLineNo">351</span>      // Protect against the case where concurrent SPLIT requests came in and succeeded<a name="line.351"></a>
+<span class="sourceLineNo">352</span>      // just before us.<a name="line.352"></a>
+<span class="sourceLineNo">353</span>      if (node.isInState(State.SPLIT)) {<a name="line.353"></a>
+<span class="sourceLineNo">354</span>        LOG.info("Split of " + parentHRI + " skipped; state is already SPLIT");<a name="line.354"></a>
+<span class="sourceLineNo">355</span>        return false;<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      }<a name="line.356"></a>
+<span class="sourceLineNo">357</span>      if (parentHRI.isSplit() || parentHRI.isOffline()) {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>        LOG.info("Split of " + parentHRI + " skipped because offline/split.");<a name="line.358"></a>
+<span class="sourceLineNo">359</span>        return false;<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      }<a name="line.360"></a>
+<span class="sourceLineNo">361</span><a name="line.361"></a>
+<span class="sourceLineNo">362</span>      // expected parent to be online or closed<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      if (!node.isInState(EXPECTED_SPLIT_STATES)) {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>        // We may have SPLIT already?<a name="line.364"></a>
+<span class="sourceLineNo">365</span>        setFailure(new IOException("Split " + parentHRI.getRegionNameAsString() +<a name="line.365"></a>
+<span class="sourceLineNo">366</span>            " FAILED because state=" + node.getState() + "; expected " +<a name="line.366"></a>
+<span class="sourceLineNo">367</span>            Arrays.toString(EXPECTED_SPLIT_STATES)));<a name="line.367"></a>
+<span class="sourceLineNo">368</span>        return false;<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      }<a name="line.369"></a>
+<span class="sourceLineNo">370</span><a name="line.370"></a>
+<span class="sourceLineNo">371</span>      // Ask the remote regionserver if this region is splittable. If we get an IOE, report it<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      // along w/ the failure so can see why we are not splittable at this time.<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      IOException splittableCheckIOE = null;<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      boolean splittable = false;<a name="line.374"></a>
+<span class="sourceLineNo">375</span>      try {<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        GetRegionInfoResponse response =<a name="line.376"></a>
+<span class="sourceLineNo">377</span>            Util.getRegionInfoResponse(env, node.getRegionLocation(), node.getRegionInfo());<a name="line.377"></a>
+<span class="sourceLineNo">378</span>        splittable = response.hasSplittable() &amp;&amp; response.getSplittable();<a name="line.378"></a>
+<span class="sourceLineNo">379</span>        if (LOG.isDebugEnabled()) {<a name="line.379"></a>
+<span class="sourceLineNo">380</span>          LOG.debug("Splittable=" + splittable + " " + this + " " + node.toShortString());<a name="line.380"></a>
+<span class="sourceLineNo">381</span>        }<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      } catch (IOException e) {<a name="line.382"></a>
+<span class="sourceLineNo">383</span>        splittableCheckIOE = e;<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      }<a name="line.384"></a>
+<span class="sourceLineNo">385</span>      if (!splittable) {<a name="line.385"></a>
+<span class="sourceLineNo">386</span>        IOException e = new IOException(parentHRI.getShortNameToLog() + " NOT splittable");<a name="line.386"></a>
+<span class="sourceLineNo">387</span>        if (splittableCheckIOE != null) e.initCause(splittableCheckIOE);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>        setFailure(e);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>        return false;<a name="line.389"></a>
+<span class="sourceLineNo">390</span>      }<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    }<a name="line.391"></a>
+<span class="sourceLineNo">392</span><a name="line.392"></a>
+<span class="sourceLineNo">393</span>    // Since we have the lock and the master is coordinating the operation<a name="line.393"></a>
+<span class="sourceLineNo">394</span>    // we are always able to split the region<a name="line.394"></a>
+<span class="sourceLineNo">395</span>    if (!env.getMasterServices().isSplitOrMergeEnabled(MasterSwitchType.SPLIT)) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>      LOG.warn("pid=" + getProcId() + " split switch is off! skip split of " + parentHRI);<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      setFailure(new IOException("Split region " +<a name="line.397"></a>
+<span class="sourceLineNo">398</span>          (parentHRI == null? "null": parentHRI.getRegionNameAsString()) +<a name="line.398"></a>
+<span class="sourceLineNo">399</span>          " failed due to split switch off"));<a name="line.399"></a>
+<span class="sourceLineNo">400</span>      return false;<a name="line.400"></a>
+<span class="sourceLineNo">401</span>    }<a name="line.401"></a>
+<span class="sourceLineNo">402</span>    return true;<a name="line.402"></a>
+<span class="sourceLineNo">403</span>  }<a name="line.403"></a>
+<span class="sourceLineNo">404</span><a name="line.404"></a>
+<span class="sourceLineNo">405</span>  /**<a name="line.405"></a>
+<span class="sourceLineNo">406</span>   * Action before splitting region in a table.<a name="line.406"></a>
+<span class="sourceLineNo">407</span>   * @param env MasterProcedureEnv<a name="line.407"></a>
+<span class="sourceLineNo">408</span>   * @throws IOException<a name="line.408"></a>
+<span class="sourceLineNo">409</span>   * @throws InterruptedException<a name="line.409"></a>
+<span class="sourceLineNo">410</span>   */<a name="line.410"></a>
+<span class="sourceLineNo">411</span>  private void preSplitRegion(final MasterProcedureEnv env)<a name="line.411"></a>
+<span class="sourceLineNo">412</span>      throws IOException, InterruptedException {<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    final MasterCoprocessorHost cpHost = env.getMasterCoprocessorHost();<a name="line.413"></a>
+<span class="sourceLineNo">414</span>    if (cpHost != null) {<a name="line.414"></a>
+<span class="sourceLineNo">415</span>      cpHost.preSplitRegionAction(getTableName(), getSplitRow(), getUser());<a name="line.415"></a>
+<span class="sourceLineNo">416</span>    }<a name="line.416"></a>
+<span class="sourceLineNo">417</span>  }<a name="line.417"></a>
+<span class="sourceLineNo">418</span><a name="line.418"></a>
+<span class="sourceLineNo">419</span>  /**<a name="line.419"></a>
+<span class="sourceLineNo">420</span>   * Action after rollback a split table region action.<a name="line.420"></a>
+<span class="sourceLineNo">421</span>   * @param env MasterProcedureEnv<a name="line.421"></a>
+<span class="sourceLineNo">422</span>   * @throws IOException<a name="line.422"></a>
+<span class="sourceLineNo">423</span>   */<a name="line.423"></a>
+<span class="sourceLineNo">424</span>  private void postRollBackSplitRegion(final MasterProcedureEnv env) throws IOException {<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    final MasterCoprocessorHost cpHost = env.getMasterCoprocessorHost();<a name="line.425"></a>
+<span class="sourceLineNo">426</span>    if (cpHost != null) {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>      cpHost.postRollBackSplitRegionAction(getUser());<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    }<a name="line.428"></a>
+<span class="sourceLineNo">429</span>  }<a name="line.429"></a>
+<span class="sourceLineNo">430</span><a name="line.430"></a>
+<span class="sourceLineNo">431</span>  /**<a name="line.431"></a>
+<span class="sourceLineNo">432</span>   * Rollback close parent region<a name="line.432"></a>
+<span class="sourceLineNo">433</span>   * @param env MasterProcedureEnv<a name="line.433"></a>
+<span class="sourceLineNo">434</span>   **/<a name="line.434"></a>
+<span class="sourceLineNo">435</span>  private void openParentRegion(final MasterProcedureEnv env) throws IOException {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    // Check whether the region is closed; if so, open it in the same server<a name="line.436"></a>
+<span class="sourceLineNo">437</span>    final int regionReplication = getRegionReplication(env);<a name="line.437"></a>
+<span class="sourceLineNo">438</span>    final ServerName serverName = getParentRegionServerName(env);<a name="line.438"></a>
+<span class="sourceLineNo">439</span><a name="line.439"></a>
+<span class="sourceLineNo">440</span>    final AssignProcedure[] procs = new AssignProcedure[regionReplication];<a name="line.440"></a>
+<span class="sourceLineNo">441</span>    for (int i = 0; i &lt; regionReplication; ++i) {<a name="line.441"></a>
+<span class="sourceLineNo">442</span>      final HRegionInfo hri = RegionReplicaUtil.getRegionInfoForReplica(getParentRegion(), i);<a name="line.442"></a>
+<span class="sourceLineNo">443</span>      procs[i] = env.getAssignmentManager().createAssignProcedure(hri, serverName);<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    }<a name="line.444"></a>
+<span class="sourceLineNo">445</span>    env.getMasterServices().getMasterProcedureExecutor().submitProcedures(procs);<a name="line.445"></a>
+<span class="sourceLineNo">446</span>  }<a name="line.446"></a>
+<span class="sourceLineNo">447</span><a name="line.447"></a>
+<span class="sourceLineNo">448</span>  /**<a name="line.448"></a>
+<span class="sourceLineNo">449</span>   * Create daughter regions<a name="line.449"></a>
+<span class="sourceLineNo">450</span>   * @param env MasterProcedureEnv<a name="line.450"></a>
+<span class="sourceLineNo">451</span>   * @throws IOException<a name="line.451"></a>
+<span class="sourceLineNo">452</span>   */<a name="line.452"></a>
+<span class="sourceLineNo">453</span>  @VisibleForTesting<a name="line.453"></a>
+<span class="sourceLineNo">454</span>  public void createDaughterRegions(final MasterProcedureEnv env) throws IOException {<a name="line.454"></a>
+<span class="sourceLineNo">455</span>    final MasterFileSystem mfs = env.getMasterServices().getMasterFileSystem();<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    final Path tabledir = FSUtils.getTableDir(mfs.getRootDir(), getTableName());<a name="line.456"></a>
+<span class="sourceLineNo">457</span>    final FileSystem fs = mfs.getFileSystem();<a name="line.457"></a>
+<span class="sourceLineNo">458</span>    HRegionFileSystem regionFs = HRegionFileSystem.openRegionFromFileSystem(<a name="line.458"></a>
+<span class="sourceLineNo">459</span>      env.getMasterConfiguration(), fs, tabledir, getParentRegion(), false);<a name="line.459"></a>
+<span class="sourceLineNo">460</span>    regionFs.createSplitsDir();<a name="line.460"></a>
+<span class="sourceLineNo">461</span><a name="line.461"></a>
+<span class="sourceLineNo">462</span>    Pair&lt;Integer, Integer&gt; expectedReferences = splitStoreFiles(env, regionFs);<a name="line.462"></a>
+<span class="sourceLineNo">463</span><a name="line.463"></a>
+<span class="sourceLineNo">464</span>    assertReferenceFileCount(fs, expectedReferences.getFirst(),<a name="line.464"></a>
+<span class="sourceLineNo">465</span>      regionFs.getSplitsDir(daughter_1_HRI));<a name="line.465"></a>
+<span class="sourceLineNo">466</span>    //Move the files from the temporary .splits to the final /table/region directory<a name="line.466"></a>
+<span class="sourceLineNo">467</span>    regionFs.commitDaughterRegion(daughter

<TRUNCATED>

[06/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependency-convergence.html b/hbase-archetypes/hbase-client-project/dependency-convergence.html
index 9686c70..31e766f 100644
--- a/hbase-archetypes/hbase-client-project/dependency-convergence.html
+++ b/hbase-archetypes/hbase-client-project/dependency-convergence.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>
@@ -129,10 +129,10 @@
 <td>33</td></tr>
 <tr class="b">
 <th>Number of dependencies (NOD):</th>
-<td>93</td></tr>
+<td>92</td></tr>
 <tr class="a">
 <th>Number of unique artifacts (NOA):</th>
-<td>94</td></tr>
+<td>93</td></tr>
 <tr class="b">
 <th>Number of SNAPSHOT artifacts (NOS):</th>
 <td>0</td></tr>
@@ -266,7 +266,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.3.1</td>
+<td width="25%">1.4</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-it">org.apache.hbase:hbase-it</a></li>
@@ -309,7 +309,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.4</td>
+<td width="25%">2.5</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -366,18 +366,6 @@
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-spark">org.apache.hbase:hbase-spark</a></li>
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
 <div class="section">
-<h4><a name="commons-net:commons-net"></a>commons-net:commons-net</h4>
-<table border="0" class="bodyTable">
-<tr class="b">
-<td><img alt="success" src="images/icon_success_sml.gif" /></td>
-<td>
-<table border="0" class="bodyTable">
-<tr class="a">
-<td width="25%">3.1</td>
-<td>
-<ol style="list-style-type: lower-alpha">
-<li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
-<div class="section">
 <h4><a name="io.dropwizard.metrics:metrics-core"></a>io.dropwizard.metrics:metrics-core</h4>
 <table border="0" class="bodyTable">
 <tr class="b">
@@ -385,7 +373,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.1.2</td>
+<td width="25%">3.2.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -416,7 +404,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.1.1.Final</td>
+<td width="25%">4.1.9.Final</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -444,7 +432,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.2.2</td>
+<td width="25%">2.2.12</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li></ol></td></tr></table></td></tr></table></div>
@@ -556,7 +544,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.6</td>
+<td width="25%">2.12.2</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">org.apache.hbase:hbase-external-blockcache</a></li></ol></td></tr></table></td></tr></table></div>
@@ -608,7 +596,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -620,7 +608,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -632,7 +620,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.11.0</td>
+<td width="25%">2.12.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1217,7 +1205,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.1.0-incubating</td>
+<td width="25%">3.2.0-incubating</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1235,7 +1223,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.5.2</td>
+<td width="25%">4.5.3</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1249,7 +1237,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">4.4.4</td>
+<td width="25%">4.4.6</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-assembly">org.apache.hbase:hbase-assembly</a></li>
@@ -1337,7 +1325,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">3.4.8</td>
+<td width="25%">3.4.9</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-client">org.apache.hbase:hbase-client</a></li>
@@ -1492,7 +1480,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">2.22.2</td>
+<td width="25%">2.25.1</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-rest">org.apache.hbase:hbase-rest</a></li>
@@ -1568,7 +1556,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">9.1.9.0</td>
+<td width="25%">9.1.10.0</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-shell">org.apache.hbase:hbase-shell</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1580,7 +1568,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.10.8</td>
+<td width="25%">1.10.19</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">org.apache.hbase:hbase-annotations</a></li>
@@ -1660,7 +1648,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">org.apache.hbase:hbase-thrift</a></li></ol></td></tr></table></td></tr></table></div>
@@ -1672,7 +1660,7 @@
 <td>
 <table border="0" class="bodyTable">
 <tr class="a">
-<td width="25%">1.7.7</td>
+<td width="25%">1.7.24</td>
 <td>
 <ol style="list-style-type: lower-alpha">
 <li><a class="externalLink" href="http://hbase.apache.org/hbase-testing-util">org.apache.hbase:hbase-testing-util</a></li></ol></td></tr></table></td></tr></table></div></div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependency-info.html b/hbase-archetypes/hbase-client-project/dependency-info.html
index 005fe25..603a38c 100644
--- a/hbase-archetypes/hbase-client-project/dependency-info.html
+++ b/hbase-archetypes/hbase-client-project/dependency-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/dependency-management.html b/hbase-archetypes/hbase-client-project/dependency-management.html
index eb19e0b..05e11fb 100644
--- a/hbase-archetypes/hbase-client-project/dependency-management.html
+++ b/hbase-archetypes/hbase-client-project/dependency-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>
@@ -149,9 +149,9 @@
 <tr class="b">
 <td>commons-cli</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-cli/">commons-cli</a></td>
-<td>1.3.1</td>
+<td>1.4</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-codec</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-codec/">commons-codec</a></td>
@@ -166,10 +166,10 @@
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="a">
 <td>commons-io</td>
-<td><a class="externalLink" href="http://commons.apache.org/io/">commons-io</a></td>
-<td>2.4</td>
+<td><a class="externalLink" href="http://commons.apache.org/proper/commons-io/">commons-io</a></td>
+<td>2.5</td>
 <td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
 <tr class="b">
 <td>commons-lang</td>
 <td><a class="externalLink" href="http://commons.apache.org/lang/">commons-lang</a></td>
@@ -183,411 +183,405 @@
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
 <tr class="b">
-<td>commons-net</td>
-<td><a class="externalLink" href="http://commons.apache.org/net/">commons-net</a></td>
-<td>3.1</td>
-<td>jar</td>
-<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
 <td>io.dropwizard.metrics</td>
 <td><a class="externalLink" href="http://metrics.codahale.com/metrics-core/">metrics-core</a></td>
-<td>3.1.2</td>
+<td>3.2.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache License 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>io.netty</td>
 <td><a class="externalLink" href="http://netty.io/netty-all/">netty-all</a></td>
-<td>4.1.1.Final</td>
+<td>4.1.9.Final</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>javax.servlet</td>
 <td><a class="externalLink" href="http://servlet-spec.java.net">javax.servlet-api</a></td>
 <td>3.1.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html">CDDL + GPLv2 with classpath exception</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>javax.xml.bind</td>
-<td><a class="externalLink" href="https://jaxb.dev.java.net/">jaxb-api</a></td>
-<td>2.2.2</td>
+<td><a class="externalLink" href="http://jaxb.java.net/">jaxb-api</a></td>
+<td>2.2.12</td>
 <td>jar</td>
-<td><a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
-<tr class="a">
+<td><a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL 1.1</a>, <a class="externalLink" href="https://glassfish.java.net/public/CDDL+GPL_1_1.html">GPL2 w/ CPE</a></td></tr>
+<tr class="b">
 <td>junit</td>
 <td><a class="externalLink" href="http://junit.org">junit</a></td>
 <td>4.12</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">Eclipse Public License 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>log4j</td>
 <td><a class="externalLink" href="http://logging.apache.org/log4j/1.2/">log4j</a></td>
 <td>1.2.17</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>net.spy</td>
 <td><a class="externalLink" href="http://www.couchbase.org/code/couchbase/java">spymemcached</a></td>
-<td>2.11.6</td>
+<td>2.12.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/proper/commons-crypto/">commons-crypto</a></td>
 <td>1.0.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.commons</td>
 <td><a class="externalLink" href="http://commons.apache.org/math/">commons-math</a></td>
 <td>2.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-client">curator-client</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-framework">curator-framework</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.curator</td>
 <td><a class="externalLink" href="http://curator.apache.org/curator-recipes">curator-recipes</a></td>
-<td>2.11.0</td>
+<td>2.12.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-auth</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-client</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-common</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-hdfs</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-core</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hadoop</td>
 <td>hadoop-mapreduce-client-jobclient</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hadoop</td>
 <td>hadoop-minicluster</td>
 <td>2.7.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-annotations">hbase-annotations</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-client">hbase-client</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-common">hbase-common</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-endpoint">hbase-endpoint</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-examples">hbase-examples</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-external-blockcache">hbase-external-blockcache</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop-compat">hbase-hadoop-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-hadoop2-compat">hbase-hadoop2-compat</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics">hbase-metrics</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-metrics-api">hbase-metrics-api</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-procedure">hbase-procedure</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>test-jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol">hbase-protocol</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-protocol-shaded">hbase-protocol-shaded</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-rsgroup">hbase-rsgroup</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-server">hbase-server</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-shell">hbase-shell</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.hbase</td>
 <td><a class="externalLink" href="http://hbase.apache.org/hbase-thrift">hbase-thrift</a></td>
 <td>3.0.0-SNAPSHOT</td>
 <td>jar</td>
 <td><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.htrace</td>
 <td><a class="externalLink" href="http://incubator.apache.org/projects/htrace.html">htrace-core</a></td>
-<td>3.1.0-incubating</td>
+<td>3.2.0-incubating</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-client">httpclient</a></td>
-<td>4.5.2</td>
+<td>4.5.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.httpcomponents</td>
 <td><a class="externalLink" href="http://hc.apache.org/httpcomponents-core-ga">httpcore</a></td>
-<td>4.4.4</td>
+<td>4.4.6</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-client">kerb-client</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.kerby</td>
 <td><a class="externalLink" href="http://directory.apache.org/kerby/kerby-kerb/kerb-simplekdc">kerb-simplekdc</a></td>
 <td>1.0.0-RC2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.apache.thrift</td>
 <td><a class="externalLink" href="http://thrift.apache.org">libthrift</a></td>
 <td>0.9.3</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.apache.zookeeper</td>
 <td>zookeeper</td>
-<td>3.4.8</td>
+<td>3.4.9</td>
 <td>jar</td>
-<td>-</td></tr>
-<tr class="b">
+<td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-core-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-jaxrs</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-mapper-asl</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.codehaus.jackson</td>
 <td><a class="externalLink" href="http://jackson.codehaus.org">jackson-xc</a></td>
 <td>1.9.13</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0.txt">The Apache Software License, Version 2.0</a>, <a class="externalLink" href="http://www.fsf.org/licensing/licenses/lgpl.txt">GNU Lesser General Public License (LGPL), Version 2.1</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.codehaus.jettison</td>
-<td><a class="externalLink" href="http://codehaus.org/jettison/">jettison</a></td>
-<td>1.3.3</td>
+<td><a class="externalLink" href="https://github.com/jettison-json/jettison">jettison</a></td>
+<td>1.3.8</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jsp</a></td>
 <td>9.2.19.v20160908</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
 <td>9.3.8.v20160314</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.glassfish.jersey.containers</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-container-servlet-core/">jersey-container-servlet-core</a></td>
-<td>2.22.2</td>
+<td>2.25.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.glassfish.jersey.media</td>
 <td><a class="externalLink" href="https://jersey.java.net/project/jersey-media-json-jackson1/">jersey-media-json-jackson1</a></td>
 <td>2.23.2</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://glassfish.java.net/public/CDDL+GPL_1_1.html">CDDL+GPL License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jamon</td>
 <td><a class="externalLink" href="http://www.jamon.org/jamon-java-parent/jamon-runtime/">jamon-runtime</a></td>
 <td>2.4.1</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.mozilla.org/MPL/2.0">Mozilla Public License Version 2.0</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby</td>
 <td><a class="externalLink" href="https://github.com/jruby/jruby/jruby-artifacts/jruby-complete">jruby-complete</a></td>
-<td>9.1.9.0</td>
+<td>9.1.10.0</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.gnu.org/licenses/gpl-2.0-standalone.html">GPL 2</a>, <a class="externalLink" href="http://www.gnu.org/licenses/lgpl-2.1-standalone.html">LGPL 2.1</a>, <a class="externalLink" href="http://www.eclipse.org/legal/epl-v10.html">EPL</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.jruby.jcodings</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/jcodings">jcodings</a></td>
 <td>1.0.18</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="b">
+<tr class="a">
 <td>org.jruby.joni</td>
 <td><a class="externalLink" href="http://nexus.sonatype.org/oss-repository-hosting.html/joni">joni</a></td>
 <td>2.1.11</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr>
-<tr class="a">
+<tr class="b">
 <td>org.slf4j</td>
 <td><a class="externalLink" href="http://www.slf4j.org">slf4j-api</a></td>
-<td>1.7.7</td>
+<td>1.7.24</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.opensource.org/licenses/mit-license.php">MIT License</a></td></tr></table></div>
 <div class="section">
@@ -715,7 +709,7 @@
 <tr class="b">
 <td>org.mockito</td>
 <td><a class="externalLink" href="http://www.mockito.org">mockito-all</a></td>
-<td>1.10.8</td>
+<td>1.10.19</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://github.com/mockito/mockito/blob/master/LICENSE">The MIT License</a></td></tr></table></div></div>
       </div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/index.html b/hbase-archetypes/hbase-client-project/index.html
index a765d1a..18b9363 100644
--- a/hbase-archetypes/hbase-client-project/index.html
+++ b/hbase-archetypes/hbase-client-project/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/integration.html b/hbase-archetypes/hbase-client-project/integration.html
index ed8cf7e..1f3d399 100644
--- a/hbase-archetypes/hbase-client-project/integration.html
+++ b/hbase-archetypes/hbase-client-project/integration.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/issue-tracking.html b/hbase-archetypes/hbase-client-project/issue-tracking.html
index 0e35860..b6b417d 100644
--- a/hbase-archetypes/hbase-client-project/issue-tracking.html
+++ b/hbase-archetypes/hbase-client-project/issue-tracking.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/license.html b/hbase-archetypes/hbase-client-project/license.html
index 99e6aeb..4670955 100644
--- a/hbase-archetypes/hbase-client-project/license.html
+++ b/hbase-archetypes/hbase-client-project/license.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/mail-lists.html b/hbase-archetypes/hbase-client-project/mail-lists.html
index c876409..81bf405 100644
--- a/hbase-archetypes/hbase-client-project/mail-lists.html
+++ b/hbase-archetypes/hbase-client-project/mail-lists.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/plugin-management.html b/hbase-archetypes/hbase-client-project/plugin-management.html
index 7afaa68..5affe7c 100644
--- a/hbase-archetypes/hbase-client-project/plugin-management.html
+++ b/hbase-archetypes/hbase-client-project/plugin-management.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/plugins.html b/hbase-archetypes/hbase-client-project/plugins.html
index 8d27486..b8ed82f 100644
--- a/hbase-archetypes/hbase-client-project/plugins.html
+++ b/hbase-archetypes/hbase-client-project/plugins.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/project-info.html b/hbase-archetypes/hbase-client-project/project-info.html
index 7e2acb6..d0d9531 100644
--- a/hbase-archetypes/hbase-client-project/project-info.html
+++ b/hbase-archetypes/hbase-client-project/project-info.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/project-reports.html b/hbase-archetypes/hbase-client-project/project-reports.html
index 403e314..a3b8a03 100644
--- a/hbase-archetypes/hbase-client-project/project-reports.html
+++ b/hbase-archetypes/hbase-client-project/project-reports.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/project-summary.html b/hbase-archetypes/hbase-client-project/project-summary.html
index d6ebc6a..9b83d49 100644
--- a/hbase-archetypes/hbase-client-project/project-summary.html
+++ b/hbase-archetypes/hbase-client-project/project-summary.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/source-repository.html b/hbase-archetypes/hbase-client-project/source-repository.html
index 173407a..b6651fc 100644
--- a/hbase-archetypes/hbase-client-project/source-repository.html
+++ b/hbase-archetypes/hbase-client-project/source-repository.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-client-project/team-list.html b/hbase-archetypes/hbase-client-project/team-list.html
index 19583f7..33f12be 100644
--- a/hbase-archetypes/hbase-client-project/team-list.html
+++ b/hbase-archetypes/hbase-client-project/team-list.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-client archetype">Apache HBase - Exemplar for hbase-client archetype</a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-archetypes/hbase-shaded-client-project/checkstyle.html b/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
index 499983a..7278c0b 100644
--- a/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
+++ b/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-15 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.6 at 2017-06-16 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -10,7 +10,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20170615" />
+    <meta name="Date-Revision-yyyymmdd" content="20170616" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -27,7 +27,7 @@
             
                     
                 <div class="xleft">
-        <span id="publishDate">Last Published: 2017-06-15</span>
+        <span id="publishDate">Last Published: 2017-06-16</span>
                   &nbsp;| <span id="projectVersion">Version: 3.0.0-SNAPSHOT</span>
                       </div>
             <div class="xright">                    <a href="./" title="Apache HBase - Exemplar for hbase-shaded-client archetype">Apache HBase - Exemplar for hbase-shaded-client archetype</a>


[36/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/security/SaslChallengeDecoder.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/SaslChallengeDecoder.html b/devapidocs/org/apache/hadoop/hbase/security/SaslChallengeDecoder.html
index 6bea0b2..c763123 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/SaslChallengeDecoder.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/SaslChallengeDecoder.html
@@ -253,7 +253,7 @@ extends io.netty.handler.codec.ByteToMessageDecoder</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerAdded, isSharable</code></li>
+<code>ensureNotSharable, handlerAdded, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/security/SaslUnwrapHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/SaslUnwrapHandler.html b/devapidocs/org/apache/hadoop/hbase/security/SaslUnwrapHandler.html
index 02a71cb..c49c14f 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/SaslUnwrapHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/SaslUnwrapHandler.html
@@ -231,7 +231,7 @@ extends io.netty.channel.SimpleChannelInboundHandler&lt;io.netty.buffer.ByteBuf&
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>handlerAdded, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, handlerAdded, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/security/SaslWrapHandler.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/SaslWrapHandler.html b/devapidocs/org/apache/hadoop/hbase/security/SaslWrapHandler.html
index 6e9d95a..ccdd4b0 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/SaslWrapHandler.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/SaslWrapHandler.html
@@ -232,7 +232,7 @@ extends io.netty.channel.ChannelOutboundHandlerAdapter</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;io.netty.channel.ChannelHandlerAdapter</h3>
-<code>exceptionCaught, handlerRemoved, isSharable</code></li>
+<code>ensureNotSharable, exceptionCaught, handlerRemoved, isSharable</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
index 66b8b75..1a1b294 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -136,9 +136,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
index 7c3df5f..09974e8 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -191,8 +191,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
index f730cd8..add0140 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html
@@ -411,148 +411,148 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.129">m_frags__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_deadServers">
+<a name="m_filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_deadServers</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.141">m_deadServers</a></pre>
+<h4>m_filter</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.141">m_filter</a></pre>
 </li>
 </ul>
-<a name="m_deadServers__IsNotDefault">
+<a name="m_filter__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_deadServers__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.146">m_deadServers__IsNotDefault</a></pre>
+<h4>m_filter__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.146">m_filter__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_assignmentManager">
+<a name="m_serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_assignmentManager</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.158">m_assignmentManager</a></pre>
+<h4>m_serverManager</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.158">m_serverManager</a></pre>
 </li>
 </ul>
-<a name="m_assignmentManager__IsNotDefault">
+<a name="m_serverManager__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_assignmentManager__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.163">m_assignmentManager__IsNotDefault</a></pre>
+<h4>m_serverManager__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.163">m_serverManager__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_format">
+<a name="m_catalogJanitorEnabled">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.175">m_format</a></pre>
+<h4>m_catalogJanitorEnabled</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.175">m_catalogJanitorEnabled</a></pre>
 </li>
 </ul>
-<a name="m_format__IsNotDefault">
+<a name="m_catalogJanitorEnabled__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_format__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.180">m_format__IsNotDefault</a></pre>
+<h4>m_catalogJanitorEnabled__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.180">m_catalogJanitorEnabled__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_filter">
+<a name="m_deadServers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.192">m_filter</a></pre>
+<h4>m_deadServers</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.192">m_deadServers</a></pre>
 </li>
 </ul>
-<a name="m_filter__IsNotDefault">
+<a name="m_deadServers__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.197">m_filter__IsNotDefault</a></pre>
+<h4>m_deadServers__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.197">m_deadServers__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_metaLocation">
+<a name="m_format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_metaLocation</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.209">m_metaLocation</a></pre>
+<h4>m_format</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.209">m_format</a></pre>
 </li>
 </ul>
-<a name="m_metaLocation__IsNotDefault">
+<a name="m_format__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_metaLocation__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.214">m_metaLocation__IsNotDefault</a></pre>
+<h4>m_format__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.214">m_format__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_serverManager">
+<a name="m_metaLocation">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_serverManager</h4>
-<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.226">m_serverManager</a></pre>
+<h4>m_metaLocation</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.226">m_metaLocation</a></pre>
 </li>
 </ul>
-<a name="m_serverManager__IsNotDefault">
+<a name="m_metaLocation__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_serverManager__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.231">m_serverManager__IsNotDefault</a></pre>
+<h4>m_metaLocation__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.231">m_metaLocation__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_catalogJanitorEnabled">
+<a name="m_servers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_catalogJanitorEnabled</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.243">m_catalogJanitorEnabled</a></pre>
+<h4>m_servers</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.243">m_servers</a></pre>
 </li>
 </ul>
-<a name="m_catalogJanitorEnabled__IsNotDefault">
+<a name="m_servers__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_catalogJanitorEnabled__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.248">m_catalogJanitorEnabled__IsNotDefault</a></pre>
+<h4>m_servers__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.248">m_servers__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_servers">
+<a name="m_assignmentManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_servers</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.260">m_servers</a></pre>
+<h4>m_assignmentManager</h4>
+<pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.260">m_assignmentManager</a></pre>
 </li>
 </ul>
-<a name="m_servers__IsNotDefault">
+<a name="m_assignmentManager__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>m_servers__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.265">m_servers__IsNotDefault</a></pre>
+<h4>m_assignmentManager__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.265">m_assignmentManager__IsNotDefault</a></pre>
 </li>
 </ul>
 </li>
@@ -625,220 +625,220 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.125">getFrags__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setDeadServers-java.util.Set-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setDeadServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.131">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;deadServers)</pre>
+<h4>setFilter</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.131">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
 </li>
 </ul>
-<a name="getDeadServers--">
+<a name="getFilter--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getDeadServers</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.137">getDeadServers</a>()</pre>
+<h4>getFilter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.137">getFilter</a>()</pre>
 </li>
 </ul>
-<a name="getDeadServers__IsNotDefault--">
+<a name="getFilter__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getDeadServers__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.142">getDeadServers__IsNotDefault</a>()</pre>
+<h4>getFilter__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.142">getFilter__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setAssignmentManager-org.apache.hadoop.hbase.master.assignment.AssignmentManager-">
+<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setAssignmentManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.148">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;assignmentManager)</pre>
+<h4>setServerManager</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.148">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;serverManager)</pre>
 </li>
 </ul>
-<a name="getAssignmentManager--">
+<a name="getServerManager--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getAssignmentManager</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.154">getAssignmentManager</a>()</pre>
+<h4>getServerManager</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.154">getServerManager</a>()</pre>
 </li>
 </ul>
-<a name="getAssignmentManager__IsNotDefault--">
+<a name="getServerManager__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getAssignmentManager__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.159">getAssignmentManager__IsNotDefault</a>()</pre>
+<h4>getServerManager__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.159">getServerManager__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setCatalogJanitorEnabled-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.165">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
+<h4>setCatalogJanitorEnabled</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.165">setCatalogJanitorEnabled</a>(boolean&nbsp;catalogJanitorEnabled)</pre>
 </li>
 </ul>
-<a name="getFormat--">
+<a name="getCatalogJanitorEnabled--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.171">getFormat</a>()</pre>
+<h4>getCatalogJanitorEnabled</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.171">getCatalogJanitorEnabled</a>()</pre>
 </li>
 </ul>
-<a name="getFormat__IsNotDefault--">
+<a name="getCatalogJanitorEnabled__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFormat__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.176">getFormat__IsNotDefault</a>()</pre>
+<h4>getCatalogJanitorEnabled__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.176">getCatalogJanitorEnabled__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setDeadServers-java.util.Set-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.182">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
+<h4>setDeadServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.182">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;deadServers)</pre>
 </li>
 </ul>
-<a name="getFilter--">
+<a name="getDeadServers--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.188">getFilter</a>()</pre>
+<h4>getDeadServers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.188">getDeadServers</a>()</pre>
 </li>
 </ul>
-<a name="getFilter__IsNotDefault--">
+<a name="getDeadServers__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.193">getFilter__IsNotDefault</a>()</pre>
+<h4>getDeadServers__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.193">getDeadServers__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setMetaLocation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.199">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;metaLocation)</pre>
+<h4>setFormat</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.199">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format)</pre>
 </li>
 </ul>
-<a name="getMetaLocation--">
+<a name="getFormat--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getMetaLocation</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.205">getMetaLocation</a>()</pre>
+<h4>getFormat</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.205">getFormat</a>()</pre>
 </li>
 </ul>
-<a name="getMetaLocation__IsNotDefault--">
+<a name="getFormat__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getMetaLocation__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.210">getMetaLocation__IsNotDefault</a>()</pre>
+<h4>getFormat__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.210">getFormat__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
+<a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServerManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.216">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;serverManager)</pre>
+<h4>setMetaLocation</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.216">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;metaLocation)</pre>
 </li>
 </ul>
-<a name="getServerManager--">
+<a name="getMetaLocation--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServerManager</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.222">getServerManager</a>()</pre>
+<h4>getMetaLocation</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.222">getMetaLocation</a>()</pre>
 </li>
 </ul>
-<a name="getServerManager__IsNotDefault--">
+<a name="getMetaLocation__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServerManager__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.227">getServerManager__IsNotDefault</a>()</pre>
+<h4>getMetaLocation__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.227">getMetaLocation__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setCatalogJanitorEnabled-boolean-">
+<a name="setServers-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setCatalogJanitorEnabled</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.233">setCatalogJanitorEnabled</a>(boolean&nbsp;catalogJanitorEnabled)</pre>
+<h4>setServers</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.233">setServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers)</pre>
 </li>
 </ul>
-<a name="getCatalogJanitorEnabled--">
+<a name="getServers--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getCatalogJanitorEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.239">getCatalogJanitorEnabled</a>()</pre>
+<h4>getServers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.239">getServers</a>()</pre>
 </li>
 </ul>
-<a name="getCatalogJanitorEnabled__IsNotDefault--">
+<a name="getServers__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getCatalogJanitorEnabled__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.244">getCatalogJanitorEnabled__IsNotDefault</a>()</pre>
+<h4>getServers__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.244">getServers__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setServers-java.util.List-">
+<a name="setAssignmentManager-org.apache.hadoop.hbase.master.assignment.AssignmentManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServers</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.250">setServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers)</pre>
+<h4>setAssignmentManager</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.250">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;assignmentManager)</pre>
 </li>
 </ul>
-<a name="getServers--">
+<a name="getAssignmentManager--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getServers</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.256">getServers</a>()</pre>
+<h4>getAssignmentManager</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.256">getAssignmentManager</a>()</pre>
 </li>
 </ul>
-<a name="getServers__IsNotDefault--">
+<a name="getAssignmentManager__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>getServers__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.261">getServers__IsNotDefault</a>()</pre>
+<h4>getAssignmentManager__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.ImplData.html#line.261">getAssignmentManager__IsNotDefault</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
index c720f19..6b965e9 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html
@@ -346,76 +346,76 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.277">frags</a></pre>
 </li>
 </ul>
-<a name="deadServers">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>deadServers</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.284">deadServers</a></pre>
+<h4>filter</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.284">filter</a></pre>
 </li>
 </ul>
-<a name="assignmentManager">
+<a name="serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>assignmentManager</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.291">assignmentManager</a></pre>
+<h4>serverManager</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.291">serverManager</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="catalogJanitorEnabled">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.298">format</a></pre>
+<h4>catalogJanitorEnabled</h4>
+<pre>protected&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.298">catalogJanitorEnabled</a></pre>
 </li>
 </ul>
-<a name="filter">
+<a name="deadServers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>filter</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.305">filter</a></pre>
+<h4>deadServers</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.305">deadServers</a></pre>
 </li>
 </ul>
-<a name="metaLocation">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>metaLocation</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.312">metaLocation</a></pre>
+<h4>format</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.312">format</a></pre>
 </li>
 </ul>
-<a name="serverManager">
+<a name="metaLocation">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>serverManager</h4>
-<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.319">serverManager</a></pre>
+<h4>metaLocation</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.319">metaLocation</a></pre>
 </li>
 </ul>
-<a name="catalogJanitorEnabled">
+<a name="servers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>catalogJanitorEnabled</h4>
-<pre>protected&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.326">catalogJanitorEnabled</a></pre>
+<h4>servers</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.326">servers</a></pre>
 </li>
 </ul>
-<a name="servers">
+<a name="assignmentManager">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>servers</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.333">servers</a></pre>
+<h4>assignmentManager</h4>
+<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.333">assignmentManager</a></pre>
 </li>
 </ul>
 </li>
@@ -496,76 +496,76 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.278">setFrags</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;p_frags)</pre>
 </li>
 </ul>
-<a name="setDeadServers-java.util.Set-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setDeadServers</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.285">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_deadServers)</pre>
+<h4>setFilter</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.285">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
 </li>
 </ul>
-<a name="setAssignmentManager-org.apache.hadoop.hbase.master.assignment.AssignmentManager-">
+<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setAssignmentManager</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.292">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;p_assignmentManager)</pre>
+<h4>setServerManager</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.292">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;p_serverManager)</pre>
 </li>
 </ul>
-<a name="setFormat-java.lang.String-">
+<a name="setCatalogJanitorEnabled-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFormat</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.299">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
+<h4>setCatalogJanitorEnabled</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.299">setCatalogJanitorEnabled</a>(boolean&nbsp;p_catalogJanitorEnabled)</pre>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setDeadServers-java.util.Set-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.306">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
+<h4>setDeadServers</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.306">setDeadServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_deadServers)</pre>
 </li>
 </ul>
-<a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">
+<a name="setFormat-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setMetaLocation</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.313">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;p_metaLocation)</pre>
+<h4>setFormat</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.313">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
 </li>
 </ul>
-<a name="setServerManager-org.apache.hadoop.hbase.master.ServerManager-">
+<a name="setMetaLocation-org.apache.hadoop.hbase.ServerName-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServerManager</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.320">setServerManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a>&nbsp;p_serverManager)</pre>
+<h4>setMetaLocation</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.320">setMetaLocation</a>(<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;p_metaLocation)</pre>
 </li>
 </ul>
-<a name="setCatalogJanitorEnabled-boolean-">
+<a name="setServers-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setCatalogJanitorEnabled</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.327">setCatalogJanitorEnabled</a>(boolean&nbsp;p_catalogJanitorEnabled)</pre>
+<h4>setServers</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.327">setServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_servers)</pre>
 </li>
 </ul>
-<a name="setServers-java.util.List-">
+<a name="setAssignmentManager-org.apache.hadoop.hbase.master.assignment.AssignmentManager-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setServers</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.334">setServers</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;p_servers)</pre>
+<h4>setAssignmentManager</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.master">MasterStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.html#line.334">setAssignmentManager</a>(<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a>&nbsp;p_assignmentManager)</pre>
 </li>
 </ul>
 <a name="constructImpl-java.lang.Class-">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
index 94b7f51..d2c4a48 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html
@@ -287,76 +287,76 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/master/Master
 <pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.65">frags</a></pre>
 </li>
 </ul>
-<a name="deadServers">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>deadServers</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.66">deadServers</a></pre>
+<h4>filter</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.66">filter</a></pre>
 </li>
 </ul>
-<a name="assignmentManager">
+<a name="serverManager">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>assignmentManager</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.67">assignmentManager</a></pre>
+<h4>serverManager</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.67">serverManager</a></pre>
 </li>
 </ul>
-<a name="format">
+<a name="catalogJanitorEnabled">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>format</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.68">format</a></pre>
+<h4>catalogJanitorEnabled</h4>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.68">catalogJanitorEnabled</a></pre>
 </li>
 </ul>
-<a name="filter">
+<a name="deadServers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>filter</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.69">filter</a></pre>
+<h4>deadServers</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.69">deadServers</a></pre>
 </li>
 </ul>
-<a name="metaLocation">
+<a name="format">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>metaLocation</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.70">metaLocation</a></pre>
+<h4>format</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.70">format</a></pre>
 </li>
 </ul>
-<a name="serverManager">
+<a name="metaLocation">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>serverManager</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.71">serverManager</a></pre>
+<h4>metaLocation</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.71">metaLocation</a></pre>
 </li>
 </ul>
-<a name="catalogJanitorEnabled">
+<a name="servers">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>catalogJanitorEnabled</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.72">catalogJanitorEnabled</a></pre>
+<h4>servers</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.72">servers</a></pre>
 </li>
 </ul>
-<a name="servers">
+<a name="assignmentManager">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>servers</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.73">servers</a></pre>
+<h4>assignmentManager</h4>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmplImpl.html#line.73">assignmentManager</a></pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
index bbd47e9..520486b 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html
@@ -293,22 +293,22 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>private&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.71">m_regionServer</a></pre>
 </li>
 </ul>
-<a name="m_bcn">
+<a name="m_bcv">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_bcn</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.83">m_bcn</a></pre>
+<h4>m_bcv</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.83">m_bcv</a></pre>
 </li>
 </ul>
-<a name="m_bcn__IsNotDefault">
+<a name="m_bcv__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_bcn__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.88">m_bcn__IsNotDefault</a></pre>
+<h4>m_bcv__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.88">m_bcv__IsNotDefault</a></pre>
 </li>
 </ul>
 <a name="m_format">
@@ -329,40 +329,40 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.105">m_format__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_bcv">
+<a name="m_filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_bcv</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.117">m_bcv</a></pre>
+<h4>m_filter</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.117">m_filter</a></pre>
 </li>
 </ul>
-<a name="m_bcv__IsNotDefault">
+<a name="m_filter__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_bcv__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.122">m_bcv__IsNotDefault</a></pre>
+<h4>m_filter__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.122">m_filter__IsNotDefault</a></pre>
 </li>
 </ul>
-<a name="m_filter">
+<a name="m_bcn">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>m_filter</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.134">m_filter</a></pre>
+<h4>m_bcn</h4>
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.134">m_bcn</a></pre>
 </li>
 </ul>
-<a name="m_filter__IsNotDefault">
+<a name="m_bcn__IsNotDefault">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>m_filter__IsNotDefault</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.139">m_filter__IsNotDefault</a></pre>
+<h4>m_bcn__IsNotDefault</h4>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.139">m_bcn__IsNotDefault</a></pre>
 </li>
 </ul>
 </li>
@@ -408,31 +408,31 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.67">getRegionServer</a>()</pre>
 </li>
 </ul>
-<a name="setBcn-java.lang.String-">
+<a name="setBcv-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setBcn</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.73">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bcn)</pre>
+<h4>setBcv</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.73">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bcv)</pre>
 </li>
 </ul>
-<a name="getBcn--">
+<a name="getBcv--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getBcn</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.79">getBcn</a>()</pre>
+<h4>getBcv</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.79">getBcv</a>()</pre>
 </li>
 </ul>
-<a name="getBcn__IsNotDefault--">
+<a name="getBcv__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getBcn__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.84">getBcn__IsNotDefault</a>()</pre>
+<h4>getBcv__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.84">getBcv__IsNotDefault</a>()</pre>
 </li>
 </ul>
 <a name="setFormat-java.lang.String-">
@@ -462,58 +462,58 @@ extends org.jamon.AbstractTemplateProxy.ImplData</pre>
 <pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.101">getFormat__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setBcv-java.lang.String-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setBcv</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.107">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bcv)</pre>
+<h4>setFilter</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.107">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
 </li>
 </ul>
-<a name="getBcv--">
+<a name="getFilter--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getBcv</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.113">getBcv</a>()</pre>
+<h4>getFilter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.113">getFilter</a>()</pre>
 </li>
 </ul>
-<a name="getBcv__IsNotDefault--">
+<a name="getFilter__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getBcv__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.118">getBcv__IsNotDefault</a>()</pre>
+<h4>getFilter__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.118">getFilter__IsNotDefault</a>()</pre>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setBcn-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.124">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter)</pre>
+<h4>setBcn</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.124">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;bcn)</pre>
 </li>
 </ul>
-<a name="getFilter--">
+<a name="getBcn--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getFilter</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.130">getFilter</a>()</pre>
+<h4>getBcn</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.130">getBcn</a>()</pre>
 </li>
 </ul>
-<a name="getFilter__IsNotDefault--">
+<a name="getBcn__IsNotDefault--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>getFilter__IsNotDefault</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.135">getFilter__IsNotDefault</a>()</pre>
+<h4>getBcn__IsNotDefault</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.ImplData.html#line.135">getBcn__IsNotDefault</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
index 5b920d7..5811474 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html
@@ -297,13 +297,13 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="bcn">
+<a name="bcv">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>bcn</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.151">bcn</a></pre>
+<h4>bcv</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.151">bcv</a></pre>
 </li>
 </ul>
 <a name="format">
@@ -315,22 +315,22 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.158">format</a></pre>
 </li>
 </ul>
-<a name="bcv">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>bcv</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.165">bcv</a></pre>
+<h4>filter</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.165">filter</a></pre>
 </li>
 </ul>
-<a name="filter">
+<a name="bcn">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>filter</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.172">filter</a></pre>
+<h4>bcn</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.172">bcn</a></pre>
 </li>
 </ul>
 </li>
@@ -402,13 +402,13 @@ extends org.jamon.AbstractTemplateProxy</pre>
 </dl>
 </li>
 </ul>
-<a name="setBcn-java.lang.String-">
+<a name="setBcv-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setBcn</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.152">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_bcn)</pre>
+<h4>setBcv</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.152">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_bcv)</pre>
 </li>
 </ul>
 <a name="setFormat-java.lang.String-">
@@ -420,22 +420,22 @@ extends org.jamon.AbstractTemplateProxy</pre>
 <pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.159">setFormat</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_format)</pre>
 </li>
 </ul>
-<a name="setBcv-java.lang.String-">
+<a name="setFilter-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setBcv</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.166">setBcv</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_bcv)</pre>
+<h4>setFilter</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.166">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
 </li>
 </ul>
-<a name="setFilter-java.lang.String-">
+<a name="setBcn-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>setFilter</h4>
-<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.173">setFilter</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_filter)</pre>
+<h4>setBcn</h4>
+<pre>public final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html" title="class in org.apache.hadoop.hbase.tmpl.regionserver">RSStatusTmpl</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmpl.html#line.173">setBcn</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;p_bcn)</pre>
 </li>
 </ul>
 <a name="constructImpl-java.lang.Class-">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
index e1c1964..c824183 100644
--- a/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html
@@ -238,13 +238,13 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.28">regionServer</a></pre>
 </li>
 </ul>
-<a name="bcn">
+<a name="bcv">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>bcn</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.29">bcn</a></pre>
+<h4>bcv</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.29">bcv</a></pre>
 </li>
 </ul>
 <a name="format">
@@ -256,22 +256,22 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/tmpl/regionserver/
 <pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.30">format</a></pre>
 </li>
 </ul>
-<a name="bcv">
+<a name="filter">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>bcv</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.31">bcv</a></pre>
+<h4>filter</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.31">filter</a></pre>
 </li>
 </ul>
-<a name="filter">
+<a name="bcn">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>filter</h4>
-<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.32">filter</a></pre>
+<h4>bcn</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/tmpl/regionserver/RSStatusTmplImpl.html#line.32">bcn</a></pre>
 </li>
 </ul>
 </li>


[23/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
index 959e3ef..ac32645 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.RowLockImpl.html
@@ -1401,6821 +1401,6830 @@
 <span class="sourceLineNo">1393</span>  @Override<a name="line.1393"></a>
 <span class="sourceLineNo">1394</span>  public boolean isSplittable() {<a name="line.1394"></a>
 <span class="sourceLineNo">1395</span>    boolean result = isAvailable() &amp;&amp; !hasReferences();<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result, new Throwable("LOGGING"));<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    return result;<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  }<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span><a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  @Override<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>  public boolean isMergeable() {<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    if (!isAvailable()) {<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      LOG.debug("Region " + this<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>          + " is not mergeable because it is closing or closed");<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      return false;<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    }<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    if (hasReferences()) {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      LOG.debug("Region " + this<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>          + " is not mergeable because it has references");<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      return false;<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span><a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    return true;<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span><a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>  public boolean areWritesEnabled() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>    synchronized(this.writestate) {<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      return this.writestate.writesEnabled;<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>  }<a name="line.1420"></a>
+<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result + " " + getRegionInfo().getShortNameToLog(),<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>      new Throwable("LOGGING: REMOVE"));<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    // REMOVE BELOW!!!!<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>    LOG.info("DEBUG LIST ALL FILES");<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    for (Store store: this.stores.values()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>      LOG.info("store " + store.getColumnFamilyName());<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>      for (StoreFile sf: store.getStorefiles()) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        LOG.info(sf.toStringDetailed());<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>      }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>    }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return result;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>  public boolean isMergeable() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    if (!isAvailable()) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      LOG.debug("Region " + this<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>          + " is not mergeable because it is closing or closed");<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>      return false;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>    if (hasReferences()) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      LOG.debug("Region " + this<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>          + " is not mergeable because it has references");<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      return false;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
 <span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  @VisibleForTesting<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>    return mvcc;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>  }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>  @Override<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>  public long getMaxFlushedSeqId() {<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    return maxFlushedSeqId;<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  @Override<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      // This scan can read even uncommitted transactions<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      return Long.MAX_VALUE;<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>    }<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>    return mvcc.getReadPoint();<a name="line.1438"></a>
+<span class="sourceLineNo">1422</span>    return true;<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>  }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span><a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>  public boolean areWritesEnabled() {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>    synchronized(this.writestate) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>      return this.writestate.writesEnabled;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>    }<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>  }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span><a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>  @VisibleForTesting<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>    return mvcc;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>  }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  @Override<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>  public long getMaxFlushedSeqId() {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>    return maxFlushedSeqId;<a name="line.1438"></a>
 <span class="sourceLineNo">1439</span>  }<a name="line.1439"></a>
 <span class="sourceLineNo">1440</span><a name="line.1440"></a>
 <span class="sourceLineNo">1441</span>  @Override<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    return getReadPoint(isolationLevel);<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>  }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span><a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>  @Override<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  /**<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * service any more calls.<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   *<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>   * time-sensitive thread.<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>   *<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * vector if already closed and null if judged that it should not close.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   *<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * @throws IOException e<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>   * caller MUST abort after this.<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>   */<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    return close(false);<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>  private final Object closeLock = new Object();<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span><a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>  /** Conf key for the periodic flush interval */<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  /** Default interval for the memstore flush */<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  /** Default interval for System tables memstore flush */<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span><a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      "hbase.regionserver.flush.per.changes";<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  /**<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>   */<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   * Shut down each HStore, don't service any more calls.<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   *<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * This method could take some time to execute, so don't call it from a<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * time-sensitive thread.<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   *<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>   * @param abort true if server is aborting (only during testing)<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>   * we are not to close at this time or we are already closed.<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>   *<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>   * @throws IOException e<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>   * caller MUST abort after this.<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>   */<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>    // threads attempting to close will run up against each other.<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        "Closing region " + this +<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        (abort ? " due to abort" : ""));<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span><a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>    status.setStatus("Waiting for close lock");<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>    try {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>      synchronized (closeLock) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        return doClose(abort, status);<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      }<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>    } finally {<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      status.cleanup();<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  /**<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>   * Exposed for some very specific unit tests.<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>   */<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>  @VisibleForTesting<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>  public void setClosing(boolean closing) {<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>    this.closing.set(closing);<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>  }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>  /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>   */<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  @VisibleForTesting<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      justification="I think FindBugs is confused")<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      throws IOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    if (isClosed()) {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      LOG.warn("Region " + this + " already closed");<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      return null;<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1442</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      // This scan can read even uncommitted transactions<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>      return Long.MAX_VALUE;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>    return mvcc.getReadPoint();<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span><a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>  @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>    return getReadPoint(isolationLevel);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>  }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span><a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  @Override<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span><a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>  /**<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>   * service any more calls.<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>   *<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>   * time-sensitive thread.<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>   *<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>   * vector if already closed and null if judged that it should not close.<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>   *<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>   * @throws IOException e<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>   * caller MUST abort after this.<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>   */<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>    return close(false);<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>  }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span><a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>  private final Object closeLock = new Object();<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span><a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  /** Conf key for the periodic flush interval */<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>  /** Default interval for the memstore flush */<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>  /** Default interval for System tables memstore flush */<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      "hbase.regionserver.flush.per.changes";<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>  /**<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>   * Shut down each HStore, don't service any more calls.<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>   *<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>   * This method could take some time to execute, so don't call it from a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>   * time-sensitive thread.<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>   *<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>   * @param abort true if server is aborting (only during testing)<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>   * we are not to close at this time or we are already closed.<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>   *<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>   * @throws IOException e<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>   * caller MUST abort after this.<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>   */<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>    // threads attempting to close will run up against each other.<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        "Closing region " + this +<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        (abort ? " due to abort" : ""));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>    status.setStatus("Waiting for close lock");<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>    try {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      synchronized (closeLock) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>        return doClose(abort, status);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>    } finally {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      status.cleanup();<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span><a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>  /**<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>   * Exposed for some very specific unit tests.<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>   */<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>  @VisibleForTesting<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  public void setClosing(boolean closing) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>    this.closing.set(closing);<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span><a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>  /**<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  @VisibleForTesting<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
 <span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>    if (coprocessorHost != null) {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      this.coprocessorHost.preClose(abort);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    boolean canFlush = true;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    synchronized (writestate) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      // Disable compacting and flushing by background threads for this<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // region.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      canFlush = !writestate.readOnly;<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>      writestate.writesEnabled = false;<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      waitForFlushesAndCompactions();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>    }<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    // the close flag?<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      status.setStatus("Pre-flushing region before close");<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      LOG.info("Running close preflush of " + this);<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      try {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        internalFlushcache(status);<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      } catch (IOException ioe) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        // Failed to flush the region. Keep going.<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>    if (timeoutForWriteLock == null<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      // block waiting for the lock for closing<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    } else {<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      try {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>        if (!succeed) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        }<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      } catch (InterruptedException e) {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      }<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    }<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    this.closing.set(true);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    status.setStatus("Disabling writes for close");<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      if (this.isClosed()) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>        status.abort("Already got closed by another process");<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        // SplitTransaction handles the null<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>        return null;<a name="line.1601"></a>
+<span class="sourceLineNo">1553</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      justification="I think FindBugs is confused")<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      throws IOException {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>    if (isClosed()) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      LOG.warn("Region " + this + " already closed");<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      return null;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span><a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    if (coprocessorHost != null) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      this.coprocessorHost.preClose(abort);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>    boolean canFlush = true;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    synchronized (writestate) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      // Disable compacting and flushing by background threads for this<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>      // region.<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      canFlush = !writestate.readOnly;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      writestate.writesEnabled = false;<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      waitForFlushesAndCompactions();<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    }<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    // the close flag?<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      status.setStatus("Pre-flushing region before close");<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      LOG.info("Running close preflush of " + this);<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>      try {<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        internalFlushcache(status);<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>      } catch (IOException ioe) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        // Failed to flush the region. Keep going.<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>      }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span><a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>    if (timeoutForWriteLock == null<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      // block waiting for the lock for closing<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>    } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>      try {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>        if (!succeed) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>        }<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>      } catch (InterruptedException e) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1601"></a>
 <span class="sourceLineNo">1602</span>      }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // Don't flush the cache if we are aborting<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>        int failedfFlushCount = 0;<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>        int flushCount = 0;<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>        long tmp = 0;<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>        while (remainingSize &gt; 0) {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>          try {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>            internalFlushcache(status);<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>            if(flushCount &gt;0) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>                  " (carrying snapshot?) " + this);<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>            }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>            flushCount++;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>            tmp = this.memstoreDataSize.get();<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>            if (tmp &gt;= remainingSize) {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>              failedfFlushCount++;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>            }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>            remainingSize = tmp;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>            if (failedfFlushCount &gt; 5) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>              // so we do not lose data<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>                  flushCount + " attempts on region: " +<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>            }<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>          } catch (IOException ioe) {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>            synchronized (writestate) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>              writestate.writesEnabled = true;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>            }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>            throw ioe;<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>          }<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>        }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      }<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span><a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>      if (!stores.isEmpty()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>            getRegionInfo().getRegionNameAsString());<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1648"></a>
+<span class="sourceLineNo">1603</span>    }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>    this.closing.set(true);<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>    status.setStatus("Disabling writes for close");<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    try {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      if (this.isClosed()) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>        status.abort("Already got closed by another process");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        // SplitTransaction handles the null<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>        return null;<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>      }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>      // Don't flush the cache if we are aborting<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>        int failedfFlushCount = 0;<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>        int flushCount = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>        long tmp = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>        while (remainingSize &gt; 0) {<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>          try {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>            internalFlushcache(status);<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>            if(flushCount &gt;0) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                  " (carrying snapshot?) " + this);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>            }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>            flushCount++;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>            tmp = this.memstoreDataSize.get();<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>            if (tmp &gt;= remainingSize) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>              failedfFlushCount++;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>            }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>            remainingSize = tmp;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>            if (failedfFlushCount &gt; 5) {<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>              // so we do not lose data<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                  flushCount + " attempts on region: " +<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>            }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>          } catch (IOException ioe) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>            synchronized (writestate) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>              writestate.writesEnabled = true;<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>            }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>            throw ioe;<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>          }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>      }<a name="line.1648"></a>
 <span class="sourceLineNo">1649</span><a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        // close each store in parallel<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        for (final Store store : stores.values()) {<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>            if (getRegionServerServices() != null) {<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>            }<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>          }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>          completionService<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>                @Override<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>                }<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>              });<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>        }<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        try {<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>            if (familyFiles == null) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>            }<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>          }<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>        } catch (InterruptedException e) {<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>        } catch (ExecutionException e) {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>          Throwable cause = e.getCause();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>          if (cause instanceof IOException) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>            throw (IOException) cause;<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>          }<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>          throw new IOException(cause);<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        } finally {<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>          storeCloserThreadPool.shutdownNow();<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>        }<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span><a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      status.setStatus("Writing region close event to WAL");<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>        writeRegionCloseMarker(wal);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>      }<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span><a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>      this.closed.set(true);<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      if (!canFlush) {<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>      }<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      if (coprocessorHost != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        this.coprocessorHost.postClose(abort);<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (this.metricsRegion != null) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        this.metricsRegion.close();<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      if (this.metricsRegionWrapper != null) {<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      }<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      status.markComplete("Closed");<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      LOG.info("Closed " + this);<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>      return result;<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    } finally {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      lock.writeLock().unlock();<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>  }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span><a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>  private long getMemstoreHeapSize() {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>    long size = 0;<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>    for (Store s : this.stores.values()) {<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>    }<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    return size;<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>  }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span><a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>  @Override<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>  public void waitForFlushesAndCompactions() {<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    synchronized (writestate) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      if (this.writestate.readOnly) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>        // region is a secondary replica).<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>        return;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      boolean interrupted = false;<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      try {<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>          try {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>            writestate.wait();<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          } catch (InterruptedException iex) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>            // essentially ignore and propagate the interrupt back up<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>            LOG.warn("Interrupted while waiting");<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>            interrupted = true;<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>          }<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>        }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      } finally {<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (interrupted) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          Thread.currentThread().interrupt();<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>        }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      }<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>    }<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>  }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>  @Override<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>  public void waitForFlushes() {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>    synchronized (writestate) {<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>      if (this.writestate.readOnly) {<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>        // region is a secondary replica).<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>        return;<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      }<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>      if (!writestate.flushing) return;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      long start = System.currentTimeMillis();<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>      boolean interrupted = false;<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      try {<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        while (writestate.flushing) {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>          try {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>            writestate.wait();<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          } catch (InterruptedException iex) {<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>            // essentially ignore and propagate the interrupt back up<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>            LOG.warn("Interrupted while waiting");<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            interrupted = true;<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          }<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>      } finally {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        if (interrupted) {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>          Thread.currentThread().interrupt();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>        }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>      }<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>      long duration = System.currentTimeMillis() - start;<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>    }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>  }<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>      final String threadNamePrefix) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    int maxThreads = Math.min(numStores,<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>  }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1800"></a>
+<span class="sourceLineNo">1650</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      if (!stores.isEmpty()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>            getRegionInfo().getRegionNameAsString());<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>        // close each store in parallel<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        for (final Store store : stores.values()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>            if (getRegionServerServices() != null) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>            }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>          }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>          completionService<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                @Override<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>              });<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>        try {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>            if (familyFiles == null) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>            }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>          }<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        } catch (InterruptedException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        } catch (ExecutionException e) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>          Throwable cause = e.getCause();<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>          if (cause instanceof IOException) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>            throw (IOException) cause;<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>          }<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>          throw new IOException(cause);<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        } finally {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>          storeCloserThreadPool.shutdownNow();<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>      }<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span><a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>      status.setStatus("Writing region close event to WAL");<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>        writeRegionCloseMarker(wal);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>      this.closed.set(true);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>      if (!canFlush) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>      }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>      if (coprocessorHost != null) {<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>        this.coprocessorHost.postClose(abort);<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>      }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>      if (this.metricsRegion != null) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>        this.metricsRegion.close();<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>      }<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>      if (this.metricsRegionWrapper != null) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>      }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>      status.markComplete("Closed");<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>      LOG.info("Closed " + this);<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>      return result;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>    } finally {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>      lock.writeLock().unlock();<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>    }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>  }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span><a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>  private long getMemstoreHeapSize() {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    long size = 0;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    for (Store s : this.stores.values()) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>    }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>    return size;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>  }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span><a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>  @Override<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>  public void waitForFlushesAndCompactions() {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    synchronized (writestate) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>      if (this.writestate.readOnly) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>        // region is a secondary replica).<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>        return;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>      }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>      boolean interrupted = false;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>      try {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>          try {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>            writestate.wait();<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>          } catch (InterruptedException iex) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>            // essentially ignore and propagate the interrupt back up<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>            LOG.warn("Interrupted while waiting");<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>            interrupted = true;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>          }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>      } finally {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        if (interrupted) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>          Thread.currentThread().interrupt();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>      }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>    }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>  }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>  @Override<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>  public void waitForFlushes() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>    synchronized (writestate) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>      if (this.writestate.readOnly) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>        // region is a secondary replica).<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>        return;<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>      if (!writestate.flushing) return;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      long start = System.currentTimeMillis();<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      boolean interrupted = false;<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>      try {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        while (writestate.flushing) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>          try {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>            writestate.wait();<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>          } catch (InterruptedException iex) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>            // essentially ignore and propagate the interrupt back up<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>            LOG.warn("Interrupted while waiting");<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>            interrupted = true;<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>          }<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        }<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>      } finally {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>        if (interrupted) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          Thread.currentThread().interrupt();<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>        }<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>      }<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>      long duration = System.currentTimeMillis() - start;<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>    }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>  }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1800"></a>
 <span class="sourceLineNo">1801</span>      final String threadNamePrefix) {<a name="line.1801"></a>
 <span class="sourceLineNo">1802</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    int maxThreads = Math.max(1,<a name="line.1803"></a>
+<span class="sourceLineNo">1803</span>    int maxThreads = Math.min(numStores,<a name="line.1803"></a>
 <span class="sourceLineNo">1804</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>            / numStores);<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>  }<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span><a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>      final String threadNamePrefix) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>      new ThreadFactory() {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        private int count = 1;<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span><a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>        @Override<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>        public Thread newThread(Runnable r) {<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>      });<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>  }<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>   /**<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    */<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>  private boolean worthPreFlushing() {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    return this.memstoreDataSize.get() &gt;<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>  }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span><a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>  // HRegion accessors<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>  @Override<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  public HTableDescriptor getTableDesc() {<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    return this.htableDescriptor;<a name="line.1837"></a>
+<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>  }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span><a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>      final String threadNamePrefix) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    int maxThreads = Math.max(1,<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>            / numStores);<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>  }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>      final String threadNamePrefix) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>      new ThreadFactory() {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>        private int count = 1;<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span><a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>        @Override<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>        public Thread newThread(Runnable r) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      });<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span><a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>   /**<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    */<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  private boolean worthPreFlushing() {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>    return this.memstoreDataSize.get() &gt;<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1837"></a>
 <span class="sourceLineNo">1838</span>  }<a name="line.1838"></a>
 <span class="sourceLineNo">1839</span><a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  /** @return WAL in use for this region */<a name="li

<TRUNCATED>

[17/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html
index 38500dd..e1e4110 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemstoreFlusher.html
@@ -35,3706 +35,3705 @@
 <span class="sourceLineNo">027</span>import java.net.BindException;<a name="line.27"></a>
 <span class="sourceLineNo">028</span>import java.net.InetAddress;<a name="line.28"></a>
 <span class="sourceLineNo">029</span>import java.net.InetSocketAddress;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import java.security.PrivilegedExceptionAction;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import java.util.ArrayList;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import java.util.Collection;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import java.util.Collections;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import java.util.Comparator;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import java.util.HashMap;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import java.util.HashSet;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import java.util.Iterator;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import java.util.List;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import java.util.Map;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import java.util.Objects;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import java.util.Map.Entry;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import java.util.Set;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import java.util.SortedMap;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import java.util.TreeMap;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import java.util.TreeSet;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import java.util.concurrent.ConcurrentMap;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import java.util.concurrent.ConcurrentSkipListMap;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import java.util.concurrent.CountDownLatch;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import java.util.concurrent.TimeUnit;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import java.util.concurrent.atomic.AtomicBoolean;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import java.util.concurrent.locks.ReentrantReadWriteLock;<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>import javax.management.MalformedObjectNameException;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import javax.management.ObjectName;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import javax.servlet.http.HttpServlet;<a name="line.56"></a>
-<span class="sourceLineNo">057</span><a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.apache.commons.lang.SystemUtils;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.apache.commons.lang.math.RandomUtils;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.apache.commons.logging.Log;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.apache.commons.logging.LogFactory;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.apache.hadoop.conf.Configuration;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.apache.hadoop.fs.FileSystem;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>import org.apache.hadoop.fs.Path;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hadoop.hbase.Abortable;<a name="line.65"></a>
-<span class="sourceLineNo">066</span>import org.apache.hadoop.hbase.ChoreService;<a name="line.66"></a>
-<span class="sourceLineNo">067</span>import org.apache.hadoop.hbase.ClockOutOfSyncException;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>import org.apache.hadoop.hbase.CoordinatedStateManager;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>import org.apache.hadoop.hbase.CoordinatedStateManagerFactory;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>import org.apache.hadoop.hbase.DoNotRetryIOException;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>import org.apache.hadoop.hbase.HBaseInterfaceAudience;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>import org.apache.hadoop.hbase.HConstants;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>import org.apache.hadoop.hbase.HRegionInfo;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>import org.apache.hadoop.hbase.HealthCheckChore;<a name="line.75"></a>
-<span class="sourceLineNo">076</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.76"></a>
-<span class="sourceLineNo">077</span>import org.apache.hadoop.hbase.NotServingRegionException;<a name="line.77"></a>
-<span class="sourceLineNo">078</span>import org.apache.hadoop.hbase.PleaseHoldException;<a name="line.78"></a>
-<span class="sourceLineNo">079</span>import org.apache.hadoop.hbase.ScheduledChore;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>import org.apache.hadoop.hbase.ServerName;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>import org.apache.hadoop.hbase.Stoppable;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>import org.apache.hadoop.hbase.TableDescriptors;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>import org.apache.hadoop.hbase.TableName;<a name="line.83"></a>
-<span class="sourceLineNo">084</span>import org.apache.hadoop.hbase.YouAreDeadException;<a name="line.84"></a>
-<span class="sourceLineNo">085</span>import org.apache.hadoop.hbase.ZNodeClearer;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>import org.apache.hadoop.hbase.classification.InterfaceAudience;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>import org.apache.hadoop.hbase.client.ClusterConnection;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>import org.apache.hadoop.hbase.client.Connection;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>import org.apache.hadoop.hbase.client.ConnectionUtils;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>import org.apache.hadoop.hbase.client.Put;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>import org.apache.hadoop.hbase.client.RpcRetryingCallerFactory;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>import org.apache.hadoop.hbase.client.locking.EntityLock;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>import org.apache.hadoop.hbase.client.locking.LockServiceClient;<a name="line.93"></a>
-<span class="sourceLineNo">094</span>import org.apache.hadoop.hbase.conf.ConfigurationManager;<a name="line.94"></a>
-<span class="sourceLineNo">095</span>import org.apache.hadoop.hbase.conf.ConfigurationObserver;<a name="line.95"></a>
-<span class="sourceLineNo">096</span>import org.apache.hadoop.hbase.coordination.BaseCoordinatedStateManager;<a name="line.96"></a>
-<span class="sourceLineNo">097</span>import org.apache.hadoop.hbase.coordination.SplitLogWorkerCoordination;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;<a name="line.98"></a>
-<span class="sourceLineNo">099</span>import org.apache.hadoop.hbase.exceptions.RegionMovedException;<a name="line.99"></a>
-<span class="sourceLineNo">100</span>import org.apache.hadoop.hbase.exceptions.RegionOpeningException;<a name="line.100"></a>
-<span class="sourceLineNo">101</span>import org.apache.hadoop.hbase.exceptions.UnknownProtocolException;<a name="line.101"></a>
-<span class="sourceLineNo">102</span>import org.apache.hadoop.hbase.executor.ExecutorService;<a name="line.102"></a>
-<span class="sourceLineNo">103</span>import org.apache.hadoop.hbase.executor.ExecutorType;<a name="line.103"></a>
-<span class="sourceLineNo">104</span>import org.apache.hadoop.hbase.fs.HFileSystem;<a name="line.104"></a>
-<span class="sourceLineNo">105</span>import org.apache.hadoop.hbase.http.InfoServer;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>import org.apache.hadoop.hbase.io.hfile.CacheConfig;<a name="line.106"></a>
-<span class="sourceLineNo">107</span>import org.apache.hadoop.hbase.io.hfile.HFile;<a name="line.107"></a>
-<span class="sourceLineNo">108</span>import org.apache.hadoop.hbase.io.util.MemorySizeUtil;<a name="line.108"></a>
-<span class="sourceLineNo">109</span>import org.apache.hadoop.hbase.ipc.CoprocessorRpcUtils;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>import org.apache.hadoop.hbase.ipc.RpcCallContext;<a name="line.110"></a>
-<span class="sourceLineNo">111</span>import org.apache.hadoop.hbase.ipc.RpcClient;<a name="line.111"></a>
-<span class="sourceLineNo">112</span>import org.apache.hadoop.hbase.ipc.RpcClientFactory;<a name="line.112"></a>
-<span class="sourceLineNo">113</span>import org.apache.hadoop.hbase.ipc.RpcControllerFactory;<a name="line.113"></a>
-<span class="sourceLineNo">114</span>import org.apache.hadoop.hbase.ipc.RpcServer;<a name="line.114"></a>
-<span class="sourceLineNo">115</span>import org.apache.hadoop.hbase.ipc.RpcServerInterface;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>import org.apache.hadoop.hbase.ipc.ServerNotRunningYetException;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>import org.apache.hadoop.hbase.ipc.ServerRpcController;<a name="line.117"></a>
-<span class="sourceLineNo">118</span>import org.apache.hadoop.hbase.master.HMaster;<a name="line.118"></a>
-<span class="sourceLineNo">119</span>import org.apache.hadoop.hbase.master.RegionState.State;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>import org.apache.hadoop.hbase.master.balancer.BaseLoadBalancer;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>import org.apache.hadoop.hbase.mob.MobCacheConfig;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>import org.apache.hadoop.hbase.procedure.RegionServerProcedureManagerHost;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>import org.apache.hadoop.hbase.quotas.FileSystemUtilizationChore;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>import org.apache.hadoop.hbase.quotas.QuotaUtil;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>import org.apache.hadoop.hbase.quotas.RegionServerRpcQuotaManager;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>import org.apache.hadoop.hbase.quotas.RegionServerSpaceQuotaManager;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionConfiguration;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>import org.apache.hadoop.hbase.regionserver.compactions.CompactionProgress;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>import org.apache.hadoop.hbase.regionserver.handler.CloseMetaHandler;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>import org.apache.hadoop.hbase.regionserver.handler.CloseRegionHandler;<a name="line.130"></a>
-<span class="sourceLineNo">131</span>import org.apache.hadoop.hbase.regionserver.handler.RegionReplicaFlushHandler;<a name="line.131"></a>
-<span class="sourceLineNo">132</span>import org.apache.hadoop.hbase.regionserver.throttle.FlushThroughputControllerFactory;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>import org.apache.hadoop.hbase.regionserver.throttle.ThroughputController;<a name="line.133"></a>
-<span class="sourceLineNo">134</span>import org.apache.hadoop.hbase.regionserver.wal.MetricsWAL;<a name="line.134"></a>
-<span class="sourceLineNo">135</span>import org.apache.hadoop.hbase.regionserver.wal.WALActionsListener;<a name="line.135"></a>
-<span class="sourceLineNo">136</span>import org.apache.hadoop.hbase.replication.regionserver.Replication;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>import org.apache.hadoop.hbase.replication.regionserver.ReplicationLoad;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>import org.apache.hadoop.hbase.security.Superusers;<a name="line.138"></a>
-<span class="sourceLineNo">139</span>import org.apache.hadoop.hbase.security.User;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>import org.apache.hadoop.hbase.security.UserProvider;<a name="line.140"></a>
-<span class="sourceLineNo">141</span>import org.apache.hadoop.hbase.shaded.com.google.protobuf.*;<a name="line.141"></a>
-<span class="sourceLineNo">142</span>import org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>import org.apache.hadoop.hbase.shaded.protobuf.RequestConverter;<a name="line.143"></a>
-<span class="sourceLineNo">144</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceCall;<a name="line.144"></a>
-<span class="sourceLineNo">145</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionStoreSequenceIds;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.Coprocessor;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.Coprocessor.Builder;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.NameStringPair;<a name="line.152"></a>
-<span class="sourceLineNo">153</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionServerInfo;<a name="line.153"></a>
-<span class="sourceLineNo">154</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier.RegionSpecifierType;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.LockServiceProtos.LockService;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultRequest;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.GetProcedureResultResponse;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos;<a name="line.159"></a>
-<span class="sourceLineNo">160</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdRequest;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.GetLastFlushedSequenceIdResponse;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerReportRequest;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupRequest;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUse;<a name="line.166"></a>
-<span class="sourceLineNo">167</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportRequest;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition;<a name="line.168"></a>
-<span class="sourceLineNo">169</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionStateTransition.TransitionCode;<a name="line.169"></a>
-<span class="sourceLineNo">170</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRSFatalErrorRequest;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionRequest;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>import org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.ReportRegionStateTransitionResponse;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>import org.apache.hadoop.hbase.trace.SpanReceiverHost;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>import org.apache.hadoop.hbase.util.Addressing;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>import org.apache.hadoop.hbase.util.CompressionTest;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.177"></a>
-<span class="sourceLineNo">178</span>import org.apache.hadoop.hbase.util.FSTableDescriptors;<a name="line.178"></a>
-<span class="sourceLineNo">179</span>import org.apache.hadoop.hbase.util.FSUtils;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>import org.apache.hadoop.hbase.util.HasThread;<a name="line.180"></a>
-<span class="sourceLineNo">181</span>import org.apache.hadoop.hbase.util.JSONBean;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>import org.apache.hadoop.hbase.util.JvmPauseMonitor;<a name="line.182"></a>
-<span class="sourceLineNo">183</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>import org.apache.hadoop.hbase.util.ServerRegionReplicaUtil;<a name="line.184"></a>
-<span class="sourceLineNo">185</span>import org.apache.hadoop.hbase.util.Sleeper;<a name="line.185"></a>
-<span class="sourceLineNo">186</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>import org.apache.hadoop.hbase.util.VersionInfo;<a name="line.187"></a>
-<span class="sourceLineNo">188</span>import org.apache.hadoop.hbase.wal.AbstractFSWALProvider;<a name="line.188"></a>
-<span class="sourceLineNo">189</span>import org.apache.hadoop.hbase.wal.WAL;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>import org.apache.hadoop.hbase.wal.WALFactory;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>import org.apache.hadoop.hbase.zookeeper.ClusterStatusTracker;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>import org.apache.hadoop.hbase.zookeeper.MasterAddressTracker;<a name="line.192"></a>
-<span class="sourceLineNo">193</span>import org.apache.hadoop.hbase.zookeeper.MetaTableLocator;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>import org.apache.hadoop.hbase.zookeeper.RecoveringRegionWatcher;<a name="line.194"></a>
-<span class="sourceLineNo">195</span>import org.apache.hadoop.hbase.zookeeper.ZKClusterId;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>import org.apache.hadoop.hbase.zookeeper.ZKSplitLog;<a name="line.196"></a>
-<span class="sourceLineNo">197</span>import org.apache.hadoop.hbase.zookeeper.ZKUtil;<a name="line.197"></a>
-<span class="sourceLineNo">198</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;<a name="line.199"></a>
-<span class="sourceLineNo">200</span>import org.apache.hadoop.ipc.RemoteException;<a name="line.200"></a>
-<span class="sourceLineNo">201</span>import org.apache.hadoop.metrics2.util.MBeans;<a name="line.201"></a>
-<span class="sourceLineNo">202</span>import org.apache.hadoop.util.ReflectionUtils;<a name="line.202"></a>
-<span class="sourceLineNo">203</span>import org.apache.hadoop.util.StringUtils;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>import org.apache.zookeeper.KeeperException;<a name="line.204"></a>
-<span class="sourceLineNo">205</span>import org.apache.zookeeper.KeeperException.NoNodeException;<a name="line.205"></a>
-<span class="sourceLineNo">206</span>import org.apache.zookeeper.data.Stat;<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>import com.google.common.annotations.VisibleForTesting;<a name="line.208"></a>
-<span class="sourceLineNo">209</span>import com.google.common.base.Preconditions;<a name="line.209"></a>
-<span class="sourceLineNo">210</span>import com.google.common.collect.Maps;<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>import sun.misc.Signal;<a name="line.212"></a>
-<span class="sourceLineNo">213</span>import sun.misc.SignalHandler;<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>/**<a name="line.215"></a>
-<span class="sourceLineNo">216</span> * HRegionServer makes a set of HRegions available to clients. It checks in with<a name="line.216"></a>
-<span class="sourceLineNo">217</span> * the HMaster. There are many HRegionServers in a single HBase deployment.<a name="line.217"></a>
-<span class="sourceLineNo">218</span> */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>@InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.TOOLS)<a name="line.219"></a>
-<span class="sourceLineNo">220</span>@SuppressWarnings({ "deprecation"})<a name="line.220"></a>
-<span class="sourceLineNo">221</span>public class HRegionServer extends HasThread implements<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    RegionServerServices, LastSequenceId, ConfigurationObserver {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  // Time to pause if master says 'please hold'. Make configurable if needed.<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  private static final int INIT_PAUSE_TIME_MS = 1000;<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  public static final String REGION_LOCK_AWAIT_TIME_SEC =<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      "hbase.regionserver.region.lock.await.time.sec";<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  public static final int DEFAULT_REGION_LOCK_AWAIT_TIME_SEC = 300;  // 5 min<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  private static final Log LOG = LogFactory.getLog(HRegionServer.class);<a name="line.229"></a>
-<span class="sourceLineNo">230</span><a name="line.230"></a>
-<span class="sourceLineNo">231</span>  /**<a name="line.231"></a>
-<span class="sourceLineNo">232</span>   * For testing only!  Set to true to skip notifying region assignment to master .<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   */<a name="line.233"></a>
-<span class="sourceLineNo">234</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="MS_SHOULD_BE_FINAL")<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  public static boolean TEST_SKIP_REPORTING_TRANSITION = false;<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>  /*<a name="line.237"></a>
-<span class="sourceLineNo">238</span>   * Strings to be used in forming the exception message for<a name="line.238"></a>
-<span class="sourceLineNo">239</span>   * RegionsAlreadyInTransitionException.<a name="line.239"></a>
-<span class="sourceLineNo">240</span>   */<a name="line.240"></a>
-<span class="sourceLineNo">241</span>  protected static final String OPEN = "OPEN";<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  protected static final String CLOSE = "CLOSE";<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>  //RegionName vs current action in progress<a name="line.244"></a>
-<span class="sourceLineNo">245</span>  //true - if open region action in progress<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  //false - if close region action in progress<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  protected final ConcurrentMap&lt;byte[], Boolean&gt; regionsInTransitionInRS =<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    new ConcurrentSkipListMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.248"></a>
-<span class="sourceLineNo">249</span><a name="line.249"></a>
-<span class="sourceLineNo">250</span>  // Cache flushing<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  protected MemStoreFlusher cacheFlusher;<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>  protected HeapMemoryManager hMemManager;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>  protected CountDownLatch initLatch = null;<a name="line.254"></a>
-<span class="sourceLineNo">255</span><a name="line.255"></a>
-<span class="sourceLineNo">256</span>  /**<a name="line.256"></a>
-<span class="sourceLineNo">257</span>   * Cluster connection to be shared by services.<a name="line.257"></a>
-<span class="sourceLineNo">258</span>   * Initialized at server startup and closed when server shuts down.<a name="line.258"></a>
-<span class="sourceLineNo">259</span>   * Clients must never close it explicitly.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>   */<a name="line.260"></a>
-<span class="sourceLineNo">261</span>  protected ClusterConnection clusterConnection;<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>  /*<a name="line.263"></a>
-<span class="sourceLineNo">264</span>   * Long-living meta table locator, which is created when the server is started and stopped<a name="line.264"></a>
-<span class="sourceLineNo">265</span>   * when server shuts down. References to this locator shall be used to perform according<a name="line.265"></a>
-<span class="sourceLineNo">266</span>   * operations in EventHandlers. Primary reason for this decision is to make it mockable<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * for tests.<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   */<a name="line.268"></a>
-<span class="sourceLineNo">269</span>  protected MetaTableLocator metaTableLocator;<a name="line.269"></a>
-<span class="sourceLineNo">270</span><a name="line.270"></a>
-<span class="sourceLineNo">271</span>  // Watch if a region is out of recovering state from ZooKeeper<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  @SuppressWarnings("unused")<a name="line.272"></a>
-<span class="sourceLineNo">273</span>  private RecoveringRegionWatcher recoveringRegionWatcher;<a name="line.273"></a>
-<span class="sourceLineNo">274</span><a name="line.274"></a>
-<span class="sourceLineNo">275</span>  /**<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * Go here to get table descriptors.<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   */<a name="line.277"></a>
-<span class="sourceLineNo">278</span>  protected TableDescriptors tableDescriptors;<a name="line.278"></a>
-<span class="sourceLineNo">279</span><a name="line.279"></a>
-<span class="sourceLineNo">280</span>  // Replication services. If no replication, this handler will be null.<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  protected ReplicationSourceService replicationSourceHandler;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  protected ReplicationSinkService replicationSinkHandler;<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>  // Compactions<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  public CompactSplit compactSplitThread;<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>  /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * Map of regions currently being served by this region server. Key is the<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * encoded region name.  All access should be synchronized.<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   */<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  protected final Map&lt;String, Region&gt; onlineRegions = new ConcurrentHashMap&lt;&gt;();<a name="line.291"></a>
-<span class="sourceLineNo">292</span><a name="line.292"></a>
-<span class="sourceLineNo">293</span>  /**<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   * Map of encoded region names to the DataNode locations they should be hosted on<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   * We store the value as InetSocketAddress since this is used only in HDFS<a name="line.295"></a>
-<span class="sourceLineNo">296</span>   * API (create() that takes favored nodes as hints for placing file blocks).<a name="line.296"></a>
-<span class="sourceLineNo">297</span>   * We could have used ServerName here as the value class, but we'd need to<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   * convert it to InetSocketAddress at some point before the HDFS API call, and<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   * it seems a bit weird to store ServerName since ServerName refers to RegionServers<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   * and here we really mean DataNode locations.<a name="line.300"></a>
-<span class="sourceLineNo">301</span>   */<a name="line.301"></a>
-<span class="sourceLineNo">302</span>  protected final Map&lt;String, InetSocketAddress[]&gt; regionFavoredNodesMap =<a name="line.302"></a>
-<span class="sourceLineNo">303</span>      new ConcurrentHashMap&lt;&gt;();<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>  /**<a name="line.305"></a>
-<span class="sourceLineNo">306</span>   * Set of regions currently being in recovering state which means it can accept writes(edits from<a name="line.306"></a>
-<span class="sourceLineNo">307</span>   * previous failed region server) but not reads. A recovering region is also an online region.<a name="line.307"></a>
-<span class="sourceLineNo">308</span>   */<a name="line.308"></a>
-<span class="sourceLineNo">309</span>  protected final Map&lt;String, Region&gt; recoveringRegions = Collections<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      .synchronizedMap(new HashMap&lt;String, Region&gt;());<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  // Leases<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  protected Leases leases;<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>  // Instance of the hbase executor service.<a name="line.315"></a>
-<span class="sourceLineNo">316</span>  protected ExecutorService service;<a name="line.316"></a>
-<span class="sourceLineNo">317</span><a name="line.317"></a>
-<span class="sourceLineNo">318</span>  // If false, the file system has become unavailable<a name="line.318"></a>
-<span class="sourceLineNo">319</span>  protected volatile boolean fsOk;<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  protected HFileSystem fs;<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  protected HFileSystem walFs;<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  // Set when a report to the master comes back with a message asking us to<a name="line.323"></a>
-<span class="sourceLineNo">324</span>  // shutdown. Also set by call to stop when debugging or running unit tests<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  // of HRegionServer in isolation.<a name="line.325"></a>
-<span class="sourceLineNo">326</span>  private volatile boolean stopped = false;<a name="line.326"></a>
-<span class="sourceLineNo">327</span><a name="line.327"></a>
-<span class="sourceLineNo">328</span>  // Go down hard. Used if file system becomes unavailable and also in<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  // debugging and unit tests.<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  private volatile boolean abortRequested;<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  ConcurrentMap&lt;String, Integer&gt; rowlocks = new ConcurrentHashMap&lt;&gt;();<a name="line.332"></a>
-<span class="sourceLineNo">333</span><a name="line.333"></a>
-<span class="sourceLineNo">334</span>  // A state before we go into stopped state.  At this stage we're closing user<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  // space regions.<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  private boolean stopping = false;<a name="line.336"></a>
-<span class="sourceLineNo">337</span><a name="line.337"></a>
-<span class="sourceLineNo">338</span>  volatile boolean killed = false;<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>  protected final Configuration conf;<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  private Path rootDir;<a name="line.342"></a>
-<span class="sourceLineNo">343</span>  private Path walRootDir;<a name="line.343"></a>
-<span class="sourceLineNo">344</span><a name="line.344"></a>
-<span class="sourceLineNo">345</span>  protected final ReentrantReadWriteLock lock = new ReentrantReadWriteLock();<a name="line.345"></a>
-<span class="sourceLineNo">346</span><a name="line.346"></a>
-<span class="sourceLineNo">347</span>  final int numRetries;<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  protected final int threadWakeFrequency;<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  protected final int msgInterval;<a name="line.349"></a>
-<span class="sourceLineNo">350</span><a name="line.350"></a>
-<span class="sourceLineNo">351</span>  protected final int numRegionsToReport;<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>  // Stub to do region server status calls against the master.<a name="line.353"></a>
-<span class="sourceLineNo">354</span>  private volatile RegionServerStatusService.BlockingInterface rssStub;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  private volatile LockService.BlockingInterface lockStub;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>  // RPC client. Used to make the stub above that does region server status checking.<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  RpcClient rpcClient;<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  private RpcRetryingCallerFactory rpcRetryingCallerFactory;<a name="line.359"></a>
-<span class="sourceLineNo">360</span>  private RpcControllerFactory rpcControllerFactory;<a name="line.360"></a>
-<span class="sourceLineNo">361</span><a name="line.361"></a>
-<span class="sourceLineNo">362</span>  private UncaughtExceptionHandler uncaughtExceptionHandler;<a name="line.362"></a>
-<span class="sourceLineNo">363</span><a name="line.363"></a>
-<span class="sourceLineNo">364</span>  // Info server. Default access so can be used by unit tests. REGIONSERVER<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  // is name of the webapp and the attribute name used stuffing this instance<a name="line.365"></a>
-<span class="sourceLineNo">366</span>  // into web context.<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  protected InfoServer infoServer;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>  private JvmPauseMonitor pauseMonitor;<a name="line.368"></a>
-<span class="sourceLineNo">369</span><a name="line.369"></a>
-<span class="sourceLineNo">370</span>  /** region server process name */<a name="line.370"></a>
-<span class="sourceLineNo">371</span>  public static final String REGIONSERVER = "regionserver";<a name="line.371"></a>
-<span class="sourceLineNo">372</span><a name="line.372"></a>
-<span class="sourceLineNo">373</span>  MetricsRegionServer metricsRegionServer;<a name="line.373"></a>
-<span class="sourceLineNo">374</span>  MetricsTable metricsTable;<a name="line.374"></a>
-<span class="sourceLineNo">375</span>  private SpanReceiverHost spanReceiverHost;<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>  /**<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   * ChoreService used to schedule tasks that we want to run periodically<a name="line.378"></a>
-<span class="sourceLineNo">379</span>   */<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  private final ChoreService choreService;<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  /*<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * Check for compactions requests.<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  ScheduledChore compactionChecker;<a name="line.385"></a>
-<span class="sourceLineNo">386</span><a name="line.386"></a>
-<span class="sourceLineNo">387</span>  /*<a name="line.387"></a>
-<span class="sourceLineNo">388</span>   * Check for flushes<a name="line.388"></a>
-<span class="sourceLineNo">389</span>   */<a name="line.389"></a>
-<span class="sourceLineNo">390</span>  ScheduledChore periodicFlusher;<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>  protected volatile WALFactory walFactory;<a name="line.392"></a>
-<span class="sourceLineNo">393</span><a name="line.393"></a>
-<span class="sourceLineNo">394</span>  // WAL roller. log is protected rather than private to avoid<a name="line.394"></a>
-<span class="sourceLineNo">395</span>  // eclipse warning when accessed by inner classes<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  protected final LogRoller walRoller;<a name="line.396"></a>
-<span class="sourceLineNo">397</span><a name="line.397"></a>
-<span class="sourceLineNo">398</span>  // flag set after we're done setting up server threads<a name="line.398"></a>
-<span class="sourceLineNo">399</span>  final AtomicBoolean online = new AtomicBoolean(false);<a name="line.399"></a>
-<span class="sourceLineNo">400</span><a name="line.400"></a>
-<span class="sourceLineNo">401</span>  // zookeeper connection and watcher<a name="line.401"></a>
-<span class="sourceLineNo">402</span>  protected ZooKeeperWatcher zooKeeper;<a name="line.402"></a>
-<span class="sourceLineNo">403</span><a name="line.403"></a>
-<span class="sourceLineNo">404</span>  // master address tracker<a name="line.404"></a>
-<span class="sourceLineNo">405</span>  private MasterAddressTracker masterAddressTracker;<a name="line.405"></a>
-<span class="sourceLineNo">406</span><a name="line.406"></a>
-<span class="sourceLineNo">407</span>  // Cluster Status Tracker<a name="line.407"></a>
-<span class="sourceLineNo">408</span>  protected ClusterStatusTracker clusterStatusTracker;<a name="line.408"></a>
-<span class="sourceLineNo">409</span><a name="line.409"></a>
-<span class="sourceLineNo">410</span>  // Log Splitting Worker<a name="line.410"></a>
-<span class="sourceLineNo">411</span>  private SplitLogWorker splitLogWorker;<a name="line.411"></a>
-<span class="sourceLineNo">412</span><a name="line.412"></a>
-<span class="sourceLineNo">413</span>  // A sleeper that sleeps for msgInterval.<a name="line.413"></a>
-<span class="sourceLineNo">414</span>  protected final Sleeper sleeper;<a name="line.414"></a>
-<span class="sourceLineNo">415</span><a name="line.415"></a>
-<span class="sourceLineNo">416</span>  private final int operationTimeout;<a name="line.416"></a>
-<span class="sourceLineNo">417</span>  private final int shortOperationTimeout;<a name="line.417"></a>
-<span class="sourceLineNo">418</span><a name="line.418"></a>
-<span class="sourceLineNo">419</span>  private final RegionServerAccounting regionServerAccounting;<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>  // Cache configuration and block cache reference<a name="line.421"></a>
-<span class="sourceLineNo">422</span>  protected CacheConfig cacheConfig;<a name="line.422"></a>
-<span class="sourceLineNo">423</span>  // Cache configuration for mob<a name="line.423"></a>
-<span class="sourceLineNo">424</span>  final MobCacheConfig mobCacheConfig;<a name="line.424"></a>
-<span class="sourceLineNo">425</span><a name="line.425"></a>
-<span class="sourceLineNo">426</span>  /** The health check chore. */<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  private HealthCheckChore healthCheckChore;<a name="line.427"></a>
-<span class="sourceLineNo">428</span><a name="line.428"></a>
-<span class="sourceLineNo">429</span>  /** The nonce manager chore. */<a name="line.429"></a>
-<span class="sourceLineNo">430</span>  private ScheduledChore nonceManagerChore;<a name="line.430"></a>
-<span class="sourceLineNo">431</span><a name="line.431"></a>
-<span class="sourceLineNo">432</span>  private Map&lt;String, com.google.protobuf.Service&gt; coprocessorServiceHandlers = Maps.newHashMap();<a name="line.432"></a>
-<span class="sourceLineNo">433</span><a name="line.433"></a>
-<span class="sourceLineNo">434</span>  /**<a name="line.434"></a>
-<span class="sourceLineNo">435</span>   * The server name the Master sees us as.  Its made from the hostname the<a name="line.435"></a>
-<span class="sourceLineNo">436</span>   * master passes us, port, and server startcode. Gets set after registration<a name="line.436"></a>
-<span class="sourceLineNo">437</span>   * against  Master.<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   */<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  protected ServerName serverName;<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>  /*<a name="line.441"></a>
-<span class="sourceLineNo">442</span>   * hostname specified by hostname config<a name="line.442"></a>
-<span class="sourceLineNo">443</span>   */<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  protected String useThisHostnameInstead;<a name="line.444"></a>
-<span class="sourceLineNo">445</span><a name="line.445"></a>
-<span class="sourceLineNo">446</span>  // key to the config parameter of server hostname<a name="line.446"></a>
-<span class="sourceLineNo">447</span>  // the specification of server hostname is optional. The hostname should be resolvable from<a name="line.447"></a>
-<span class="sourceLineNo">448</span>  // both master and region server<a name="line.448"></a>
-<span class="sourceLineNo">449</span>  @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.449"></a>
-<span class="sourceLineNo">450</span>  final static String RS_HOSTNAME_KEY = "hbase.regionserver.hostname";<a name="line.450"></a>
-<span class="sourceLineNo">451</span>  @InterfaceAudience.LimitedPrivate(HBaseInterfaceAudience.CONFIG)<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  protected final static String MASTER_HOSTNAME_KEY = "hbase.master.hostname";<a name="line.452"></a>
-<span class="sourceLineNo">453</span><a name="line.453"></a>
-<span class="sourceLineNo">454</span>  /**<a name="line.454"></a>
-<span class="sourceLineNo">455</span>   * This servers startcode.<a name="line.455"></a>
-<span class="sourceLineNo">456</span>   */<a name="line.456"></a>
-<span class="sourceLineNo">457</span>  protected final long startcode;<a name="line.457"></a>
-<span class="sourceLineNo">458</span><a name="line.458"></a>
-<span class="sourceLineNo">459</span>  /**<a name="line.459"></a>
-<span class="sourceLineNo">460</span>   * Unique identifier for the cluster we are a part of.<a name="line.460"></a>
-<span class="sourceLineNo">461</span>   */<a name="line.461"></a>
-<span class="sourceLineNo">462</span>  private String clusterId;<a name="line.462"></a>
-<span class="sourceLineNo">463</span><a name="line.463"></a>
-<span class="sourceLineNo">464</span>  /**<a name="line.464"></a>
-<span class="sourceLineNo">465</span>   * MX Bean for RegionServerInfo<a name="line.465"></a>
-<span class="sourceLineNo">466</span>   */<a name="line.466"></a>
-<span class="sourceLineNo">467</span>  private ObjectName mxBean = null;<a name="line.467"></a>
-<span class="sourceLineNo">468</span><a name="line.468"></a>
-<span class="sourceLineNo">469</span>  /**<a name="line.469"></a>
-<span class="sourceLineNo">470</span>   * Chore to clean periodically the moved region list<a name="line.470"></a>
-<span class="sourceLineNo">471</span>   */<a name="line.471"></a>
-<span class="sourceLineNo">472</span>  private MovedRegionsCleaner movedRegionsCleaner;<a name="line.472"></a>
-<span class="sourceLineNo">473</span><a name="line.473"></a>
-<span class="sourceLineNo">474</span>  // chore for refreshing store files for secondary regions<a name="line.474"></a>
-<span class="sourceLineNo">475</span>  private StorefileRefresherChore storefileRefresher;<a name="line.475"></a>
-<span class="sourceLineNo">476</span><a name="line.476"></a>
-<span class="sourceLineNo">477</span>  private RegionServerCoprocessorHost rsHost;<a name="line.477"></a>
-<span class="sourceLineNo">478</span><a name="line.478"></a>
-<span class="sourceLineNo">479</span>  private RegionServerProcedureManagerHost rspmHost;<a name="line.479"></a>
-<span class="sourceLineNo">480</span><a name="line.480"></a>
-<span class="sourceLineNo">481</span>  private RegionServerRpcQuotaManager rsQuotaManager;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>  private RegionServerSpaceQuotaManager rsSpaceQuotaManager;<a name="line.482"></a>
-<span class="sourceLineNo">483</span><a name="line.483"></a>
-<span class="sourceLineNo">484</span>  /**<a name="line.484"></a>
-<span class="sourceLineNo">485</span>   * Nonce manager. Nonces are used to make operations like increment and append idempotent<a name="line.485"></a>
-<span class="sourceLineNo">486</span>   * in the case where client doesn't receive the response from a successful operation and<a name="line.486"></a>
-<span class="sourceLineNo">487</span>   * retries. We track the successful ops for some time via a nonce sent by client and handle<a name="line.487"></a>
-<span class="sourceLineNo">488</span>   * duplicate operations (currently, by failing them; in future we might use MVCC to return<a name="line.488"></a>
-<span class="sourceLineNo">489</span>   * result). Nonces are also recovered from WAL during, recovery; however, the caveats (from<a name="line.489"></a>
-<span class="sourceLineNo">490</span>   * HBASE-3787) are:<a name="line.490"></a>
-<span class="sourceLineNo">491</span>   * - WAL recovery is optimized, and under high load we won't read nearly nonce-timeout worth<a name="line.491"></a>
-<span class="sourceLineNo">492</span>   *   of past records. If we don't read the records, we don't read and recover the nonces.<a name="line.492"></a>
-<span class="sourceLineNo">493</span>   *   Some WALs within nonce-timeout at recovery may not even be present due to rolling/cleanup.<a name="line.493"></a>
-<span class="sourceLineNo">494</span>   * - There's no WAL recovery during normal region move, so nonces will not be transfered.<a name="line.494"></a>
-<span class="sourceLineNo">495</span>   * We can have separate additional "Nonce WAL". It will just contain bunch of numbers and<a name="line.495"></a>
-<span class="sourceLineNo">496</span>   * won't be flushed on main path - because WAL itself also contains nonces, if we only flush<a name="line.496"></a>
-<span class="sourceLineNo">497</span>   * it before memstore flush, for a given nonce we will either see it in the WAL (if it was<a name="line.497"></a>
-<span class="sourceLineNo">498</span>   * never flushed to disk, it will be part of recovery), or we'll see it as part of the nonce<a name="line.498"></a>
-<span class="sourceLineNo">499</span>   * log (or both occasionally, which doesn't matter). Nonce log file can be deleted after the<a name="line.499"></a>
-<span class="sourceLineNo">500</span>   * latest nonce in it expired. It can also be recovered during move.<a name="line.500"></a>
-<span class="sourceLineNo">501</span>   */<a name="line.501"></a>
-<span class="sourceLineNo">502</span>  final ServerNonceManager nonceManager;<a name="line.502"></a>
-<span class="sourceLineNo">503</span><a name="line.503"></a>
-<span class="sourceLineNo">504</span>  private UserProvider userProvider;<a name="line.504"></a>
-<span class="sourceLineNo">505</span><a name="line.505"></a>
-<span class="sourceLineNo">506</span>  protected final RSRpcServices rpcServices;<a name="line.506"></a>
-<span class="sourceLineNo">507</span><a name="line.507"></a>
-<span class="sourceLineNo">508</span>  protected BaseCoordinatedStateManager csm;<a name="line.508"></a>
-<span class="sourceLineNo">509</span><a name="line.509"></a>
-<span class="sourceLineNo">510</span>  /**<a name="line.510"></a>
-<span class="sourceLineNo">511</span>   * Configuration manager is used to register/deregister and notify the configuration observers<a name="line.511"></a>
-<span class="sourceLineNo">512</span>   * when the regionserver is notified that there was a change in the on disk configs.<a name="line.512"></a>
-<span class="sourceLineNo">513</span>   */<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  protected final ConfigurationManager configurationManager;<a name="line.514"></a>
-<span class="sourceLineNo">515</span><a name="line.515"></a>
-<span class="sourceLineNo">516</span>  @VisibleForTesting<a name="line.516"></a>
-<span class="sourceLineNo">517</span>  CompactedHFilesDischarger compactedFileDischarger;<a name="line.517"></a>
-<span class="sourceLineNo">518</span><a name="line.518"></a>
-<span class="sourceLineNo">519</span>  private volatile ThroughputController flushThroughputController;<a name="line.519"></a>
-<span class="sourceLineNo">520</span><a name="line.520"></a>
-<span class="sourceLineNo">521</span>  protected SecureBulkLoadManager secureBulkLoadManager;<a name="line.521"></a>
-<span class="sourceLineNo">522</span><a name="line.522"></a>
-<span class="sourceLineNo">523</span>  protected FileSystemUtilizationChore fsUtilizationChore;<a name="line.523"></a>
-<span class="sourceLineNo">524</span><a name="line.524"></a>
-<span class="sourceLineNo">525</span>  /**<a name="line.525"></a>
-<span class="sourceLineNo">526</span>   * Starts a HRegionServer at the default location.<a name="line.526"></a>
-<span class="sourceLineNo">527</span>   */<a name="line.527"></a>
-<span class="sourceLineNo">528</span>  public HRegionServer(Configuration conf) throws IOException, InterruptedException {<a name="line.528"></a>
-<span class="sourceLineNo">529</span>    this(conf, CoordinatedStateManagerFactory.getCoordinatedStateManager(conf));<a name="line.529"></a>
-<span class="sourceLineNo">530</span>  }<a name="line.530"></a>
-<span class="sourceLineNo">531</span><a name="line.531"></a>
-<span class="sourceLineNo">532</span>  /**<a name="line.532"></a>
-<span class="sourceLineNo">533</span>   * Starts a HRegionServer at the default location<a name="line.533"></a>
-<span class="sourceLineNo">534</span>   * @param csm implementation of CoordinatedStateManager to be used<a name="line.534"></a>
-<span class="sourceLineNo">535</span>   */<a name="line.535"></a>
-<span class="sourceLineNo">536</span>  public HRegionServer(Configuration conf, CoordinatedStateManager csm) throws IOException {<a name="line.536"></a>
-<span class="sourceLineNo">537</span>    super("RegionServer");  // thread name<a name="line.537"></a>
-<span class="sourceLineNo">538</span>    this.fsOk = true;<a name="line.538"></a>
-<span class="sourceLineNo">539</span>    this.conf = conf;<a name="line.539"></a>
-<span class="sourceLineNo">540</span>    MemorySizeUtil.checkForClusterFreeHeapMemoryLimit(this.conf);<a name="line.540"></a>
-<span class="sourceLineNo">541</span>    HFile.checkHFileVersion(this.conf);<a name="line.541"></a>
-<span class="sourceLineNo">542</span>    checkCodecs(this.conf);<a name="line.542"></a>
-<span class="sourceLineNo">543</span>    this.userProvider = UserProvider.instantiate(conf);<a name="line.543"></a>
-<span class="sourceLineNo">544</span>    FSUtils.setupShortCircuitRead(this.conf);<a name="line.544"></a>
-<span class="sourceLineNo">545</span><a name="line.545"></a>
-<span class="sourceLineNo">546</span>    Replication.decorateRegionServerConfiguration(this.conf);<a name="line.546"></a>
-<span class="sourceLineNo">547</span><a name="line.547"></a>
-<span class="sourceLineNo">548</span>    // Disable usage of meta replicas in the regionserver<a name="line.548"></a>
-<span class="sourceLineNo">549</span>    this.conf.setBoolean(HConstants.USE_META_REPLICAS, false);<a name="line.549"></a>
-<span class="sourceLineNo">550</span>    // Config'ed params<a name="line.550"></a>
-<span class="sourceLineNo">551</span>    this.numRetries = this.conf.getInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.551"></a>
-<span class="sourceLineNo">552</span>        HConstants.DEFAULT_HBASE_CLIENT_RETRIES_NUMBER);<a name="line.552"></a>
-<span class="sourceLineNo">553</span>    this.threadWakeFrequency = conf.getInt(HConstants.THREAD_WAKE_FREQUENCY, 10 * 1000);<a name="line.553"></a>
-<span class="sourceLineNo">554</span>    this.msgInterval = conf.getInt("hbase.regionserver.msginterval", 3 * 1000);<a name="line.554"></a>
-<span class="sourceLineNo">555</span><a name="line.555"></a>
-<span class="sourceLineNo">556</span>    this.sleeper = new Sleeper(this.msgInterval, this);<a name="line.556"></a>
-<span class="sourceLineNo">557</span><a name="line.557"></a>
-<span class="sourceLineNo">558</span>    boolean isNoncesEnabled = conf.getBoolean(HConstants.HBASE_RS_NONCES_ENABLED, true);<a name="line.558"></a>
-<span class="sourceLineNo">559</span>    this.nonceManager = isNoncesEnabled ? new ServerNonceManager(this.conf) : null;<a name="line.559"></a>
-<span class="sourceLineNo">560</span><a name="line.560"></a>
-<span class="sourceLineNo">561</span>    this.numRegionsToReport = conf.getInt(<a name="line.561"></a>
-<span class="sourceLineNo">562</span>      "hbase.regionserver.numregionstoreport", 10);<a name="line.562"></a>
-<span class="sourceLineNo">563</span><a name="line.563"></a>
-<span class="sourceLineNo">564</span>    this.operationTimeout = conf.getInt(<a name="line.564"></a>
-<span class="sourceLineNo">565</span>      HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,<a name="line.565"></a>
-<span class="sourceLineNo">566</span>      HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);<a name="line.566"></a>
-<span class="sourceLineNo">567</span><a name="line.567"></a>
-<span class="sourceLineNo">568</span>    this.shortOperationTimeout = conf.getInt(<a name="line.568"></a>
-<span class="sourceLineNo">569</span>      HConstants.HBASE_RPC_SHORTOPERATION_TIMEOUT_KEY,<a name="line.569"></a>
-<span class="sourceLineNo">570</span>      HConstants.DEFAULT_HBASE_RPC_SHORTOPERATION_TIMEOUT);<a name="line.570"></a>
-<span class="sourceLineNo">571</span><a name="line.571"></a>
-<span class="sourceLineNo">572</span>    this.abortRequested = false;<a name="line.572"></a>
-<span class="sourceLineNo">573</span>    this.stopped = false;<a name="line.573"></a>
-<span class="sourceLineNo">574</span><a name="line.574"></a>
-<span class="sourceLineNo">575</span>    rpcServices = createRpcServices();<a name="line.575"></a>
-<span class="sourceLineNo">576</span>    this.startcode = System.currentTimeMillis();<a name="line.576"></a>
-<span class="sourceLineNo">577</span>    if (this instanceof HMaster) {<a name="line.577"></a>
-<span class="sourceLineNo">578</span>      useThisHostnameInstead = conf.get(MASTER_HOSTNAME_KEY);<a name="line.578"></a>
-<span class="sourceLineNo">579</span>    } else {<a name="line.579"></a>
-<span class="sourceLineNo">580</span>      useThisHostnameInstead = conf.get(RS_HOSTNAME_KEY);<a name="line.580"></a>
-<span class="sourceLineNo">581</span>    }<a name="line.581"></a>
-<span class="sourceLineNo">582</span>    String hostName = shouldUseThisHostnameInstead() ? useThisHostnameInstead :<a name="line.582"></a>
-<span class="sourceLineNo">583</span>      rpcServices.isa.getHostName();<a name="line.583"></a>
-<span class="sourceLineNo">584</span>    serverName = ServerName.valueOf(hostName, rpcServices.isa.getPort(), startcode);<a name="line.584"></a>
-<span class="sourceLineNo">585</span><a name="line.585"></a>
-<span class="sourceLineNo">586</span>    rpcControllerFactory = RpcControllerFactory.instantiate(this.conf);<a name="line.586"></a>
-<span class="sourceLineNo">587</span>    rpcRetryingCallerFactory = RpcRetryingCallerFactory.instantiate(this.conf);<a name="line.587"></a>
-<span class="sourceLineNo">588</span><a name="line.588"></a>
-<span class="sourceLineNo">589</span>    // login the zookeeper client principal (if using security)<a name="line.589"></a>
-<span class="sourceLineNo">590</span>    ZKUtil.loginClient(this.conf, HConstants.ZK_CLIENT_KEYTAB_FILE,<a name="line.590"></a>
-<span class="sourceLineNo">591</span>      HConstants.ZK_CLIENT_KERBEROS_PRINCIPAL, hostName);<a name="line.591"></a>
-<span class="sourceLineNo">592</span>    // login the server principal (if using secure Hadoop)<a name="line.592"></a>
-<span class="sourceLineNo">593</span>    login(userProvider, hostName);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>    // init superusers and add the server principal (if using security)<a name="line.594"></a>
-<span class="sourceLineNo">595</span>    // or process owner as default super user.<a name="line.595"></a>
-<span class="sourceLineNo">596</span>    Superusers.initialize(conf);<a name="line.596"></a>
-<span class="sourceLineNo">597</span><a name="line.597"></a>
-<span class="sourceLineNo">598</span>    regionServerAccounting = new RegionServerAccounting(conf);<a name="line.598"></a>
-<span class="sourceLineNo">599</span>    cacheConfig = new CacheConfig(conf);<a name="line.599"></a>
-<span class="sourceLineNo">600</span>    mobCacheConfig = new MobCacheConfig(conf);<a name="line.600"></a>
-<span class="sourceLineNo">601</span>    uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.601"></a>
-<span class="sourceLineNo">602</span>      @Override<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      public void uncaughtException(Thread t, Throwable e) {<a name="line.603"></a>
-<span class="sourceLineNo">604</span>        abort("Uncaught exception in service thread " + t.getName(), e);<a name="line.604"></a>
-<span class="sourceLineNo">605</span>      }<a name="line.605"></a>
-<span class="sourceLineNo">606</span>    };<a name="line.606"></a>
-<span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>    initializeFileSystem();<a name="line.608"></a>
-<span class="sourceLineNo">609</span><a name="line.609"></a>
-<span class="sourceLineNo">610</span>    service = new ExecutorService(getServerName().toShortString());<a name="line.610"></a>
-<span class="sourceLineNo">611</span>    spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.611"></a>
-<span class="sourceLineNo">612</span><a name="line.612"></a>
-<span class="sourceLineNo">613</span>    // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.613"></a>
-<span class="sourceLineNo">614</span>    if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>      // Open connection to zookeeper and set primary watcher<a name="line.615"></a>
-<span class="sourceLineNo">616</span>      zooKeeper = new ZooKeeperWatcher(conf, getProcessName() + ":" +<a name="line.616"></a>
-<span class="sourceLineNo">617</span>        rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.617"></a>
-<span class="sourceLineNo">618</span><a name="line.618"></a>
-<span class="sourceLineNo">619</span>      this.csm = (BaseCoordinatedStateManager) csm;<a name="line.619"></a>
-<span class="sourceLineNo">620</span>      this.csm.initialize(this);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>      this.csm.start();<a name="line.621"></a>
-<span class="sourceLineNo">622</span><a name="line.622"></a>
-<span class="sourceLineNo">623</span>      masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.623"></a>
-<span class="sourceLineNo">624</span>      masterAddressTracker.start();<a name="line.624"></a>
-<span class="sourceLineNo">625</span><a name="line.625"></a>
-<span class="sourceLineNo">626</span>      clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.626"></a>
-<span class="sourceLineNo">627</span>      clusterStatusTracker.start();<a name="line.627"></a>
-<span class="sourceLineNo">628</span>    }<a name="line.628"></a>
-<span class="sourceLineNo">629</span>    this.configurationManager = new ConfigurationManager();<a name="line.629"></a>
-<span class="sourceLineNo">630</span><a name="line.630"></a>
-<span class="sourceLineNo">631</span>    rpcServices.start();<a name="line.631"></a>
-<span class="sourceLineNo">632</span>    putUpWebUI();<a name="line.632"></a>
-<span class="sourceLineNo">633</span>    this.walRoller = new LogRoller(this, this);<a name="line.633"></a>
-<span class="sourceLineNo">634</span>    this.choreService = new ChoreService(getServerName().toString(), true);<a name="line.634"></a>
-<span class="sourceLineNo">635</span>    this.flushThroughputController = FlushThroughputControllerFactory.create(this, conf);<a name="line.635"></a>
-<span class="sourceLineNo">636</span><a name="line.636"></a>
-<span class="sourceLineNo">637</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.638"></a>
-<span class="sourceLineNo">639</span>        @Override<a name="line.639"></a>
-<span class="sourceLineNo">640</span>        public void handle(Signal signal) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>          getConfiguration().reloadConfiguration();<a name="line.641"></a>
-<span class="sourceLineNo">642</span>          configurationManager.notifyAllObservers(getConfiguration());<a name="line.642"></a>
-<span class="sourceLineNo">643</span>        }<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      });<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>    // Create the CompactedFileDischarger chore service. This chore helps to<a name="line.646"></a>
-<span class="sourceLineNo">647</span>    // remove the compacted files<a name="line.647"></a>
-<span class="sourceLineNo">648</span>    // that will no longer be used in reads.<a name="line.648"></a>
-<span class="sourceLineNo">649</span>    // Default is 2 mins. The default value for TTLCleaner is 5 mins so we set this to<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    // 2 mins so that compacted files can be archived before the TTLCleaner runs<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    int cleanerInterval =<a name="line.651"></a>
-<span class="sourceLineNo">652</span>        conf.getInt("hbase.hfile.compaction.discharger.interval", 2 * 60 * 1000);<a name="line.652"></a>
-<span class="sourceLineNo">653</span>    this.compactedFileDischarger =<a name="line.653"></a>
-<span class="sourceLineNo">654</span>        new CompactedHFilesDischarger(cleanerInterval, this, this);<a name="line.654"></a>
-<span class="sourceLineNo">655</span>    choreService.scheduleChore(compactedFileDischarger);<a name="line.655"></a>
-<span class="sourceLineNo">656</span>  }<a name="line.656"></a>
-<span class="sourceLineNo">657</span><a name="line.657"></a>
-<span class="sourceLineNo">658</span>  private void initializeFileSystem() throws IOException {<a name="line.658"></a>
-<span class="sourceLineNo">659</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.660"></a>
-<span class="sourceLineNo">661</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.662"></a>
-<span class="sourceLineNo">663</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.665"></a>
-<span class="sourceLineNo">666</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.666"></a>
-<span class="sourceLineNo">667</span>    // (unless all is set to defaults).<a name="line.667"></a>
-<span class="sourceLineNo">668</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.669"></a>
-<span class="sourceLineNo">670</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.670"></a>
-<span class="sourceLineNo">671</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.671"></a>
-<span class="sourceLineNo">672</span>  }<a name="line.672"></a>
-<span class="sourceLineNo">673</span><a name="line.673"></a>
-<span class="sourceLineNo">674</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.674"></a>
-<span class="sourceLineNo">675</span>    return new FSTableDescriptors(this.conf,<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false);<a name="line.676"></a>
-<span class="sourceLineNo">677</span>  }<a name="line.677"></a>
-<span class="sourceLineNo">678</span><a name="line.678"></a>
-<span class="sourceLineNo">679</span>  protected void setInitLatch(CountDownLatch latch) {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    this.initLatch = latch;<a name="line.680"></a>
-<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
-<span class="sourceLineNo">682</span><a name="line.682"></a>
-<span class="sourceLineNo">683</span>  /*<a name="line.683"></a>
-<span class="sourceLineNo">684</span>   * Returns true if configured hostname should be used<a name="line.684"></a>
-<span class="sourceLineNo">685</span>   */<a name="line.685"></a>
-<span class="sourceLineNo">686</span>  protected boolean shouldUseThisHostnameInstead() {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>    return useThisHostnameInstead != null &amp;&amp; !useThisHostnameInstead.isEmpty();<a name="line.687"></a>
-<span class="sourceLineNo">688</span>  }<a name="line.688"></a>
-<span class="sourceLineNo">689</span><a name="line.689"></a>
-<span class="sourceLineNo">690</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    user.login("hbase.regionserver.keytab.file",<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      "hbase.regionserver.kerberos.principal", host);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>  }<a name="line.693"></a>
-<span class="sourceLineNo">694</span><a name="line.694"></a>
-<span class="sourceLineNo">695</span>  protected void waitForMasterActive(){<a name="line.695"></a>
-<span class="sourceLineNo">696</span>  }<a name="line.696"></a>
-<span class="sourceLineNo">697</span><a name="line.697"></a>
-<span class="sourceLineNo">698</span>  protected String getProcessName() {<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    return REGIONSERVER;<a name="line.699"></a>
-<span class="sourceLineNo">700</span>  }<a name="line.700"></a>
-<span class="sourceLineNo">701</span><a name="line.701"></a>
-<span class="sourceLineNo">702</span>  protected boolean canCreateBaseZNode() {<a name="line.702"></a>
-<span class="sourceLineNo">703</span>    return false;<a name="line.703"></a>
-<span class="sourceLineNo">704</span>  }<a name="line.704"></a>
-<span class="sourceLineNo">705</span><a name="line.705"></a>
-<span class="sourceLineNo">706</span>  protected boolean canUpdateTableDescriptor() {<a name="line.706"></a>
-<span class="sourceLineNo">707</span>    return false;<a name="line.707"></a>
-<span class="sourceLineNo">708</span>  }<a name="line.708"></a>
-<span class="sourceLineNo">709</span><a name="line.709"></a>
-<span class="sourceLineNo">710</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return new RSRpcServices(this);<a name="line.711"></a>
-<span class="sourceLineNo">712</span>  }<a name="line.712"></a>
-<span class="sourceLineNo">713</span><a name="line.713"></a>
-<span class="sourceLineNo">714</span>  protected void configureInfoServer() {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.719"></a>
-<span class="sourceLineNo">720</span>    return RSDumpServlet.class;<a name="line.720"></a>
-<span class="sourceLineNo">721</span>  }<a name="line.721"></a>
-<span class="sourceLineNo">722</span><a name="line.722"></a>
-<span class="sourceLineNo">723</span>  @Override<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.724"></a>
-<span class="sourceLineNo">725</span>    /*<a name="line.725"></a>
-<span class="sourceLineNo">726</span>     * No stacking of instances is allowed for a single service name<a name="line.726"></a>
-<span class="sourceLineNo">727</span>     */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.728"></a>
-<span class="sourceLineNo">729</span>        instance.getDescriptorForType();<a name="line.729"></a>
-<span class="sourceLineNo">730</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      LOG.error("Coprocessor service " + serviceName<a name="line.732"></a>
-<span class="sourceLineNo">733</span>          + " already registered, rejecting request from " + instance);<a name="line.733"></a>
-<span class="sourceLineNo">734</span>      return false;<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    }<a name="line.735"></a>
-<span class="sourceLineNo">736</span><a name="line.736"></a>
-<span class="sourceLineNo">737</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    if (LOG.isDebugEnabled()) {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>      LOG.debug("Registered regionserver coprocessor service: service=" + serviceName);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    }<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    return true;<a name="line.741"></a>
-<span class="sourceLineNo">742</span>  }<a name="line.742"></a>
-<span class="sourceLineNo">743</span><a name="line.743"></a>
-<span class="sourceLineNo">744</span>  /**<a name="line.744"></a>
-<span class="sourceLineNo">745</span>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.745"></a>
-<span class="sourceLineNo">746</span>   * the local server. Safe to use going to local or remote server.<a name="line.746"></a>
-<span class="sourceLineNo">747</span>   * Create this instance in a method can be intercepted and mocked in tests.<a name="line.747"></a>
-<span class="sourceLineNo">748</span>   * @throws IOException<a name="line.748"></a>
-<span class="sourceLineNo">749</span>   */<a name="line.749"></a>
-<span class="sourceLineNo">750</span>  @VisibleForTesting<a name="line.750"></a>
-<span class="sourceLineNo">751</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.751"></a>
-<span class="sourceLineNo">752</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.753"></a>
-<span class="sourceLineNo">754</span>    // and remote invocations.<a name="line.754"></a>
-<span class="sourceLineNo">755</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.755"></a>
-<span class="sourceLineNo">756</span>      serverName, rpcServices, rpcServices);<a name="line.756"></a>
-<span class="sourceLineNo">757</span>  }<a name="line.757"></a>
-<span class="sourceLineNo">758</span><a name="line.758"></a>
-<span class="sourceLineNo">759</span>  /**<a name="line.759"></a>
-<span class="sourceLineNo">760</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.760"></a>
-<span class="sourceLineNo">761</span>   * @param c<a name="line.761"></a>
-<span class="sourceLineNo">762</span>   * @throws IOException<a name="line.762"></a>
-<span class="sourceLineNo">763</span>   */<a name="line.763"></a>
-<span class="sourceLineNo">764</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.764"></a>
-<span class="sourceLineNo">765</span>    // check to see if the codec list is available:<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.766"></a>
-<span class="sourceLineNo">767</span>    if (codecs == null) return;<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    for (String codec : codecs) {<a name="line.768"></a>
-<span class="sourceLineNo">769</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.769"></a>
-<span class="sourceLineNo">770</span>        throw new IOException("Compression codec " + codec +<a name="line.770"></a>
-<span class="sourceLineNo">771</span>          " not supported, aborting RS construction");<a name="line.771"></a>
-<span class="sourceLineNo">772</span>      }<a name="line.772"></a>
-<span class="sourceLineNo">773</span>    }<a name="line.773"></a>
-<span class="sourceLineNo">774</span>  }<a name="line.774"></a>
-<span class="sourceLineNo">775</span><a name="line.775"></a>
-<span class="sourceLineNo">776</span>  public String getClusterId() {<a name="line.776"></a>
-<span class="sourceLineNo">777</span>    return this.clusterId;<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  }<a name="line.778"></a>
-<span class="sourceLineNo">779</span><a name="line.779"></a>
-<span class="sourceLineNo">780</span>  /**<a name="line.780"></a>
-<span class="sourceLineNo">781</span>   * Setup our cluster connection if not already initialized.<a name="line.781"></a>
-<span class="sourceLineNo">782</span>   * @throws IOException<a name="line.782"></a>
-<span class="sourceLineNo">783</span>   */<a name="line.783"></a>
-<span class="sourceLineNo">784</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.784"></a>
-<span class="sourceLineNo">785</span>    if (clusterConnection == null) {<a name="line.785"></a>
-<span class="sourceLineNo">786</span>      clusterConnection = createClusterConnection();<a name="line.786"></a>
-<span class="sourceLineNo">787</span>      metaTableLocator = new MetaTableLocator();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    }<a name="line.788"></a>
-<span class="sourceLineNo">789</span>  }<a name="line.789"></a>
-<span class="sourceLineNo">790</span><a name="line.790"></a>
-<span class="sourceLineNo">791</span>  /**<a name="line.791"></a>
-<span class="sourceLineNo">792</span>   * All initialization needed before we go register with Master.<a name="line.792"></a>
-<span class="sourceLineNo">793</span>   *<a name="line.793"></a>
-<span class="sourceLineNo">794</span>   * @throws IOException<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * @throws InterruptedException<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   */<a name="line.796"></a>
-<span class="sourceLineNo">797</span>  private void preRegistrationInitialization(){<a name="line.797"></a>
-<span class="sourceLineNo">798</span>    try {<a name="line.798"></a>
-<span class="sourceLineNo">799</span>      setupClusterConnection();<a name="line.799"></a>
-<span class="sourceLineNo">800</span><a name="line.800"></a>
-<span class="sourceLineNo">801</span>      this.secureBulkLoadManager = new SecureBulkLoadManager(this.conf, clusterConnection);<a name="line.801"></a>
-<span class="sourceLineNo">802</span>      this.secureBulkLoadManager.start();<a name="line.802"></a>
-<span class="sourceLineNo">803</span><a name="line.803"></a>
-<span class="sourceLineNo">804</span>      // Health checker thread.<a name="line.804"></a>
-<span class="sourceLineNo">805</span>      if (isHealthCheckerConfigured()) {<a name="line.805"></a>
-<span class="sourceLineNo">806</span>        int sleepTime = this.conf.getInt(HConstants.HEALTH_CHORE_WAKE_FREQ,<a name="line.806"></a>
-<span class="sourceLineNo">807</span>          HConstants.DEFAULT_THREAD_WAKE_FREQUENCY);<a name="line.807"></a>
-<span class="sourceLineNo">808</span>        healthCheckChore = new HealthCheckChore(sleepTime, this, getConfiguration());<a name="line.808"></a>
-<span class="sourceLineNo">809</span>      }<a name="line.809"></a>
-<span class="sourceLineNo">810</span><a name="line.810"></a>
-<span class="sourceLineNo">811</span>      initializeZooKeeper();<a name="line.811"></a>
-<span class="sourceLineNo">812</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.812"></a>
-<span class="sourceLineNo">813</span>        initializeThreads();<a name="line.813"></a>
-<span class="sourceLineNo">814</span>      }<a name="line.814"></a>
-<span class="sourceLineNo">815</span>    } catch (Throwable t) {<a name="line.815"></a>
-<span class="sourceLineNo">816</span>      // Call stop if error or process will stick around for ever since server<a name="line.816"></a>
-<span class="sourceLineNo">817</span>      // puts up non-daemon threads.<a name="line.817"></a>
-<span class="sourceLineNo">818</span>      this.rpcServices.stop();<a name="line.818"></a>
-<span class="sourceLineNo">819</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    }<a name="line.820"></a>
-<span class="sourceLineNo">821</span>  }<a name="line.821"></a>
-<span class="sourceLineNo">822</span><a name="line.822"></a>
-<span class="sourceLineNo">823</span>  /**<a name="line.823"></a>
-<span class="sourceLineNo">824</span>   * Bring up connection to zk ensemble and then wait until a master for this<a name="line.824"></a>
-<span class="sourceLineNo">825</span>   * cluster and then after that, wait until cluster 'up' flag has been set.<a name="line.825"></a>
-<span class="sourceLineNo">826</span>   * This is the order in which master does things.<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * Finally open long-living server short-circuit connection.<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * @throws IOException<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * @throws InterruptedException<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   */<a name="line.830"></a>
-<span class="sourceLineNo">831</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    justification="cluster Id znode read would give us correct response")<a name="line.832"></a>
-<span class="sourceLineNo">833</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.833"></a>
-<span class="sourceLineNo">834</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.834"></a>
-<span class="sourceLineNo">835</span>    // block until a master is available.  No point in starting up if no master<a name="line.835"></a>
-<span class="sourceLineNo">836</span>    // running.<a name="line.836"></a>
-<span class="sourceLineNo">837</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.837"></a>
-<span class="sourceLineNo">838</span><a name="line.838"></a>
-<span class="sourceLineNo">839</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.839"></a>
-<span class="sourceLineNo">840</span>    // when ready.<a name="line.840"></a>
-<span class="sourceLineNo">841</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.841"></a>
-<span class="sourceLineNo">842</span><a name="line.842"></a>
-<span class="sourceLineNo">843</span>    doLatch(this.initLatch);<a name="line.843"></a>
-<span class="sourceLineNo">844</span><a name="line.844"></a>
-<span class="sourceLineNo">845</span>    // Retrieve clusterId<a name="line.845"></a>
-<span class="sourceLineNo">846</span>    // Since cluster status is now up<a name="line.846"></a>
-<span class="sourceLineNo">847</span>    // ID should have already been set by HMaster<a name="line.847"></a>
-<span class="sourceLineNo">848</span>    try {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>      clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.849"></a>
-<span class="sourceLineNo">850</span>      if (clusterId == null) {<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        this.abort("Cluster ID has not been set");<a name="line.851"></a>
-<span class="sourceLineNo">852</span>      }<a name="line.852"></a>
-<span class="sourceLineNo">853</span>      LOG.info("ClusterId : "+clusterId);<a name="line.853"></a>
-<span class="sourceLineNo">854</span>    } catch (KeeperException e) {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>      this.abort("Failed to retrieve Cluster ID",e);<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    }<a name="line.856"></a>
-<span class="sourceLineNo">857</span><a name="line.857"></a>
-<span class="sourceLineNo">858</span>    // In case colocated master, wait here till it's active.<a name="line.858"></a>
-<span class="sourceLineNo">859</span>    // So backup masters won't start as regionservers.<a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // This is to avoid showing backup masters as regionservers<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // in master web UI, or assigning any region to them.<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    waitForMasterActive();<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    if (isStopped() || isAborted()) {<a name="line.863"></a>
-<span class="sourceLineNo">864</span>      return; // No need for further initialization<a name="line.864"></a>
-<span class="sourceLineNo">865</span>    }<a name="line.865"></a>
-<span class="sourceLineNo">866</span><a name="line.866"></a>
-<span class="sourceLineNo">867</span>    // watch for snapshots and other procedures<a name="line.867"></a>
-<span class="sourceLineNo">868</span>    try {<a name="line.868"></a>
-<span class="sourceLineNo">869</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.869"></a>
-<span class="sourceLineNo">870</span>      rspmHost.loadProcedures(conf);<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      rspmHost.initialize(this);<a name="line.871"></a>
-<span class="sourceLineNo">872</span>    } catch (KeeperException e) {<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.873"></a>
-<span class="sourceLineNo">874</span>    }<a name="line.874"></a>
-<span class="sourceLineNo">875</span>    // register watcher for recovering regions<a name="line.875"></a>
-<span class="sourceLineNo">876</span>    this.recoveringRegionWatcher = new RecoveringRegionWatcher(this.zooKeeper, this);<a name="line.876"></a>
-<span class="sourceLineNo">877</span>  }<a name="line.877"></a>
-<span class="sourceLineNo">878</span><a name="line.878"></a>
-<span class="sourceLineNo">879</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED",<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      justification="We don't care about the return")<a name="line.880"></a>
-<span class="sourceLineNo">881</span>  private void doLatch(final CountDownLatch latch) throws InterruptedException {<a name="line.881"></a>
-<span class="sourceLineNo">882</span>    if (latch != null) {<a name="line.882"></a>
-<span class="sourceLineNo">883</span>      // Result is ignored intentionally but if I remove the below, findbugs complains (the<a name="line.883"></a>
-<span class="sourceLineNo">884</span>      // above justification on this method doesn't seem to suppress it).<a name="line.884"></a>
-<span class="sourceLineNo">885</span>      boolean result = latch.await(20, TimeUnit.SECONDS);<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    }<a name="line.886"></a>
-<span class="sourceLineNo">887</span>  }<a name="line.887"></a>
-<span class="sourceLineNo">888</span><a name="line.888"></a>
-<span class="sourceLineNo">889</span>  /**<a name="line.889"></a>
-<span class="sourceLineNo">890</span>   * Utilty method to wait indefinitely on a znode availa

<TRUNCATED>

[28/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
index 959e3ef..ac32645 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegion.ObservedExceptionsInBatch.html
@@ -1401,6821 +1401,6830 @@
 <span class="sourceLineNo">1393</span>  @Override<a name="line.1393"></a>
 <span class="sourceLineNo">1394</span>  public boolean isSplittable() {<a name="line.1394"></a>
 <span class="sourceLineNo">1395</span>    boolean result = isAvailable() &amp;&amp; !hasReferences();<a name="line.1395"></a>
-<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result, new Throwable("LOGGING"));<a name="line.1396"></a>
-<span class="sourceLineNo">1397</span>    return result;<a name="line.1397"></a>
-<span class="sourceLineNo">1398</span>  }<a name="line.1398"></a>
-<span class="sourceLineNo">1399</span><a name="line.1399"></a>
-<span class="sourceLineNo">1400</span>  @Override<a name="line.1400"></a>
-<span class="sourceLineNo">1401</span>  public boolean isMergeable() {<a name="line.1401"></a>
-<span class="sourceLineNo">1402</span>    if (!isAvailable()) {<a name="line.1402"></a>
-<span class="sourceLineNo">1403</span>      LOG.debug("Region " + this<a name="line.1403"></a>
-<span class="sourceLineNo">1404</span>          + " is not mergeable because it is closing or closed");<a name="line.1404"></a>
-<span class="sourceLineNo">1405</span>      return false;<a name="line.1405"></a>
-<span class="sourceLineNo">1406</span>    }<a name="line.1406"></a>
-<span class="sourceLineNo">1407</span>    if (hasReferences()) {<a name="line.1407"></a>
-<span class="sourceLineNo">1408</span>      LOG.debug("Region " + this<a name="line.1408"></a>
-<span class="sourceLineNo">1409</span>          + " is not mergeable because it has references");<a name="line.1409"></a>
-<span class="sourceLineNo">1410</span>      return false;<a name="line.1410"></a>
-<span class="sourceLineNo">1411</span>    }<a name="line.1411"></a>
-<span class="sourceLineNo">1412</span><a name="line.1412"></a>
-<span class="sourceLineNo">1413</span>    return true;<a name="line.1413"></a>
-<span class="sourceLineNo">1414</span>  }<a name="line.1414"></a>
-<span class="sourceLineNo">1415</span><a name="line.1415"></a>
-<span class="sourceLineNo">1416</span>  public boolean areWritesEnabled() {<a name="line.1416"></a>
-<span class="sourceLineNo">1417</span>    synchronized(this.writestate) {<a name="line.1417"></a>
-<span class="sourceLineNo">1418</span>      return this.writestate.writesEnabled;<a name="line.1418"></a>
-<span class="sourceLineNo">1419</span>    }<a name="line.1419"></a>
-<span class="sourceLineNo">1420</span>  }<a name="line.1420"></a>
+<span class="sourceLineNo">1396</span>    LOG.info("ASKED IF SPLITTABLE " + result + " " + getRegionInfo().getShortNameToLog(),<a name="line.1396"></a>
+<span class="sourceLineNo">1397</span>      new Throwable("LOGGING: REMOVE"));<a name="line.1397"></a>
+<span class="sourceLineNo">1398</span>    // REMOVE BELOW!!!!<a name="line.1398"></a>
+<span class="sourceLineNo">1399</span>    LOG.info("DEBUG LIST ALL FILES");<a name="line.1399"></a>
+<span class="sourceLineNo">1400</span>    for (Store store: this.stores.values()) {<a name="line.1400"></a>
+<span class="sourceLineNo">1401</span>      LOG.info("store " + store.getColumnFamilyName());<a name="line.1401"></a>
+<span class="sourceLineNo">1402</span>      for (StoreFile sf: store.getStorefiles()) {<a name="line.1402"></a>
+<span class="sourceLineNo">1403</span>        LOG.info(sf.toStringDetailed());<a name="line.1403"></a>
+<span class="sourceLineNo">1404</span>      }<a name="line.1404"></a>
+<span class="sourceLineNo">1405</span>    }<a name="line.1405"></a>
+<span class="sourceLineNo">1406</span>    return result;<a name="line.1406"></a>
+<span class="sourceLineNo">1407</span>  }<a name="line.1407"></a>
+<span class="sourceLineNo">1408</span><a name="line.1408"></a>
+<span class="sourceLineNo">1409</span>  @Override<a name="line.1409"></a>
+<span class="sourceLineNo">1410</span>  public boolean isMergeable() {<a name="line.1410"></a>
+<span class="sourceLineNo">1411</span>    if (!isAvailable()) {<a name="line.1411"></a>
+<span class="sourceLineNo">1412</span>      LOG.debug("Region " + this<a name="line.1412"></a>
+<span class="sourceLineNo">1413</span>          + " is not mergeable because it is closing or closed");<a name="line.1413"></a>
+<span class="sourceLineNo">1414</span>      return false;<a name="line.1414"></a>
+<span class="sourceLineNo">1415</span>    }<a name="line.1415"></a>
+<span class="sourceLineNo">1416</span>    if (hasReferences()) {<a name="line.1416"></a>
+<span class="sourceLineNo">1417</span>      LOG.debug("Region " + this<a name="line.1417"></a>
+<span class="sourceLineNo">1418</span>          + " is not mergeable because it has references");<a name="line.1418"></a>
+<span class="sourceLineNo">1419</span>      return false;<a name="line.1419"></a>
+<span class="sourceLineNo">1420</span>    }<a name="line.1420"></a>
 <span class="sourceLineNo">1421</span><a name="line.1421"></a>
-<span class="sourceLineNo">1422</span>  @VisibleForTesting<a name="line.1422"></a>
-<span class="sourceLineNo">1423</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1423"></a>
-<span class="sourceLineNo">1424</span>    return mvcc;<a name="line.1424"></a>
-<span class="sourceLineNo">1425</span>  }<a name="line.1425"></a>
-<span class="sourceLineNo">1426</span><a name="line.1426"></a>
-<span class="sourceLineNo">1427</span>  @Override<a name="line.1427"></a>
-<span class="sourceLineNo">1428</span>  public long getMaxFlushedSeqId() {<a name="line.1428"></a>
-<span class="sourceLineNo">1429</span>    return maxFlushedSeqId;<a name="line.1429"></a>
-<span class="sourceLineNo">1430</span>  }<a name="line.1430"></a>
-<span class="sourceLineNo">1431</span><a name="line.1431"></a>
-<span class="sourceLineNo">1432</span>  @Override<a name="line.1432"></a>
-<span class="sourceLineNo">1433</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1433"></a>
-<span class="sourceLineNo">1434</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1434"></a>
-<span class="sourceLineNo">1435</span>      // This scan can read even uncommitted transactions<a name="line.1435"></a>
-<span class="sourceLineNo">1436</span>      return Long.MAX_VALUE;<a name="line.1436"></a>
-<span class="sourceLineNo">1437</span>    }<a name="line.1437"></a>
-<span class="sourceLineNo">1438</span>    return mvcc.getReadPoint();<a name="line.1438"></a>
+<span class="sourceLineNo">1422</span>    return true;<a name="line.1422"></a>
+<span class="sourceLineNo">1423</span>  }<a name="line.1423"></a>
+<span class="sourceLineNo">1424</span><a name="line.1424"></a>
+<span class="sourceLineNo">1425</span>  public boolean areWritesEnabled() {<a name="line.1425"></a>
+<span class="sourceLineNo">1426</span>    synchronized(this.writestate) {<a name="line.1426"></a>
+<span class="sourceLineNo">1427</span>      return this.writestate.writesEnabled;<a name="line.1427"></a>
+<span class="sourceLineNo">1428</span>    }<a name="line.1428"></a>
+<span class="sourceLineNo">1429</span>  }<a name="line.1429"></a>
+<span class="sourceLineNo">1430</span><a name="line.1430"></a>
+<span class="sourceLineNo">1431</span>  @VisibleForTesting<a name="line.1431"></a>
+<span class="sourceLineNo">1432</span>  public MultiVersionConcurrencyControl getMVCC() {<a name="line.1432"></a>
+<span class="sourceLineNo">1433</span>    return mvcc;<a name="line.1433"></a>
+<span class="sourceLineNo">1434</span>  }<a name="line.1434"></a>
+<span class="sourceLineNo">1435</span><a name="line.1435"></a>
+<span class="sourceLineNo">1436</span>  @Override<a name="line.1436"></a>
+<span class="sourceLineNo">1437</span>  public long getMaxFlushedSeqId() {<a name="line.1437"></a>
+<span class="sourceLineNo">1438</span>    return maxFlushedSeqId;<a name="line.1438"></a>
 <span class="sourceLineNo">1439</span>  }<a name="line.1439"></a>
 <span class="sourceLineNo">1440</span><a name="line.1440"></a>
 <span class="sourceLineNo">1441</span>  @Override<a name="line.1441"></a>
-<span class="sourceLineNo">1442</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
-<span class="sourceLineNo">1443</span>    return getReadPoint(isolationLevel);<a name="line.1443"></a>
-<span class="sourceLineNo">1444</span>  }<a name="line.1444"></a>
-<span class="sourceLineNo">1445</span><a name="line.1445"></a>
-<span class="sourceLineNo">1446</span>  @Override<a name="line.1446"></a>
-<span class="sourceLineNo">1447</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1447"></a>
-<span class="sourceLineNo">1448</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1448"></a>
-<span class="sourceLineNo">1449</span>  }<a name="line.1449"></a>
-<span class="sourceLineNo">1450</span><a name="line.1450"></a>
-<span class="sourceLineNo">1451</span>  /**<a name="line.1451"></a>
-<span class="sourceLineNo">1452</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1452"></a>
-<span class="sourceLineNo">1453</span>   * service any more calls.<a name="line.1453"></a>
-<span class="sourceLineNo">1454</span>   *<a name="line.1454"></a>
-<span class="sourceLineNo">1455</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1455"></a>
-<span class="sourceLineNo">1456</span>   * time-sensitive thread.<a name="line.1456"></a>
-<span class="sourceLineNo">1457</span>   *<a name="line.1457"></a>
-<span class="sourceLineNo">1458</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1458"></a>
-<span class="sourceLineNo">1459</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1459"></a>
-<span class="sourceLineNo">1460</span>   * vector if already closed and null if judged that it should not close.<a name="line.1460"></a>
-<span class="sourceLineNo">1461</span>   *<a name="line.1461"></a>
-<span class="sourceLineNo">1462</span>   * @throws IOException e<a name="line.1462"></a>
-<span class="sourceLineNo">1463</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1463"></a>
-<span class="sourceLineNo">1464</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1464"></a>
-<span class="sourceLineNo">1465</span>   * caller MUST abort after this.<a name="line.1465"></a>
-<span class="sourceLineNo">1466</span>   */<a name="line.1466"></a>
-<span class="sourceLineNo">1467</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1467"></a>
-<span class="sourceLineNo">1468</span>    return close(false);<a name="line.1468"></a>
-<span class="sourceLineNo">1469</span>  }<a name="line.1469"></a>
-<span class="sourceLineNo">1470</span><a name="line.1470"></a>
-<span class="sourceLineNo">1471</span>  private final Object closeLock = new Object();<a name="line.1471"></a>
-<span class="sourceLineNo">1472</span><a name="line.1472"></a>
-<span class="sourceLineNo">1473</span>  /** Conf key for the periodic flush interval */<a name="line.1473"></a>
-<span class="sourceLineNo">1474</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1474"></a>
-<span class="sourceLineNo">1475</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1475"></a>
-<span class="sourceLineNo">1476</span>  /** Default interval for the memstore flush */<a name="line.1476"></a>
-<span class="sourceLineNo">1477</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1477"></a>
-<span class="sourceLineNo">1478</span>  /** Default interval for System tables memstore flush */<a name="line.1478"></a>
-<span class="sourceLineNo">1479</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1479"></a>
-<span class="sourceLineNo">1480</span><a name="line.1480"></a>
-<span class="sourceLineNo">1481</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1481"></a>
-<span class="sourceLineNo">1482</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1482"></a>
-<span class="sourceLineNo">1483</span>      "hbase.regionserver.flush.per.changes";<a name="line.1483"></a>
-<span class="sourceLineNo">1484</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1484"></a>
-<span class="sourceLineNo">1485</span>  /**<a name="line.1485"></a>
-<span class="sourceLineNo">1486</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1486"></a>
-<span class="sourceLineNo">1487</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1487"></a>
-<span class="sourceLineNo">1488</span>   */<a name="line.1488"></a>
-<span class="sourceLineNo">1489</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1489"></a>
-<span class="sourceLineNo">1490</span><a name="line.1490"></a>
-<span class="sourceLineNo">1491</span>  /**<a name="line.1491"></a>
-<span class="sourceLineNo">1492</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1492"></a>
-<span class="sourceLineNo">1493</span>   * Shut down each HStore, don't service any more calls.<a name="line.1493"></a>
-<span class="sourceLineNo">1494</span>   *<a name="line.1494"></a>
-<span class="sourceLineNo">1495</span>   * This method could take some time to execute, so don't call it from a<a name="line.1495"></a>
-<span class="sourceLineNo">1496</span>   * time-sensitive thread.<a name="line.1496"></a>
-<span class="sourceLineNo">1497</span>   *<a name="line.1497"></a>
-<span class="sourceLineNo">1498</span>   * @param abort true if server is aborting (only during testing)<a name="line.1498"></a>
-<span class="sourceLineNo">1499</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1499"></a>
-<span class="sourceLineNo">1500</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1500"></a>
-<span class="sourceLineNo">1501</span>   * we are not to close at this time or we are already closed.<a name="line.1501"></a>
-<span class="sourceLineNo">1502</span>   *<a name="line.1502"></a>
-<span class="sourceLineNo">1503</span>   * @throws IOException e<a name="line.1503"></a>
-<span class="sourceLineNo">1504</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1504"></a>
-<span class="sourceLineNo">1505</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1505"></a>
-<span class="sourceLineNo">1506</span>   * caller MUST abort after this.<a name="line.1506"></a>
-<span class="sourceLineNo">1507</span>   */<a name="line.1507"></a>
-<span class="sourceLineNo">1508</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1508"></a>
-<span class="sourceLineNo">1509</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1509"></a>
-<span class="sourceLineNo">1510</span>    // threads attempting to close will run up against each other.<a name="line.1510"></a>
-<span class="sourceLineNo">1511</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1511"></a>
-<span class="sourceLineNo">1512</span>        "Closing region " + this +<a name="line.1512"></a>
-<span class="sourceLineNo">1513</span>        (abort ? " due to abort" : ""));<a name="line.1513"></a>
-<span class="sourceLineNo">1514</span><a name="line.1514"></a>
-<span class="sourceLineNo">1515</span>    status.setStatus("Waiting for close lock");<a name="line.1515"></a>
-<span class="sourceLineNo">1516</span>    try {<a name="line.1516"></a>
-<span class="sourceLineNo">1517</span>      synchronized (closeLock) {<a name="line.1517"></a>
-<span class="sourceLineNo">1518</span>        return doClose(abort, status);<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      }<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>    } finally {<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      status.cleanup();<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>    }<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>  }<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>  /**<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>   * Exposed for some very specific unit tests.<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>   */<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>  @VisibleForTesting<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>  public void setClosing(boolean closing) {<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>    this.closing.set(closing);<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>  }<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
-<span class="sourceLineNo">1533</span>  /**<a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>   */<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span>  @VisibleForTesting<a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>  }<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span><a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      justification="I think FindBugs is confused")<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>      throws IOException {<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    if (isClosed()) {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      LOG.warn("Region " + this + " already closed");<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>      return null;<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1442</span>  public long getReadPoint(IsolationLevel isolationLevel) {<a name="line.1442"></a>
+<span class="sourceLineNo">1443</span>    if (isolationLevel != null &amp;&amp; isolationLevel == IsolationLevel.READ_UNCOMMITTED) {<a name="line.1443"></a>
+<span class="sourceLineNo">1444</span>      // This scan can read even uncommitted transactions<a name="line.1444"></a>
+<span class="sourceLineNo">1445</span>      return Long.MAX_VALUE;<a name="line.1445"></a>
+<span class="sourceLineNo">1446</span>    }<a name="line.1446"></a>
+<span class="sourceLineNo">1447</span>    return mvcc.getReadPoint();<a name="line.1447"></a>
+<span class="sourceLineNo">1448</span>  }<a name="line.1448"></a>
+<span class="sourceLineNo">1449</span><a name="line.1449"></a>
+<span class="sourceLineNo">1450</span>  @Override<a name="line.1450"></a>
+<span class="sourceLineNo">1451</span>  public long getReadpoint(IsolationLevel isolationLevel) {<a name="line.1451"></a>
+<span class="sourceLineNo">1452</span>    return getReadPoint(isolationLevel);<a name="line.1452"></a>
+<span class="sourceLineNo">1453</span>  }<a name="line.1453"></a>
+<span class="sourceLineNo">1454</span><a name="line.1454"></a>
+<span class="sourceLineNo">1455</span>  @Override<a name="line.1455"></a>
+<span class="sourceLineNo">1456</span>  public boolean isLoadingCfsOnDemandDefault() {<a name="line.1456"></a>
+<span class="sourceLineNo">1457</span>    return this.isLoadingCfsOnDemandDefault;<a name="line.1457"></a>
+<span class="sourceLineNo">1458</span>  }<a name="line.1458"></a>
+<span class="sourceLineNo">1459</span><a name="line.1459"></a>
+<span class="sourceLineNo">1460</span>  /**<a name="line.1460"></a>
+<span class="sourceLineNo">1461</span>   * Close down this HRegion.  Flush the cache, shut down each HStore, don't<a name="line.1461"></a>
+<span class="sourceLineNo">1462</span>   * service any more calls.<a name="line.1462"></a>
+<span class="sourceLineNo">1463</span>   *<a name="line.1463"></a>
+<span class="sourceLineNo">1464</span>   * &lt;p&gt;This method could take some time to execute, so don't call it from a<a name="line.1464"></a>
+<span class="sourceLineNo">1465</span>   * time-sensitive thread.<a name="line.1465"></a>
+<span class="sourceLineNo">1466</span>   *<a name="line.1466"></a>
+<span class="sourceLineNo">1467</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1467"></a>
+<span class="sourceLineNo">1468</span>   * HStores make use of.  It's a list of all StoreFile objects. Returns empty<a name="line.1468"></a>
+<span class="sourceLineNo">1469</span>   * vector if already closed and null if judged that it should not close.<a name="line.1469"></a>
+<span class="sourceLineNo">1470</span>   *<a name="line.1470"></a>
+<span class="sourceLineNo">1471</span>   * @throws IOException e<a name="line.1471"></a>
+<span class="sourceLineNo">1472</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1472"></a>
+<span class="sourceLineNo">1473</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1473"></a>
+<span class="sourceLineNo">1474</span>   * caller MUST abort after this.<a name="line.1474"></a>
+<span class="sourceLineNo">1475</span>   */<a name="line.1475"></a>
+<span class="sourceLineNo">1476</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close() throws IOException {<a name="line.1476"></a>
+<span class="sourceLineNo">1477</span>    return close(false);<a name="line.1477"></a>
+<span class="sourceLineNo">1478</span>  }<a name="line.1478"></a>
+<span class="sourceLineNo">1479</span><a name="line.1479"></a>
+<span class="sourceLineNo">1480</span>  private final Object closeLock = new Object();<a name="line.1480"></a>
+<span class="sourceLineNo">1481</span><a name="line.1481"></a>
+<span class="sourceLineNo">1482</span>  /** Conf key for the periodic flush interval */<a name="line.1482"></a>
+<span class="sourceLineNo">1483</span>  public static final String MEMSTORE_PERIODIC_FLUSH_INTERVAL =<a name="line.1483"></a>
+<span class="sourceLineNo">1484</span>      "hbase.regionserver.optionalcacheflushinterval";<a name="line.1484"></a>
+<span class="sourceLineNo">1485</span>  /** Default interval for the memstore flush */<a name="line.1485"></a>
+<span class="sourceLineNo">1486</span>  public static final int DEFAULT_CACHE_FLUSH_INTERVAL = 3600000;<a name="line.1486"></a>
+<span class="sourceLineNo">1487</span>  /** Default interval for System tables memstore flush */<a name="line.1487"></a>
+<span class="sourceLineNo">1488</span>  public static final int SYSTEM_CACHE_FLUSH_INTERVAL = 300000; // 5 minutes<a name="line.1488"></a>
+<span class="sourceLineNo">1489</span><a name="line.1489"></a>
+<span class="sourceLineNo">1490</span>  /** Conf key to force a flush if there are already enough changes for one region in memstore */<a name="line.1490"></a>
+<span class="sourceLineNo">1491</span>  public static final String MEMSTORE_FLUSH_PER_CHANGES =<a name="line.1491"></a>
+<span class="sourceLineNo">1492</span>      "hbase.regionserver.flush.per.changes";<a name="line.1492"></a>
+<span class="sourceLineNo">1493</span>  public static final long DEFAULT_FLUSH_PER_CHANGES = 30000000; // 30 millions<a name="line.1493"></a>
+<span class="sourceLineNo">1494</span>  /**<a name="line.1494"></a>
+<span class="sourceLineNo">1495</span>   * The following MAX_FLUSH_PER_CHANGES is large enough because each KeyValue has 20+ bytes<a name="line.1495"></a>
+<span class="sourceLineNo">1496</span>   * overhead. Therefore, even 1G empty KVs occupy at least 20GB memstore size for a single region<a name="line.1496"></a>
+<span class="sourceLineNo">1497</span>   */<a name="line.1497"></a>
+<span class="sourceLineNo">1498</span>  public static final long MAX_FLUSH_PER_CHANGES = 1000000000; // 1G<a name="line.1498"></a>
+<span class="sourceLineNo">1499</span><a name="line.1499"></a>
+<span class="sourceLineNo">1500</span>  /**<a name="line.1500"></a>
+<span class="sourceLineNo">1501</span>   * Close down this HRegion.  Flush the cache unless abort parameter is true,<a name="line.1501"></a>
+<span class="sourceLineNo">1502</span>   * Shut down each HStore, don't service any more calls.<a name="line.1502"></a>
+<span class="sourceLineNo">1503</span>   *<a name="line.1503"></a>
+<span class="sourceLineNo">1504</span>   * This method could take some time to execute, so don't call it from a<a name="line.1504"></a>
+<span class="sourceLineNo">1505</span>   * time-sensitive thread.<a name="line.1505"></a>
+<span class="sourceLineNo">1506</span>   *<a name="line.1506"></a>
+<span class="sourceLineNo">1507</span>   * @param abort true if server is aborting (only during testing)<a name="line.1507"></a>
+<span class="sourceLineNo">1508</span>   * @return Vector of all the storage files that the HRegion's component<a name="line.1508"></a>
+<span class="sourceLineNo">1509</span>   * HStores make use of.  It's a list of StoreFile objects.  Can be null if<a name="line.1509"></a>
+<span class="sourceLineNo">1510</span>   * we are not to close at this time or we are already closed.<a name="line.1510"></a>
+<span class="sourceLineNo">1511</span>   *<a name="line.1511"></a>
+<span class="sourceLineNo">1512</span>   * @throws IOException e<a name="line.1512"></a>
+<span class="sourceLineNo">1513</span>   * @throws DroppedSnapshotException Thrown when replay of wal is required<a name="line.1513"></a>
+<span class="sourceLineNo">1514</span>   * because a Snapshot was not properly persisted. The region is put in closing mode, and the<a name="line.1514"></a>
+<span class="sourceLineNo">1515</span>   * caller MUST abort after this.<a name="line.1515"></a>
+<span class="sourceLineNo">1516</span>   */<a name="line.1516"></a>
+<span class="sourceLineNo">1517</span>  public Map&lt;byte[], List&lt;StoreFile&gt;&gt; close(final boolean abort) throws IOException {<a name="line.1517"></a>
+<span class="sourceLineNo">1518</span>    // Only allow one thread to close at a time. Serialize them so dual<a name="line.1518"></a>
+<span class="sourceLineNo">1519</span>    // threads attempting to close will run up against each other.<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>    MonitoredTask status = TaskMonitor.get().createStatus(<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>        "Closing region " + this +<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>        (abort ? " due to abort" : ""));<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span><a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>    status.setStatus("Waiting for close lock");<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span>    try {<a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      synchronized (closeLock) {<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>        return doClose(abort, status);<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>    } finally {<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      status.cleanup();<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>    }<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>  }<a name="line.1532"></a>
+<span class="sourceLineNo">1533</span><a name="line.1533"></a>
+<span class="sourceLineNo">1534</span>  /**<a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>   * Exposed for some very specific unit tests.<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>   */<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>  @VisibleForTesting<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>  public void setClosing(boolean closing) {<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span>    this.closing.set(closing);<a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>  }<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span><a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>  /**<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>   * The {@link HRegion#doClose} will block forever if someone tries proving the dead lock via the unit test.<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>   * Instead of blocking, the {@link HRegion#doClose} will throw exception if you set the timeout.<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>   * @param timeoutForWriteLock the second time to wait for the write lock in {@link HRegion#doClose}<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>   */<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>  @VisibleForTesting<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>  public void setTimeoutForWriteLock(long timeoutForWriteLock) {<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    assert timeoutForWriteLock &gt;= 0;<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>    this.timeoutForWriteLock = timeoutForWriteLock;<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
 <span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>    if (coprocessorHost != null) {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      this.coprocessorHost.preClose(abort);<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>    }<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>    boolean canFlush = true;<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>    synchronized (writestate) {<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      // Disable compacting and flushing by background threads for this<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // region.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      canFlush = !writestate.readOnly;<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>      writestate.writesEnabled = false;<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>      waitForFlushesAndCompactions();<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>    }<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>    // the close flag?<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>      status.setStatus("Pre-flushing region before close");<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>      LOG.info("Running close preflush of " + this);<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span>      try {<a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>        internalFlushcache(status);<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>      } catch (IOException ioe) {<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        // Failed to flush the region. Keep going.<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      }<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span><a name="line.1580"></a>
-<span class="sourceLineNo">1581</span>    if (timeoutForWriteLock == null<a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>      // block waiting for the lock for closing<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    } else {<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>      try {<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>        if (!succeed) {<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>        }<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>      } catch (InterruptedException e) {<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span>      }<a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>    }<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>    this.closing.set(true);<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    status.setStatus("Disabling writes for close");<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>    try {<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span>      if (this.isClosed()) {<a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>        status.abort("Already got closed by another process");<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>        // SplitTransaction handles the null<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>        return null;<a name="line.1601"></a>
+<span class="sourceLineNo">1553</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="UL_UNRELEASED_LOCK_EXCEPTION_PATH",<a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>      justification="I think FindBugs is confused")<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>  private Map&lt;byte[], List&lt;StoreFile&gt;&gt; doClose(final boolean abort, MonitoredTask status)<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      throws IOException {<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>    if (isClosed()) {<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      LOG.warn("Region " + this + " already closed");<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      return null;<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>    }<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span><a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>    if (coprocessorHost != null) {<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      status.setStatus("Running coprocessor pre-close hooks");<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>      this.coprocessorHost.preClose(abort);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>    }<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>    status.setStatus("Disabling compacts and flushes for region");<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>    boolean canFlush = true;<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>    synchronized (writestate) {<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      // Disable compacting and flushing by background threads for this<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>      // region.<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      canFlush = !writestate.readOnly;<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>      writestate.writesEnabled = false;<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>      LOG.debug("Closing " + this + ": disabling compactions &amp; flushes");<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span>      waitForFlushesAndCompactions();<a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>    }<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    // If we were not just flushing, is it worth doing a preflush...one<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>    // that will clear out of the bulk of the memstore before we put up<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    // the close flag?<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>    if (!abort &amp;&amp; worthPreFlushing() &amp;&amp; canFlush) {<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>      status.setStatus("Pre-flushing region before close");<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>      LOG.info("Running close preflush of " + this);<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span>      try {<a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>        internalFlushcache(status);<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>      } catch (IOException ioe) {<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>        // Failed to flush the region. Keep going.<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>        status.setStatus("Failed pre-flush " + this + "; " + ioe.getMessage());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>      }<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    }<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span><a name="line.1589"></a>
+<span class="sourceLineNo">1590</span>    if (timeoutForWriteLock == null<a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>        || timeoutForWriteLock == Long.MAX_VALUE) {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>      // block waiting for the lock for closing<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>      lock.writeLock().lock(); // FindBugs: Complains UL_UNRELEASED_LOCK_EXCEPTION_PATH but seems fine<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span>    } else {<a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>      try {<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>        boolean succeed = lock.writeLock().tryLock(timeoutForWriteLock, TimeUnit.SECONDS);<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>        if (!succeed) {<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>          throw new IOException("Failed to get write lock when closing region");<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span>        }<a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>      } catch (InterruptedException e) {<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>        throw (InterruptedIOException) new InterruptedIOException().initCause(e);<a name="line.1601"></a>
 <span class="sourceLineNo">1602</span>      }<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>      // Don't flush the cache if we are aborting<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>        int failedfFlushCount = 0;<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>        int flushCount = 0;<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>        long tmp = 0;<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>        while (remainingSize &gt; 0) {<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>          try {<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>            internalFlushcache(status);<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>            if(flushCount &gt;0) {<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>                  " (carrying snapshot?) " + this);<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>            }<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>            flushCount++;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>            tmp = this.memstoreDataSize.get();<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>            if (tmp &gt;= remainingSize) {<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>              failedfFlushCount++;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>            }<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>            remainingSize = tmp;<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>            if (failedfFlushCount &gt; 5) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>              // so we do not lose data<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>                  flushCount + " attempts on region: " +<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>            }<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>          } catch (IOException ioe) {<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>            synchronized (writestate) {<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>              writestate.writesEnabled = true;<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>            }<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>            throw ioe;<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span>          }<a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>        }<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>      }<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span><a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>      if (!stores.isEmpty()) {<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>            getRegionInfo().getRegionNameAsString());<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1648"></a>
+<span class="sourceLineNo">1603</span>    }<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>    this.closing.set(true);<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>    status.setStatus("Disabling writes for close");<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>    try {<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>      if (this.isClosed()) {<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>        status.abort("Already got closed by another process");<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>        // SplitTransaction handles the null<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>        return null;<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>      }<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>      LOG.debug("Updates disabled for region " + this);<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>      // Don't flush the cache if we are aborting<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>      if (!abort &amp;&amp; canFlush) {<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>        int failedfFlushCount = 0;<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>        int flushCount = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>        long tmp = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>        long remainingSize = this.memstoreDataSize.get();<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>        while (remainingSize &gt; 0) {<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>          try {<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>            internalFlushcache(status);<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>            if(flushCount &gt;0) {<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>              LOG.info("Running extra flush, " + flushCount +<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>                  " (carrying snapshot?) " + this);<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>            }<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>            flushCount++;<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>            tmp = this.memstoreDataSize.get();<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>            if (tmp &gt;= remainingSize) {<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>              failedfFlushCount++;<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>            }<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>            remainingSize = tmp;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>            if (failedfFlushCount &gt; 5) {<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>              // If we failed 5 times and are unable to clear memory, abort<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>              // so we do not lose data<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>              throw new DroppedSnapshotException("Failed clearing memory after " +<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>                  flushCount + " attempts on region: " +<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>                  Bytes.toStringBinary(getRegionInfo().getRegionName()));<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span>            }<a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>          } catch (IOException ioe) {<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>            status.setStatus("Failed flush " + this + ", putting online again");<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>            synchronized (writestate) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>              writestate.writesEnabled = true;<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>            }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>            // Have to throw to upper layers.  I can't abort server from here.<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>            throw ioe;<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>          }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>        }<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>      }<a name="line.1648"></a>
 <span class="sourceLineNo">1649</span><a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>        // close each store in parallel<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>        for (final Store store : stores.values()) {<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>            if (getRegionServerServices() != null) {<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>            }<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>          }<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>          completionService<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>                @Override<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>                }<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>              });<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span>        }<a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>        try {<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>            if (familyFiles == null) {<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span>            }<a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>          }<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>        } catch (InterruptedException e) {<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>        } catch (ExecutionException e) {<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>          Throwable cause = e.getCause();<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>          if (cause instanceof IOException) {<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>            throw (IOException) cause;<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>          }<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>          throw new IOException(cause);<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span>        } finally {<a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>          storeCloserThreadPool.shutdownNow();<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>        }<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      }<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span><a name="line.1693"></a>
-<span class="sourceLineNo">1694</span>      status.setStatus("Writing region close event to WAL");<a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>        writeRegionCloseMarker(wal);<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>      }<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span><a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>      this.closed.set(true);<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>      if (!canFlush) {<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>      }<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      if (coprocessorHost != null) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>        this.coprocessorHost.postClose(abort);<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>      }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>      if (this.metricsRegion != null) {<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        this.metricsRegion.close();<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>      }<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>      if (this.metricsRegionWrapper != null) {<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>      }<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>      status.markComplete("Closed");<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>      LOG.info("Closed " + this);<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>      return result;<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>    } finally {<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>      lock.writeLock().unlock();<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>    }<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>  }<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span><a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>  private long getMemstoreHeapSize() {<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>    long size = 0;<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>    for (Store s : this.stores.values()) {<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>    }<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>    return size;<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>  }<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span><a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>  @Override<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>  public void waitForFlushesAndCompactions() {<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>    synchronized (writestate) {<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      if (this.writestate.readOnly) {<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>        // region is a secondary replica).<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>        return;<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>      }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      boolean interrupted = false;<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      try {<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>          try {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>            writestate.wait();<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>          } catch (InterruptedException iex) {<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>            // essentially ignore and propagate the interrupt back up<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>            LOG.warn("Interrupted while waiting");<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>            interrupted = true;<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>          }<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>        }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>      } finally {<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>        if (interrupted) {<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>          Thread.currentThread().interrupt();<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>        }<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      }<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>    }<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>  }<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span><a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>  @Override<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>  public void waitForFlushes() {<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>    synchronized (writestate) {<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>      if (this.writestate.readOnly) {<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>        // region is a secondary replica).<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>        return;<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      }<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>      if (!writestate.flushing) return;<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>      long start = System.currentTimeMillis();<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>      boolean interrupted = false;<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      try {<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>        while (writestate.flushing) {<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>          try {<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>            writestate.wait();<a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>          } catch (InterruptedException iex) {<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>            // essentially ignore and propagate the interrupt back up<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>            LOG.warn("Interrupted while waiting");<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>            interrupted = true;<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          }<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>      } finally {<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        if (interrupted) {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>          Thread.currentThread().interrupt();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>        }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>      }<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>      long duration = System.currentTimeMillis() - start;<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>    }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>  }<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>      final String threadNamePrefix) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    int maxThreads = Math.min(numStores,<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>  }<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span><a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1800"></a>
+<span class="sourceLineNo">1650</span>      Map&lt;byte[], List&lt;StoreFile&gt;&gt; result = new TreeMap&lt;&gt;(Bytes.BYTES_COMPARATOR);<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      if (!stores.isEmpty()) {<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>        // initialize the thread pool for closing stores in parallel.<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>        ThreadPoolExecutor storeCloserThreadPool =<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>          getStoreOpenAndCloseThreadPool("StoreCloserThread-" +<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>            getRegionInfo().getRegionNameAsString());<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>        CompletionService&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; completionService =<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>          new ExecutorCompletionService&lt;&gt;(storeCloserThreadPool);<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span><a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>        // close each store in parallel<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>        for (final Store store : stores.values()) {<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>          MemstoreSize flushableSize = store.getSizeToFlush();<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>          if (!(abort || flushableSize.getDataSize() == 0 || writestate.readOnly)) {<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>            if (getRegionServerServices() != null) {<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>              getRegionServerServices().abort("Assertion failed while closing store "<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>                + getRegionInfo().getRegionNameAsString() + " " + store<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>                + ". flushableSize expected=0, actual= " + flushableSize<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span>                + ". Current memstoreSize=" + getMemstoreSize() + ". Maybe a coprocessor "<a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>                + "operation failed and left the memstore in a partially updated state.", null);<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>            }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span>          }<a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>          completionService<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>              .submit(new Callable&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt;() {<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>                @Override<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>                public Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; call() throws IOException {<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>                  return new Pair&lt;&gt;(store.getFamily().getName(), store.close());<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>                }<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>              });<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>        }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span>        try {<a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>          for (int i = 0; i &lt; stores.size(); i++) {<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>            Future&lt;Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt;&gt; future = completionService.take();<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>            Pair&lt;byte[], Collection&lt;StoreFile&gt;&gt; storeFiles = future.get();<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>            List&lt;StoreFile&gt; familyFiles = result.get(storeFiles.getFirst());<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>            if (familyFiles == null) {<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>              familyFiles = new ArrayList&lt;&gt;();<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>              result.put(storeFiles.getFirst(), familyFiles);<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>            }<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>            familyFiles.addAll(storeFiles.getSecond());<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>          }<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span>        } catch (InterruptedException e) {<a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>          throw (InterruptedIOException)new InterruptedIOException().initCause(e);<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>        } catch (ExecutionException e) {<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>          Throwable cause = e.getCause();<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>          if (cause instanceof IOException) {<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span>            throw (IOException) cause;<a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>          }<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>          throw new IOException(cause);<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>        } finally {<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>          storeCloserThreadPool.shutdownNow();<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>        }<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>      }<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span><a name="line.1702"></a>
+<span class="sourceLineNo">1703</span>      status.setStatus("Writing region close event to WAL");<a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>      if (!abort &amp;&amp; wal != null &amp;&amp; getRegionServerServices() != null &amp;&amp; !writestate.readOnly) {<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>        writeRegionCloseMarker(wal);<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      }<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span><a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>      this.closed.set(true);<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>      if (!canFlush) {<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        this.decrMemstoreSize(new MemstoreSize(memstoreDataSize.get(), getMemstoreHeapSize()));<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>      } else if (memstoreDataSize.get() != 0) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>        LOG.error("Memstore size is " + memstoreDataSize.get());<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>      }<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>      if (coprocessorHost != null) {<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>        status.setStatus("Running coprocessor post-close hooks");<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>        this.coprocessorHost.postClose(abort);<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>      }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>      if (this.metricsRegion != null) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>        this.metricsRegion.close();<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>      }<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>      if (this.metricsRegionWrapper != null) {<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>        Closeables.closeQuietly(this.metricsRegionWrapper);<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>      }<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>      status.markComplete("Closed");<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>      LOG.info("Closed " + this);<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>      return result;<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>    } finally {<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>      lock.writeLock().unlock();<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>    }<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>  }<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span><a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>  private long getMemstoreHeapSize() {<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>    long size = 0;<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>    for (Store s : this.stores.values()) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>      size += s.getSizeOfMemStore().getHeapSize();<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>    }<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>    return size;<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>  }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span><a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>  @Override<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>  public void waitForFlushesAndCompactions() {<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    synchronized (writestate) {<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>      if (this.writestate.readOnly) {<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>        // region is a secondary replica).<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>        return;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>      }<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>      boolean interrupted = false;<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>      try {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>        while (writestate.compacting.get() &gt; 0 || writestate.flushing) {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>          LOG.debug("waiting for " + writestate.compacting + " compactions"<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>            + (writestate.flushing ? " &amp; cache flush" : "") + " to complete for region " + this);<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span>          try {<a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>            writestate.wait();<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>          } catch (InterruptedException iex) {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>            // essentially ignore and propagate the interrupt back up<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>            LOG.warn("Interrupted while waiting");<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>            interrupted = true;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>          }<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>        }<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>      } finally {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>        if (interrupted) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>          Thread.currentThread().interrupt();<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>        }<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>      }<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>    }<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>  }<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span><a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>  @Override<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>  public void waitForFlushes() {<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>    synchronized (writestate) {<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>      if (this.writestate.readOnly) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>        // we should not wait for replayed flushed if we are read only (for example in case the<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>        // region is a secondary replica).<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>        return;<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span>      }<a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>      if (!writestate.flushing) return;<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      long start = System.currentTimeMillis();<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      boolean interrupted = false;<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>      try {<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>        while (writestate.flushing) {<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>          LOG.debug("waiting for cache flush to complete for region " + this);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>          try {<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>            writestate.wait();<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>          } catch (InterruptedException iex) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>            // essentially ignore and propagate the interrupt back up<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>            LOG.warn("Interrupted while waiting");<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>            interrupted = true;<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>          }<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        }<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>      } finally {<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>        if (interrupted) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          Thread.currentThread().interrupt();<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>        }<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>      }<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>      long duration = System.currentTimeMillis() - start;<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>      LOG.debug("Waited " + duration + " ms for flush to complete");<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>    }<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>  }<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>  protected ThreadPoolExecutor getStoreOpenAndCloseThreadPool(<a name="line.1800"></a>
 <span class="sourceLineNo">1801</span>      final String threadNamePrefix) {<a name="line.1801"></a>
 <span class="sourceLineNo">1802</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    int maxThreads = Math.max(1,<a name="line.1803"></a>
+<span class="sourceLineNo">1803</span>    int maxThreads = Math.min(numStores,<a name="line.1803"></a>
 <span class="sourceLineNo">1804</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>            / numStores);<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span>  }<a name="line.1808"></a>
-<span class="sourceLineNo">1809</span><a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>      final String threadNamePrefix) {<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>      new ThreadFactory() {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        private int count = 1;<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span><a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>        @Override<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>        public Thread newThread(Runnable r) {<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>        }<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>      });<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>  }<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span><a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>   /**<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    */<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>  private boolean worthPreFlushing() {<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    return this.memstoreDataSize.get() &gt;<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>  }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span><a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>  // HRegion accessors<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>  //////////////////////////////////////////////////////////////////////////////<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>  @Override<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  public HTableDescriptor getTableDesc() {<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    return this.htableDescriptor;<a name="line.1837"></a>
+<span class="sourceLineNo">1805</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX));<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>  }<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span><a name="line.1808"></a>
+<span class="sourceLineNo">1809</span>  protected ThreadPoolExecutor getStoreFileOpenAndCloseThreadPool(<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>      final String threadNamePrefix) {<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    int numStores = Math.max(1, this.htableDescriptor.getFamilies().size());<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    int maxThreads = Math.max(1,<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>        conf.getInt(HConstants.HSTORE_OPEN_AND_CLOSE_THREADS_MAX,<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>            HConstants.DEFAULT_HSTORE_OPEN_AND_CLOSE_THREADS_MAX)<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>            / numStores);<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>    return getOpenAndCloseThreadPool(maxThreads, threadNamePrefix);<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>  }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  static ThreadPoolExecutor getOpenAndCloseThreadPool(int maxThreads,<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>      final String threadNamePrefix) {<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    return Threads.getBoundedCachedThreadPool(maxThreads, 30L, TimeUnit.SECONDS,<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>      new ThreadFactory() {<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>        private int count = 1;<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span><a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>        @Override<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>        public Thread newThread(Runnable r) {<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>          return new Thread(r, threadNamePrefix + "-" + count++);<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>        }<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      });<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span><a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>   /**<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>    * @return True if its worth doing a flush before we put up the close flag.<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    */<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  private boolean worthPreFlushing() {<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>    return this.memstoreDataSize.get() &gt;<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      this.conf.getLong("hbase.hregion.preclose.flush.size", 1024 * 1024 * 5);<a name="line.1837"></a>
 <span class="sourceLineNo">1838</span>  }<a name="line.1838"></a>
 <span class="sourceLineNo">1839</span><a name="line.1839"></a>
-<span class="sourceLin

<TRUNCATED>

[34/49] hbase-site git commit: Published site at 82d554e3783372cc6b05489452c815b57c06f6cd.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/cd7ae54c/devapidocs/src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html b/devapidocs/src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html
index 550a1b7..ec87ce8 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.html
@@ -80,377 +80,383 @@
 <span class="sourceLineNo">072</span>  private int scannerTimeout;<a name="line.72"></a>
 <span class="sourceLineNo">073</span>  private Set&lt;ScannerCallable&gt; outstandingCallables = new HashSet&lt;&gt;();<a name="line.73"></a>
 <span class="sourceLineNo">074</span>  private boolean someRPCcancelled = false; //required for testing purposes only<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>  public ScannerCallableWithReplicas(TableName tableName, ClusterConnection cConnection,<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      ScannerCallable baseCallable, ExecutorService pool, int timeBeforeReplicas, Scan scan,<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      int retries, int scannerTimeout, int caching, Configuration conf,<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      RpcRetryingCaller&lt;Result []&gt; caller) {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    this.currentScannerCallable = baseCallable;<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    this.cConnection = cConnection;<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    this.pool = pool;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    if (timeBeforeReplicas &lt; 0) {<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      throw new IllegalArgumentException("Invalid value of operation timeout on the primary");<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    }<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    this.timeBeforeReplicas = timeBeforeReplicas;<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    this.scan = scan;<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    this.retries = retries;<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    this.tableName = tableName;<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    this.conf = conf;<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    this.scannerTimeout = scannerTimeout;<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    this.caller = caller;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  }<a name="line.93"></a>
-<span class="sourceLineNo">094</span><a name="line.94"></a>
-<span class="sourceLineNo">095</span>  public void setClose() {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    currentScannerCallable.setClose();<a name="line.96"></a>
-<span class="sourceLineNo">097</span>  }<a name="line.97"></a>
-<span class="sourceLineNo">098</span><a name="line.98"></a>
-<span class="sourceLineNo">099</span>  public void setRenew(boolean val) {<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    currentScannerCallable.setRenew(val);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>  }<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>  public void setCaching(int caching) {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    currentScannerCallable.setCaching(caching);<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
-<span class="sourceLineNo">106</span><a name="line.106"></a>
-<span class="sourceLineNo">107</span>  public int getCaching() {<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    return currentScannerCallable.getCaching();<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public HRegionInfo getHRegionInfo() {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    return currentScannerCallable.getHRegionInfo();<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  }<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  public MoreResults moreResultsInRegion() {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    return currentScannerCallable.moreResultsInRegion();<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
-<span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  public MoreResults moreResultsForScan() {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    return currentScannerCallable.moreResultsForScan();<a name="line.120"></a>
-<span class="sourceLineNo">121</span>  }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>  @Override<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  public Result [] call(int timeout) throws IOException {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    // If the active replica callable was closed somewhere, invoke the RPC to<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    // really close it. In the case of regular scanners, this applies. We make couple<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    // of RPCs to a RegionServer, and when that region is exhausted, we set<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    // the closed flag. Then an RPC is required to actually close the scanner.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    if (currentScannerCallable != null &amp;&amp; currentScannerCallable.closed) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      // For closing we target that exact scanner (and not do replica fallback like in<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      // the case of normal reads)<a name="line.131"></a>
-<span class="sourceLineNo">132</span>      if (LOG.isTraceEnabled()) {<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        LOG.trace("Closing scanner id=" + currentScannerCallable.scannerId);<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      }<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      Result[] r = currentScannerCallable.call(timeout);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>      currentScannerCallable = null;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      return r;<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    }<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    // We need to do the following:<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    //1. When a scan goes out to a certain replica (default or not), we need to<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    //   continue to hit that until there is a failure. So store the last successfully invoked<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    //   replica<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    //2. We should close the "losing" scanners (scanners other than the ones we hear back<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    //   from first)<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    //<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    RegionLocations rl = null;<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    try {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      rl = RpcRetryingCallerWithReadReplicas.getRegionLocations(true,<a name="line.148"></a>
-<span class="sourceLineNo">149</span>          RegionReplicaUtil.DEFAULT_REPLICA_ID, cConnection, tableName,<a name="line.149"></a>
-<span class="sourceLineNo">150</span>          currentScannerCallable.getRow());<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    } catch (RetriesExhaustedException | DoNotRetryIOException e) {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      // We cannot get the primary replica region location, it is possible that the region server<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      // hosting meta table is down, it needs to proceed to try cached replicas directly.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      if (cConnection instanceof ConnectionImplementation) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>        rl = ((ConnectionImplementation) cConnection)<a name="line.155"></a>
-<span class="sourceLineNo">156</span>            .getCachedLocation(tableName, currentScannerCallable.getRow());<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        if (rl == null) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>          throw e;<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        }<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      } else {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        // For completeness<a name="line.161"></a>
-<span class="sourceLineNo">162</span>        throw e;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    // allocate a boundedcompletion pool of some multiple of number of replicas.<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    // We want to accomodate some RPCs for redundant replica scans (but are still in progress)<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; cs =<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        new ResultBoundedCompletionService&lt;&gt;(<a name="line.168"></a>
-<span class="sourceLineNo">169</span>            RpcRetryingCallerFactory.instantiate(ScannerCallableWithReplicas.this.conf), pool,<a name="line.169"></a>
-<span class="sourceLineNo">170</span>            rl.size() * 5);<a name="line.170"></a>
-<span class="sourceLineNo">171</span><a name="line.171"></a>
-<span class="sourceLineNo">172</span>    AtomicBoolean done = new AtomicBoolean(false);<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    replicaSwitched.set(false);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    // submit call for the primary replica.<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    addCallsForCurrentReplica(cs, rl);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    int startIndex = 0;<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>    try {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      // wait for the timeout to see whether the primary responds back<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      Future&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; f = cs.poll(timeBeforeReplicas,<a name="line.180"></a>
-<span class="sourceLineNo">181</span>          TimeUnit.MICROSECONDS); // Yes, microseconds<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      if (f != null) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>        // After poll, if f is not null, there must be a completed task<a name="line.183"></a>
-<span class="sourceLineNo">184</span>        Pair&lt;Result[], ScannerCallable&gt; r = f.get();<a name="line.184"></a>
-<span class="sourceLineNo">185</span>        if (r != null &amp;&amp; r.getSecond() != null) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>          updateCurrentlyServingReplica(r.getSecond(), r.getFirst(), done, pool);<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>        return r == null ? null : r.getFirst(); //great we got a response<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      }<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    } catch (ExecutionException e) {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      // We ignore the ExecutionException and continue with the replicas<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      if (LOG.isDebugEnabled()) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        LOG.debug("Scan with primary region returns " + e.getCause());<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span>      // If rl's size is 1 or scan's consitency is strong, it needs to throw<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      // out the exception from the primary replica<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      if ((rl.size() == 1) || (scan.getConsistency() == Consistency.STRONG)) {<a name="line.198"></a>
-<span class="sourceLineNo">199</span>        // Rethrow the first exception<a name="line.199"></a>
-<span class="sourceLineNo">200</span>        RpcRetryingCallerWithReadReplicas.throwEnrichedException(e, retries);<a name="line.200"></a>
+<span class="sourceLineNo">075</span>  private int regionReplication = 0;<a name="line.75"></a>
+<span class="sourceLineNo">076</span><a name="line.76"></a>
+<span class="sourceLineNo">077</span>  public ScannerCallableWithReplicas(TableName tableName, ClusterConnection cConnection,<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      ScannerCallable baseCallable, ExecutorService pool, int timeBeforeReplicas, Scan scan,<a name="line.78"></a>
+<span class="sourceLineNo">079</span>      int retries, int scannerTimeout, int caching, Configuration conf,<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      RpcRetryingCaller&lt;Result []&gt; caller) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    this.currentScannerCallable = baseCallable;<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    this.cConnection = cConnection;<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    this.pool = pool;<a name="line.83"></a>
+<span class="sourceLineNo">084</span>    if (timeBeforeReplicas &lt; 0) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      throw new IllegalArgumentException("Invalid value of operation timeout on the primary");<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    }<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    this.timeBeforeReplicas = timeBeforeReplicas;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    this.scan = scan;<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    this.retries = retries;<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    this.tableName = tableName;<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    this.conf = conf;<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    this.scannerTimeout = scannerTimeout;<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    this.caller = caller;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  public void setClose() {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    currentScannerCallable.setClose();<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>  public void setRenew(boolean val) {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    currentScannerCallable.setRenew(val);<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  }<a name="line.102"></a>
+<span class="sourceLineNo">103</span><a name="line.103"></a>
+<span class="sourceLineNo">104</span>  public void setCaching(int caching) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    currentScannerCallable.setCaching(caching);<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
+<span class="sourceLineNo">107</span><a name="line.107"></a>
+<span class="sourceLineNo">108</span>  public int getCaching() {<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    return currentScannerCallable.getCaching();<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  }<a name="line.110"></a>
+<span class="sourceLineNo">111</span><a name="line.111"></a>
+<span class="sourceLineNo">112</span>  public HRegionInfo getHRegionInfo() {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    return currentScannerCallable.getHRegionInfo();<a name="line.113"></a>
+<span class="sourceLineNo">114</span>  }<a name="line.114"></a>
+<span class="sourceLineNo">115</span><a name="line.115"></a>
+<span class="sourceLineNo">116</span>  public MoreResults moreResultsInRegion() {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    return currentScannerCallable.moreResultsInRegion();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  }<a name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>  public MoreResults moreResultsForScan() {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    return currentScannerCallable.moreResultsForScan();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  }<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
+<span class="sourceLineNo">124</span>  @Override<a name="line.124"></a>
+<span class="sourceLineNo">125</span>  public Result [] call(int timeout) throws IOException {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    // If the active replica callable was closed somewhere, invoke the RPC to<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    // really close it. In the case of regular scanners, this applies. We make couple<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    // of RPCs to a RegionServer, and when that region is exhausted, we set<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    // the closed flag. Then an RPC is required to actually close the scanner.<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    if (currentScannerCallable != null &amp;&amp; currentScannerCallable.closed) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      // For closing we target that exact scanner (and not do replica fallback like in<a name="line.131"></a>
+<span class="sourceLineNo">132</span>      // the case of normal reads)<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      if (LOG.isTraceEnabled()) {<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        LOG.trace("Closing scanner id=" + currentScannerCallable.scannerId);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      Result[] r = currentScannerCallable.call(timeout);<a name="line.136"></a>
+<span class="sourceLineNo">137</span>      currentScannerCallable = null;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      return r;<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    // We need to do the following:<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    //1. When a scan goes out to a certain replica (default or not), we need to<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    //   continue to hit that until there is a failure. So store the last successfully invoked<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    //   replica<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    //2. We should close the "losing" scanners (scanners other than the ones we hear back<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    //   from first)<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    //<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    // Since RegionReplication is a table attribute, it wont change as long as table is enabled,<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    // it just needs to be set once.<a name="line.148"></a>
+<span class="sourceLineNo">149</span><a name="line.149"></a>
+<span class="sourceLineNo">150</span>    if (regionReplication &lt;= 0) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      RegionLocations rl = null;<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      try {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        rl = RpcRetryingCallerWithReadReplicas.getRegionLocations(true,<a name="line.153"></a>
+<span class="sourceLineNo">154</span>            RegionReplicaUtil.DEFAULT_REPLICA_ID, cConnection, tableName,<a name="line.154"></a>
+<span class="sourceLineNo">155</span>            currentScannerCallable.getRow());<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      } catch (RetriesExhaustedException | DoNotRetryIOException e) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        // We cannot get the primary replica region location, it is possible that the region server<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        // hosting meta table is down, it needs to proceed to try cached replicas directly.<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        if (cConnection instanceof ConnectionImplementation) {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>          rl = ((ConnectionImplementation) cConnection)<a name="line.160"></a>
+<span class="sourceLineNo">161</span>              .getCachedLocation(tableName, currentScannerCallable.getRow());<a name="line.161"></a>
+<span class="sourceLineNo">162</span>          if (rl == null) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>            throw e;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>          }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>        } else {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>          // For completeness<a name="line.166"></a>
+<span class="sourceLineNo">167</span>          throw e;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>        }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>      }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      regionReplication = rl.size();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    }<a name="line.171"></a>
+<span class="sourceLineNo">172</span>    // allocate a boundedcompletion pool of some multiple of number of replicas.<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    // We want to accomodate some RPCs for redundant replica scans (but are still in progress)<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; cs =<a name="line.174"></a>
+<span class="sourceLineNo">175</span>        new ResultBoundedCompletionService&lt;&gt;(<a name="line.175"></a>
+<span class="sourceLineNo">176</span>            RpcRetryingCallerFactory.instantiate(ScannerCallableWithReplicas.this.conf), pool,<a name="line.176"></a>
+<span class="sourceLineNo">177</span>            regionReplication * 5);<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    AtomicBoolean done = new AtomicBoolean(false);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    replicaSwitched.set(false);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    // submit call for the primary replica.<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    addCallsForCurrentReplica(cs);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    int startIndex = 0;<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>    try {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      // wait for the timeout to see whether the primary responds back<a name="line.186"></a>
+<span class="sourceLineNo">187</span>      Future&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; f = cs.poll(timeBeforeReplicas,<a name="line.187"></a>
+<span class="sourceLineNo">188</span>          TimeUnit.MICROSECONDS); // Yes, microseconds<a name="line.188"></a>
+<span class="sourceLineNo">189</span>      if (f != null) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>        // After poll, if f is not null, there must be a completed task<a name="line.190"></a>
+<span class="sourceLineNo">191</span>        Pair&lt;Result[], ScannerCallable&gt; r = f.get();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>        if (r != null &amp;&amp; r.getSecond() != null) {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>          updateCurrentlyServingReplica(r.getSecond(), r.getFirst(), done, pool);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>        }<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        return r == null ? null : r.getFirst(); //great we got a response<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    } catch (ExecutionException e) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      // We ignore the ExecutionException and continue with the replicas<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      if (LOG.isDebugEnabled()) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>        LOG.debug("Scan with primary region returns " + e.getCause());<a name="line.200"></a>
 <span class="sourceLineNo">201</span>      }<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>      startIndex = 1;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    } catch (CancellationException e) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      throw new InterruptedIOException(e.getMessage());<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    } catch (InterruptedException e) {<a name="line.206"></a>
-<span class="sourceLineNo">207</span>      throw new InterruptedIOException(e.getMessage());<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    }<a name="line.208"></a>
+<span class="sourceLineNo">203</span>      // If rl's size is 1 or scan's consitency is strong, it needs to throw<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      // out the exception from the primary replica<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      if ((regionReplication == 1) || (scan.getConsistency() == Consistency.STRONG)) {<a name="line.205"></a>
+<span class="sourceLineNo">206</span>        // Rethrow the first exception<a name="line.206"></a>
+<span class="sourceLineNo">207</span>        RpcRetryingCallerWithReadReplicas.throwEnrichedException(e, retries);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      }<a name="line.208"></a>
 <span class="sourceLineNo">209</span><a name="line.209"></a>
-<span class="sourceLineNo">210</span>    // submit call for the all of the secondaries at once<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    int endIndex = rl.size();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    if (scan.getConsistency() == Consistency.STRONG) {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>      // When scan's consistency is strong, do not send to the secondaries<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      endIndex = 1;<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    } else {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      // TODO: this may be an overkill for large region replication<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      addCallsForOtherReplicas(cs, rl, 0, rl.size() - 1);<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    }<a name="line.218"></a>
-<span class="sourceLineNo">219</span><a name="line.219"></a>
-<span class="sourceLineNo">220</span>    try {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      Future&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; f = cs.pollForFirstSuccessfullyCompletedTask(timeout,<a name="line.221"></a>
-<span class="sourceLineNo">222</span>          TimeUnit.MILLISECONDS, startIndex, endIndex);<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>      if (f == null) {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        throw new IOException("Failed to get result within timeout, timeout=" + timeout + "ms");<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      }<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      Pair&lt;Result[], ScannerCallable&gt; r = f.get();<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span>      if (r != null &amp;&amp; r.getSecond() != null) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        updateCurrentlyServingReplica(r.getSecond(), r.getFirst(), done, pool);<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      }<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      return r == null ? null : r.getFirst(); // great we got an answer<a name="line.232"></a>
-<span class="sourceLineNo">233</span><a name="line.233"></a>
-<span class="sourceLineNo">234</span>    } catch (ExecutionException e) {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>      RpcRetryingCallerWithReadReplicas.throwEnrichedException(e, retries);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    } catch (CancellationException e) {<a name="line.236"></a>
-<span class="sourceLineNo">237</span>      throw new InterruptedIOException(e.getMessage());<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    } catch (InterruptedException e) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      throw new InterruptedIOException(e.getMessage());<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    } finally {<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      // We get there because we were interrupted or because one or more of the<a name="line.241"></a>
-<span class="sourceLineNo">242</span>      // calls succeeded or failed. In all case, we stop all our tasks.<a name="line.242"></a>
-<span class="sourceLineNo">243</span>      cs.cancelAll();<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    }<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    LOG.error("Imposible? Arrive at an unreachable line..."); // unreachable<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    throw new IOException("Imposible? Arrive at an unreachable line...");<a name="line.246"></a>
-<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>  private void updateCurrentlyServingReplica(ScannerCallable scanner, Result[] result,<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      AtomicBoolean done, ExecutorService pool) {<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    if (done.compareAndSet(false, true)) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>      if (currentScannerCallable != scanner) replicaSwitched.set(true);<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      currentScannerCallable = scanner;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>      // store where to start the replica scanner from if we need to.<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      if (result != null &amp;&amp; result.length != 0) this.lastResult = result[result.length - 1];<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      if (LOG.isTraceEnabled()) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>        LOG.trace("Setting current scanner as id=" + currentScannerCallable.scannerId +<a name="line.257"></a>
-<span class="sourceLineNo">258</span>            " associated with replica=" + currentScannerCallable.getHRegionInfo().getReplicaId());<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      // close all outstanding replica scanners but the one we heard back from<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      outstandingCallables.remove(scanner);<a name="line.261"></a>
-<span class="sourceLineNo">262</span>      for (ScannerCallable s : outstandingCallables) {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>        if (LOG.isTraceEnabled()) {<a name="line.263"></a>
-<span class="sourceLineNo">264</span>          LOG.trace("Closing scanner id=" + s.scannerId +<a name="line.264"></a>
-<span class="sourceLineNo">265</span>            ", replica=" + s.getHRegionInfo().getRegionId() +<a name="line.265"></a>
-<span class="sourceLineNo">266</span>            " because slow and replica=" +<a name="line.266"></a>
-<span class="sourceLineNo">267</span>            this.currentScannerCallable.getHRegionInfo().getReplicaId() + " succeeded");<a name="line.267"></a>
-<span class="sourceLineNo">268</span>        }<a name="line.268"></a>
-<span class="sourceLineNo">269</span>        // Submit the "close" to the pool since this might take time, and we don't<a name="line.269"></a>
-<span class="sourceLineNo">270</span>        // want to wait for the "close" to happen yet. The "wait" will happen when<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        // the table is closed (when the awaitTermination of the underlying pool is called)<a name="line.271"></a>
-<span class="sourceLineNo">272</span>        s.setClose();<a name="line.272"></a>
-<span class="sourceLineNo">273</span>        final RetryingRPC r = new RetryingRPC(s);<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        pool.submit(new Callable&lt;Void&gt;(){<a name="line.274"></a>
-<span class="sourceLineNo">275</span>          @Override<a name="line.275"></a>
-<span class="sourceLineNo">276</span>          public Void call() throws Exception {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>            r.call(scannerTimeout);<a name="line.277"></a>
-<span class="sourceLineNo">278</span>            return null;<a name="line.278"></a>
-<span class="sourceLineNo">279</span>          }<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        });<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      // now clear outstandingCallables since we scheduled a close for all the contained scanners<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      outstandingCallables.clear();<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>  /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * When a scanner switches in the middle of scanning (the 'next' call fails<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * for example), the upper layer {@link ClientScanner} needs to know<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   */<a name="line.290"></a>
-<span class="sourceLineNo">291</span>  public boolean switchedToADifferentReplica() {<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    return replicaSwitched.get();<a name="line.292"></a>
-<span class="sourceLineNo">293</span>  }<a name="line.293"></a>
-<span class="sourceLineNo">294</span><a name="line.294"></a>
-<span class="sourceLineNo">295</span>  /**<a name="line.295"></a>
-<span class="sourceLineNo">296</span>   * @return true when the most recent RPC response indicated that the response was a heartbeat<a name="line.296"></a>
-<span class="sourceLineNo">297</span>   *         message. Heartbeat messages are sent back from the server when the processing of the<a name="line.297"></a>
-<span class="sourceLineNo">298</span>   *         scan request exceeds a certain time threshold. Heartbeats allow the server to avoid<a name="line.298"></a>
-<span class="sourceLineNo">299</span>   *         timeouts during long running scan operations.<a name="line.299"></a>
-<span class="sourceLineNo">300</span>   */<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public boolean isHeartbeatMessage() {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    return currentScannerCallable != null &amp;&amp; currentScannerCallable.isHeartbeatMessage();<a name="line.302"></a>
-<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>  public Cursor getCursor() {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    return currentScannerCallable != null ? currentScannerCallable.getCursor() : null;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>  }<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>  private void addCallsForCurrentReplica(<a name="line.309"></a>
-<span class="sourceLineNo">310</span>      ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; cs, RegionLocations rl) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    RetryingRPC retryingOnReplica = new RetryingRPC(currentScannerCallable);<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    outstandingCallables.add(currentScannerCallable);<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    cs.submit(retryingOnReplica, scannerTimeout, currentScannerCallable.id);<a name="line.313"></a>
+<span class="sourceLineNo">210</span>      startIndex = 1;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    } catch (CancellationException e) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      throw new InterruptedIOException(e.getMessage());<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    } catch (InterruptedException e) {<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      throw new InterruptedIOException(e.getMessage());<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    }<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>    // submit call for the all of the secondaries at once<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    int endIndex = regionReplication;<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    if (scan.getConsistency() == Consistency.STRONG) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      // When scan's consistency is strong, do not send to the secondaries<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      endIndex = 1;<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    } else {<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      // TODO: this may be an overkill for large region replication<a name="line.223"></a>
+<span class="sourceLineNo">224</span>      addCallsForOtherReplicas(cs, 0, regionReplication - 1);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    }<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>    try {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      Future&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; f = cs.pollForFirstSuccessfullyCompletedTask(timeout,<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          TimeUnit.MILLISECONDS, startIndex, endIndex);<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>      if (f == null) {<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        throw new IOException("Failed to get result within timeout, timeout=" + timeout + "ms");<a name="line.232"></a>
+<span class="sourceLineNo">233</span>      }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      Pair&lt;Result[], ScannerCallable&gt; r = f.get();<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>      if (r != null &amp;&amp; r.getSecond() != null) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>        updateCurrentlyServingReplica(r.getSecond(), r.getFirst(), done, pool);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>      }<a name="line.238"></a>
+<span class="sourceLineNo">239</span>      return r == null ? null : r.getFirst(); // great we got an answer<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>    } catch (ExecutionException e) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      RpcRetryingCallerWithReadReplicas.throwEnrichedException(e, retries);<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    } catch (CancellationException e) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>      throw new InterruptedIOException(e.getMessage());<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    } catch (InterruptedException e) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      throw new InterruptedIOException(e.getMessage());<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    } finally {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      // We get there because we were interrupted or because one or more of the<a name="line.248"></a>
+<span class="sourceLineNo">249</span>      // calls succeeded or failed. In all case, we stop all our tasks.<a name="line.249"></a>
+<span class="sourceLineNo">250</span>      cs.cancelAll();<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    }<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    LOG.error("Imposible? Arrive at an unreachable line..."); // unreachable<a name="line.252"></a>
+<span class="sourceLineNo">253</span>    throw new IOException("Imposible? Arrive at an unreachable line...");<a name="line.253"></a>
+<span class="sourceLineNo">254</span>  }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>  private void updateCurrentlyServingReplica(ScannerCallable scanner, Result[] result,<a name="line.256"></a>
+<span class="sourceLineNo">257</span>      AtomicBoolean done, ExecutorService pool) {<a name="line.257"></a>
+<span class="sourceLineNo">258</span>    if (done.compareAndSet(false, true)) {<a name="line.258"></a>
+<span class="sourceLineNo">259</span>      if (currentScannerCallable != scanner) replicaSwitched.set(true);<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      currentScannerCallable = scanner;<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      // store where to start the replica scanner from if we need to.<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      if (result != null &amp;&amp; result.length != 0) this.lastResult = result[result.length - 1];<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      if (LOG.isTraceEnabled()) {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>        LOG.trace("Setting current scanner as id=" + currentScannerCallable.scannerId +<a name="line.264"></a>
+<span class="sourceLineNo">265</span>            " associated with replica=" + currentScannerCallable.getHRegionInfo().getReplicaId());<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      }<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      // close all outstanding replica scanners but the one we heard back from<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      outstandingCallables.remove(scanner);<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      for (ScannerCallable s : outstandingCallables) {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>        if (LOG.isTraceEnabled()) {<a name="line.270"></a>
+<span class="sourceLineNo">271</span>          LOG.trace("Closing scanner id=" + s.scannerId +<a name="line.271"></a>
+<span class="sourceLineNo">272</span>            ", replica=" + s.getHRegionInfo().getRegionId() +<a name="line.272"></a>
+<span class="sourceLineNo">273</span>            " because slow and replica=" +<a name="line.273"></a>
+<span class="sourceLineNo">274</span>            this.currentScannerCallable.getHRegionInfo().getReplicaId() + " succeeded");<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        }<a name="line.275"></a>
+<span class="sourceLineNo">276</span>        // Submit the "close" to the pool since this might take time, and we don't<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        // want to wait for the "close" to happen yet. The "wait" will happen when<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        // the table is closed (when the awaitTermination of the underlying pool is called)<a name="line.278"></a>
+<span class="sourceLineNo">279</span>        s.setClose();<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        final RetryingRPC r = new RetryingRPC(s);<a name="line.280"></a>
+<span class="sourceLineNo">281</span>        pool.submit(new Callable&lt;Void&gt;(){<a name="line.281"></a>
+<span class="sourceLineNo">282</span>          @Override<a name="line.282"></a>
+<span class="sourceLineNo">283</span>          public Void call() throws Exception {<a name="line.283"></a>
+<span class="sourceLineNo">284</span>            r.call(scannerTimeout);<a name="line.284"></a>
+<span class="sourceLineNo">285</span>            return null;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>          }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>        });<a name="line.287"></a>
+<span class="sourceLineNo">288</span>      }<a name="line.288"></a>
+<span class="sourceLineNo">289</span>      // now clear outstandingCallables since we scheduled a close for all the contained scanners<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      outstandingCallables.clear();<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
+<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
+<span class="sourceLineNo">293</span><a name="line.293"></a>
+<span class="sourceLineNo">294</span>  /**<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * When a scanner switches in the middle of scanning (the 'next' call fails<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   * for example), the upper layer {@link ClientScanner} needs to know<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   */<a name="line.297"></a>
+<span class="sourceLineNo">298</span>  public boolean switchedToADifferentReplica() {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    return replicaSwitched.get();<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>  /**<a name="line.302"></a>
+<span class="sourceLineNo">303</span>   * @return true when the most recent RPC response indicated that the response was a heartbeat<a name="line.303"></a>
+<span class="sourceLineNo">304</span>   *         message. Heartbeat messages are sent back from the server when the processing of the<a name="line.304"></a>
+<span class="sourceLineNo">305</span>   *         scan request exceeds a certain time threshold. Heartbeats allow the server to avoid<a name="line.305"></a>
+<span class="sourceLineNo">306</span>   *         timeouts during long running scan operations.<a name="line.306"></a>
+<span class="sourceLineNo">307</span>   */<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  public boolean isHeartbeatMessage() {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    return currentScannerCallable != null &amp;&amp; currentScannerCallable.isHeartbeatMessage();<a name="line.309"></a>
+<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
+<span class="sourceLineNo">311</span><a name="line.311"></a>
+<span class="sourceLineNo">312</span>  public Cursor getCursor() {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    return currentScannerCallable != null ? currentScannerCallable.getCursor() : null;<a name="line.313"></a>
 <span class="sourceLineNo">314</span>  }<a name="line.314"></a>
 <span class="sourceLineNo">315</span><a name="line.315"></a>
-<span class="sourceLineNo">316</span>  private void addCallsForOtherReplicas(<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; cs, RegionLocations rl,<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      int min, int max) {<a name="line.318"></a>
-<span class="sourceLineNo">319</span><a name="line.319"></a>
-<span class="sourceLineNo">320</span>    for (int id = min; id &lt;= max; id++) {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      if (currentScannerCallable.id == id) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>        continue; //this was already scheduled earlier<a name="line.322"></a>
-<span class="sourceLineNo">323</span>      }<a name="line.323"></a>
-<span class="sourceLineNo">324</span>      ScannerCallable s = currentScannerCallable.getScannerCallableForReplica(id);<a name="line.324"></a>
-<span class="sourceLineNo">325</span>      setStartRowForReplicaCallable(s);<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      outstandingCallables.add(s);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>      RetryingRPC retryingOnReplica = new RetryingRPC(s);<a name="line.327"></a>
-<span class="sourceLineNo">328</span>      cs.submit(retryingOnReplica, scannerTimeout, id);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>  }<a name="line.330"></a>
-<span class="sourceLineNo">331</span><a name="line.331"></a>
-<span class="sourceLineNo">332</span>  /**<a name="line.332"></a>
-<span class="sourceLineNo">333</span>   * Set the start row for the replica callable based on the state of the last result received.<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * @param callable The callable to set the start row on<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   */<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  private void setStartRowForReplicaCallable(ScannerCallable callable) {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    if (this.lastResult == null || callable == null) {<a name="line.337"></a>
-<span class="sourceLineNo">338</span>      return;<a name="line.338"></a>
-<span class="sourceLineNo">339</span>    }<a name="line.339"></a>
-<span class="sourceLineNo">340</span>    // 1. The last result was a partial result which means we have not received all of the cells<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    // for this row. Thus, use the last result's row as the start row. If a replica switch<a name="line.341"></a>
-<span class="sourceLineNo">342</span>    // occurs, the scanner will ensure that any accumulated partial results are cleared,<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    // and the scan can resume from this row.<a name="line.343"></a>
-<span class="sourceLineNo">344</span>    // 2. The last result was not a partial result which means it contained all of the cells for<a name="line.344"></a>
-<span class="sourceLineNo">345</span>    // that row (we no longer need any information from it). Set the start row to the next<a name="line.345"></a>
-<span class="sourceLineNo">346</span>    // closest row that could be seen.<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    callable.getScan().withStartRow(this.lastResult.getRow(), this.lastResult.mayHaveMoreCellsInRow());<a name="line.347"></a>
-<span class="sourceLineNo">348</span>  }<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>  @VisibleForTesting<a name="line.350"></a>
-<span class="sourceLineNo">351</span>  boolean isAnyRPCcancelled() {<a name="line.351"></a>
-<span class="sourceLineNo">352</span>    return someRPCcancelled;<a name="line.352"></a>
-<span class="sourceLineNo">353</span>  }<a name="line.353"></a>
-<span class="sourceLineNo">354</span><a name="line.354"></a>
-<span class="sourceLineNo">355</span>  class RetryingRPC implements RetryingCallable&lt;Pair&lt;Result[], ScannerCallable&gt;&gt;, Cancellable {<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    final ScannerCallable callable;<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    RpcRetryingCaller&lt;Result[]&gt; caller;<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    private volatile boolean cancelled = false;<a name="line.358"></a>
-<span class="sourceLineNo">359</span><a name="line.359"></a>
-<span class="sourceLineNo">360</span>    RetryingRPC(ScannerCallable callable) {<a name="line.360"></a>
-<span class="sourceLineNo">361</span>      this.callable = callable;<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      // For the Consistency.STRONG (default case), we reuse the caller<a name="line.362"></a>
-<span class="sourceLineNo">363</span>      // to keep compatibility with what is done in the past<a name="line.363"></a>
-<span class="sourceLineNo">364</span>      // For the Consistency.TIMELINE case, we can't reuse the caller<a name="line.364"></a>
-<span class="sourceLineNo">365</span>      // since we could be making parallel RPCs (caller.callWithRetries is synchronized<a name="line.365"></a>
-<span class="sourceLineNo">366</span>      // and we can't invoke it multiple times at the same time)<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      this.caller = ScannerCallableWithReplicas.this.caller;<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      if (scan.getConsistency() == Consistency.TIMELINE) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        this.caller = RpcRetryingCallerFactory.instantiate(ScannerCallableWithReplicas.this.conf)<a name="line.369"></a>
-<span class="sourceLineNo">370</span>            .&lt;Result[]&gt;newCaller();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>      }<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    }<a name="line.372"></a>
-<span class="sourceLineNo">373</span><a name="line.373"></a>
-<span class="sourceLineNo">374</span>    @Override<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    public Pair&lt;Result[], ScannerCallable&gt; call(int callTimeout) throws IOException {<a name="line.375"></a>
-<span class="sourceLineNo">376</span>      // since the retries is done within the ResultBoundedCompletionService,<a name="line.376"></a>
-<span class="sourceLineNo">377</span>      // we don't invoke callWithRetries here<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      if (cancelled) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>        return null;<a name="line.379"></a>
-<span class="sourceLineNo">380</span>      }<a name="line.380"></a>
-<span class="sourceLineNo">381</span>      Result[] res = this.caller.callWithoutRetries(this.callable, callTimeout);<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      return new Pair&lt;&gt;(res, this.callable);<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    }<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>    @Override<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    public void prepare(boolean reload) throws IOException {<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      if (cancelled) return;<a name="line.387"></a>
-<span class="sourceLineNo">388</span><a name="line.388"></a>
-<span class="sourceLineNo">389</span>      if (Thread.interrupted()) {<a name="line.389"></a>
-<span class="sourceLineNo">390</span>        throw new InterruptedIOException();<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      }<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>      callable.prepare(reload);<a name="line.393"></a>
-<span class="sourceLineNo">394</span>    }<a name="line.394"></a>
-<span class="sourceLineNo">395</span><a name="line.395"></a>
-<span class="sourceLineNo">396</span>    @Override<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    public void throwable(Throwable t, boolean retrying) {<a name="line.397"></a>
-<span class="sourceLineNo">398</span>      callable.throwable(t, retrying);<a name="line.398"></a>
-<span class="sourceLineNo">399</span>    }<a name="line.399"></a>
-<span class="sourceLineNo">400</span><a name="line.400"></a>
-<span class="sourceLineNo">401</span>    @Override<a name="line.401"></a>
-<span class="sourceLineNo">402</span>    public String getExceptionMessageAdditionalDetail() {<a name="line.402"></a>
-<span class="sourceLineNo">403</span>      return callable.getExceptionMessageAdditionalDetail();<a name="line.403"></a>
-<span class="sourceLineNo">404</span>    }<a name="line.404"></a>
-<span class="sourceLineNo">405</span><a name="line.405"></a>
-<span class="sourceLineNo">406</span>    @Override<a name="line.406"></a>
-<span class="sourceLineNo">407</span>    public long sleep(long pause, int tries) {<a name="line.407"></a>
-<span class="sourceLineNo">408</span>      return callable.sleep(pause, tries);<a name="line.408"></a>
-<span class="sourceLineNo">409</span>    }<a name="line.409"></a>
-<span class="sourceLineNo">410</span><a name="line.410"></a>
-<span class="sourceLineNo">411</span>    @Override<a name="line.411"></a>
-<span class="sourceLineNo">412</span>    public void cancel() {<a name="line.412"></a>
-<span class="sourceLineNo">413</span>      cancelled = true;<a name="line.413"></a>
-<span class="sourceLineNo">414</span>      caller.cancel();<a name="line.414"></a>
-<span class="sourceLineNo">415</span>      if (callable.getRpcController() != null) {<a name="line.415"></a>
-<span class="sourceLineNo">416</span>        callable.getRpcController().startCancel();<a name="line.416"></a>
-<span class="sourceLineNo">417</span>      }<a name="line.417"></a>
-<span class="sourceLineNo">418</span>      someRPCcancelled = true;<a name="line.418"></a>
-<span class="sourceLineNo">419</span>    }<a name="line.419"></a>
-<span class="sourceLineNo">420</span><a name="line.420"></a>
-<span class="sourceLineNo">421</span>    @Override<a name="line.421"></a>
-<span class="sourceLineNo">422</span>    public boolean isCancelled() {<a name="line.422"></a>
-<span class="sourceLineNo">423</span>      return cancelled;<a name="line.423"></a>
-<span class="sourceLineNo">424</span>    }<a name="line.424"></a>
-<span class="sourceLineNo">425</span>  }<a name="line.425"></a>
+<span class="sourceLineNo">316</span>  private void addCallsForCurrentReplica(<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; cs) {<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    RetryingRPC retryingOnReplica = new RetryingRPC(currentScannerCallable);<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    outstandingCallables.add(currentScannerCallable);<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    cs.submit(retryingOnReplica, scannerTimeout, currentScannerCallable.id);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>  private void addCallsForOtherReplicas(<a name="line.323"></a>
+<span class="sourceLineNo">324</span>      ResultBoundedCompletionService&lt;Pair&lt;Result[], ScannerCallable&gt;&gt; cs, int min, int max) {<a name="line.324"></a>
+<span class="sourceLineNo">325</span><a name="line.325"></a>
+<span class="sourceLineNo">326</span>    for (int id = min; id &lt;= max; id++) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      if (currentScannerCallable.id == id) {<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        continue; //this was already scheduled earlier<a name="line.328"></a>
+<span class="sourceLineNo">329</span>      }<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      ScannerCallable s = currentScannerCallable.getScannerCallableForReplica(id);<a name="line.330"></a>
+<span class="sourceLineNo">331</span>      setStartRowForReplicaCallable(s);<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      outstandingCallables.add(s);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>      RetryingRPC retryingOnReplica = new RetryingRPC(s);<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      cs.submit(retryingOnReplica, scannerTimeout, id);<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    }<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  }<a name="line.336"></a>
+<span class="sourceLineNo">337</span><a name="line.337"></a>
+<span class="sourceLineNo">338</span>  /**<a name="line.338"></a>
+<span class="sourceLineNo">339</span>   * Set the start row for the replica callable based on the state of the last result received.<a name="line.339"></a>
+<span class="sourceLineNo">340</span>   * @param callable The callable to set the start row on<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   */<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  private void setStartRowForReplicaCallable(ScannerCallable callable) {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    if (this.lastResult == null || callable == null) {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>      return;<a name="line.344"></a>
+<span class="sourceLineNo">345</span>    }<a name="line.345"></a>
+<span class="sourceLineNo">346</span>    // 1. The last result was a partial result which means we have not received all of the cells<a name="line.346"></a>
+<span class="sourceLineNo">347</span>    // for this row. Thus, use the last result's row as the start row. If a replica switch<a name="line.347"></a>
+<span class="sourceLineNo">348</span>    // occurs, the scanner will ensure that any accumulated partial results are cleared,<a name="line.348"></a>
+<span class="sourceLineNo">349</span>    // and the scan can resume from this row.<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    // 2. The last result was not a partial result which means it contained all of the cells for<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    // that row (we no longer need any information from it). Set the start row to the next<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    // closest row that could be seen.<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    callable.getScan().withStartRow(this.lastResult.getRow(), this.lastResult.mayHaveMoreCellsInRow());<a name="line.353"></a>
+<span class="sourceLineNo">354</span>  }<a name="line.354"></a>
+<span class="sourceLineNo">355</span><a name="line.355"></a>
+<span class="sourceLineNo">356</span>  @VisibleForTesting<a name="line.356"></a>
+<span class="sourceLineNo">357</span>  boolean isAnyRPCcancelled() {<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    return someRPCcancelled;<a name="line.358"></a>
+<span class="sourceLineNo">359</span>  }<a name="line.359"></a>
+<span class="sourceLineNo">360</span><a name="line.360"></a>
+<span class="sourceLineNo">361</span>  class RetryingRPC implements RetryingCallable&lt;Pair&lt;Result[], ScannerCallable&gt;&gt;, Cancellable {<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    final ScannerCallable callable;<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    RpcRetryingCaller&lt;Result[]&gt; caller;<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    private volatile boolean cancelled = false;<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span>    RetryingRPC(ScannerCallable callable) {<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      this.callable = callable;<a name="line.367"></a>
+<span class="sourceLineNo">368</span>      // For the Consistency.STRONG (default case), we reuse the caller<a name="line.368"></a>
+<span class="sourceLineNo">369</span>      // to keep compatibility with what is done in the past<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      // For the Consistency.TIMELINE case, we can't reuse the caller<a name="line.370"></a>
+<span class="sourceLineNo">371</span>      // since we could be making parallel RPCs (caller.callWithRetries is synchronized<a name="line.371"></a>
+<span class="sourceLineNo">372</span>      // and we can't invoke it multiple times at the same time)<a name="line.372"></a>
+<span class="sourceLineNo">373</span>      this.caller = ScannerCallableWithReplicas.this.caller;<a name="line.373"></a>
+<span class="sourceLineNo">374</span>      if (scan.getConsistency() == Consistency.TIMELINE) {<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        this.caller = RpcRetryingCallerFactory.instantiate(ScannerCallableWithReplicas.this.conf)<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            .&lt;Result[]&gt;newCaller();<a name="line.376"></a>
+<span class="sourceLineNo">377</span>      }<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    }<a name="line.378"></a>
+<span class="sourceLineNo">379</span><a name="line.379"></a>
+<span class="sourceLineNo">380</span>    @Override<a name="line.380"></a>
+<span class="sourceLineNo">381</span>    public Pair&lt;Result[], ScannerCallable&gt; call(int callTimeout) throws IOException {<a name="line.381"></a>
+<span class="sourceLineNo">382</span>      // since the retries is done within the ResultBoundedCompletionService,<a name="line.382"></a>
+<span class="sourceLineNo">383</span>      // we don't invoke callWithRetries here<a name="line.383"></a>
+<span class="sourceLineNo">384</span>      if (cancelled) {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>        return null;<a name="line.385"></a>
+<span class="sourceLineNo">386</span>      }<a name="line.386"></a>
+<span class="sourceLineNo">387</span>      Result[] res = this.caller.callWithoutRetries(this.callable, callTimeout);<a name="line.387"></a>
+<span class="sourceLineNo">388</span>      return new Pair&lt;&gt;(res, this.callable);<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    }<a name="line.389"></a>
+<span class="sourceLineNo">390</span><a name="line.390"></a>
+<span class="sourceLineNo">391</span>    @Override<a name="line.391"></a>
+<span class="sourceLineNo">392</span>    public void prepare(boolean reload) throws IOException {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>      if (cancelled) return;<a name="line.393"></a>
+<span class="sourceLineNo">394</span><a name="line.394"></a>
+<span class="sourceLineNo">395</span>      if (Thread.interrupted()) {<a name="line.395"></a>
+<span class="sourceLineNo">396</span>        throw new InterruptedIOException();<a name="line.396"></a>
+<span class="sourceLineNo">397</span>      }<a name="line.397"></a>
+<span class="sourceLineNo">398</span><a name="line.398"></a>
+<span class="sourceLineNo">399</span>      callable.prepare(reload);<a name="line.399"></a>
+<span class="sourceLineNo">400</span>    }<a name="line.400"></a>
+<span class="sourceLineNo">401</span><a name="line.401"></a>
+<span class="sourceLineNo">402</span>    @Override<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    public void throwable(Throwable t, boolean retrying) {<a name="line.403"></a>
+<span class="sourceLineNo">404</span>      callable.throwable(t, retrying);<a name="line.404"></a>
+<span class="sourceLineNo">405</span>    }<a name="line.405"></a>
+<span class="sourceLineNo">406</span><a name="line.406"></a>
+<span class="sourceLineNo">407</span>    @Override<a name="line.407"></a>
+<span class="sourceLineNo">408</span>    public String getExceptionMessageAdditionalDetail() {<a name="line.408"></a>
+<span class="sourceLineNo">409</span>      return callable.getExceptionMessageAdditionalDetail();<a name="line.409"></a>
+<span class="sourceLineNo">410</span>    }<a name="line.410"></a>
+<span class="sourceLineNo">411</span><a name="line.411"></a>
+<span class="sourceLineNo">412</span>    @Override<a name="line.412"></a>
+<span class="sourceLineNo">413</span>    public long sleep(long pause, int tries) {<a name="line.413"></a>
+<span class="sourceLineNo">414</span>      return callable.sleep(pause, tries);<a name="line.414"></a>
+<span class="sourceLineNo">415</span>    }<a name="line.415"></a>
+<span class="sourceLineNo">416</span><a name="line.416"></a>
+<span class="sourceLineNo">417</span>    @Override<a name="line.417"></a>
+<span class="sourceLineNo">418</span>    public void cancel() {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>      cancelled = true;<a name="line.419"></a>
+<span class="sourceLineNo">420</span>      caller.cancel();<a name="line.420"></a>
+<span class="sourceLineNo">421</span>      if (callable.getRpcController() != null) {<a name="line.421"></a>
+<span class="sourceLineNo">422</span>        callable.getRpcController().startCancel();<a name="line.422"></a>
+<span class="sourceLineNo">423</span>      }<a name="line.423"></a>
+<span class="sourceLineNo">424</span>      someRPCcancelled = true;<a name="line.424"></a>
+<span class="sourceLineNo">425</span>    }<a name="line.425"></a>
 <span class="sourceLineNo">426</span><a name="line.426"></a>
-<span class="sourceLineNo">427</span>  @Override<a name="line.427"></a>
-<span class="sourceLineNo">428</span>  public void prepare(boolean reload) throws IOException {<a name="line.428"></a>
-<span class="sourceLineNo">429</span>  }<a name="line.429"></a>
-<span class="sourceLineNo">430</span><a name="line.430"></a>
-<span class="sourceLineNo">431</span>  @Override<a name="line.431"></a>
-<span class="sourceLineNo">432</span>  public void throwable(Throwable t, boolean retrying) {<a name="line.432"></a>
-<span class="sourceLineNo">433</span>    currentScannerCallable.throwable(t, retrying);<a name="line.433"></a>
-<span class="sourceLineNo">434</span>  }<a name="line.434"></a>
-<span class="sourceLineNo">435</span><a name="line.435"></a>
-<span class="sourceLineNo">436</span>  @Override<a name="line.436"></a>
-<span class="sourceLineNo">437</span>  public String getExceptionMessageAdditionalDetail() {<a name="line.437"></a>
-<span class="sourceLineNo">438</span>    return currentScannerCallable.getExceptionMessageAdditionalDetail();<a name="line.438"></a>
-<span class="sourceLineNo">439</span>  }<a name="line.439"></a>
-<span class="sourceLineNo">440</span><a name="line.440"></a>
-<span class="sourceLineNo">441</span>  @Override<a name="line.441"></a>
-<span class="sourceLineNo">442</span>  public long sleep(long pause, int tries) {<a name="line.442"></a>
-<span class="sourceLineNo">443</span>    return currentScannerCallable.sleep(pause, tries);<a name="line.443"></a>
-<span class="sourceLineNo">444</span>  }<a name="line.444"></a>
-<span class="sourceLineNo">445</span>}<a name="line.445"></a>
+<span class="sourceLineNo">427</span>    @Override<a name="line.427"></a>
+<span class="sourceLineNo">428</span>    public boolean isCancelled() {<a name="line.428"></a>
+<span class="sourceLineNo">429</span>      return cancelled;<a name="line.429"></a>
+<span class="sourceLineNo">430</span>    }<a name="line.430"></a>
+<span class="sourceLineNo">431</span>  }<a name="line.431"></a>
+<span class="sourceLineNo">432</span><a name="line.432"></a>
+<span class="sourceLineNo">433</span>  @Override<a name="line.433"></a>
+<span class="sourceLineNo">434</span>  public void prepare(boolean reload) throws IOException {<a name="line.434"></a>
+<span class="sourceLineNo">435</span>  }<a name="line.435"></a>
+<span class="sourceLineNo">436</span><a name="line.436"></a>
+<span class="sourceLineNo">437</span>  @Override<a name="line.437"></a>
+<span class="sourceLineNo">438</span>  public void throwable(Throwable t, boolean retrying) {<a name="line.438"></a>
+<span class="sourceLineNo">439</span>    currentScannerCallable.throwable(t, retrying);<a name="line.439"></a>
+<span class="sourceLineNo">440</span>  }<a name="line.440"></a>
+<span class="sourceLineNo">441</span><a name="line.441"></a>
+<span class="sourceLineNo">442</span>  @Override<a name="line.442"></a>
+<span class="sourceLineNo">443</span>  public String getExceptionMessageAdditionalDetail() {<a name="line.443"></a>
+<span class="sourceLineNo">444</span>    return currentScannerCallable.getExceptionMessageAdditionalDetail();<a name="line.444"></a>
+<span class="sourceLineNo">445</span>  }<a name="line.445"></a>
+<span class="sourceLineNo">446</span><a name="line.446"></a>
+<span class="sourceLineNo">447</span>  @Override<a name="line.447"></a>
+<span class="sourceLineNo">448</span>  public long sleep(long pause, int tries) {<a name="line.448"></a>
+<span class="sourceLineNo">449</span>    return currentScannerCallable.sleep(pause, tries);<a name="line.449"></a>
+<span class="sourceLineNo">450</span>  }<a name="line.450"></a>
+<span class="sourceLineNo">451</span>}<a name="line.451"></a>