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 2018/10/15 14:52:58 UTC

[01/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site cf41f1951 -> 9c64af450


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html
index a699233..0c06fae 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html
@@ -28,23 +28,23 @@
 <span class="sourceLineNo">020</span>import static org.junit.Assert.assertEquals;<a name="line.20"></a>
 <span class="sourceLineNo">021</span><a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.lang3.StringUtils;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import org.apache.hadoop.conf.Configuration;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import org.apache.hadoop.fs.FileSystem;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import org.apache.hadoop.fs.Path;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.client.Result;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.Table;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.Cell;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.CellUtil;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.regionserver.BloomType;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.TableName;<a name="line.39"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.Cell;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.CellUtil;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.TableName;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.Result;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.Table;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.regionserver.BloomType;<a name="line.39"></a>
 <span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.40"></a>
 <span class="sourceLineNo">041</span>import org.junit.Assert;<a name="line.41"></a>
 <span class="sourceLineNo">042</span><a name="line.42"></a>
@@ -67,108 +67,113 @@
 <span class="sourceLineNo">059</span>      1, families);<a name="line.59"></a>
 <span class="sourceLineNo">060</span>  }<a name="line.60"></a>
 <span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>  private static void createMobTable(final HBaseTestingUtility util,<a name="line.62"></a>
-<span class="sourceLineNo">063</span>      final TableName tableName, final byte[][] splitKeys, int regionReplication,<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      final byte[]... families) throws IOException, InterruptedException {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    TableDescriptorBuilder builder<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      = TableDescriptorBuilder.newBuilder(tableName)<a name="line.66"></a>
-<span class="sourceLineNo">067</span>            .setRegionReplication(regionReplication);<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    for (byte[] family : families) {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>      builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.69"></a>
-<span class="sourceLineNo">070</span>          .newBuilder(family)<a name="line.70"></a>
-<span class="sourceLineNo">071</span>          .setMobEnabled(true)<a name="line.71"></a>
-<span class="sourceLineNo">072</span>          .setMobThreshold(0L)<a name="line.72"></a>
-<span class="sourceLineNo">073</span>          .build());<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    util.getAdmin().createTable(builder.build(), splitKeys);<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    SnapshotTestingUtils.waitForTableToBeOnline(util, tableName);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    assertEquals((splitKeys.length + 1) * regionReplication, util<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        .getAdmin().getTableRegions(tableName).size());<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  }<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>  /**<a name="line.81"></a>
-<span class="sourceLineNo">082</span>   * Create a Mob table.<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   *<a name="line.83"></a>
-<span class="sourceLineNo">084</span>   * @param util<a name="line.84"></a>
-<span class="sourceLineNo">085</span>   * @param tableName<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * @param families<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * @return An Table instance for the created table.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   * @throws IOException<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   */<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  public static Table createMobTable(final HBaseTestingUtility util,<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      final TableName tableName, final byte[]... families) throws IOException {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableName);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    for (byte[] family : families) {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      // Disable blooms (they are on by default as of 0.95) but we disable them<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      // here because<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      // tests have hard coded counts of what to expect in block cache, etc.,<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      // and blooms being<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      // on is interfering.<a name="line.98"></a>
-<span class="sourceLineNo">099</span>      builder.setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(family)<a name="line.99"></a>
-<span class="sourceLineNo">100</span>              .setBloomFilterType(BloomType.NONE)<a name="line.100"></a>
-<span class="sourceLineNo">101</span>              .setMobEnabled(true)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>              .setMobThreshold(0L)<a name="line.102"></a>
-<span class="sourceLineNo">103</span>              .build());<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    util.getAdmin().createTable(builder.build());<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // HBaseAdmin only waits for regions to appear in hbase:meta we should wait<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    // until they are assigned<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    util.waitUntilAllRegionsAssigned(tableName);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    return ConnectionFactory.createConnection(util.getConfiguration()).getTable(tableName);<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>  /**<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * Return the number of rows in the given table.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   */<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  public static int countMobRows(final Table table, final byte[]... families) throws IOException {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    Scan scan = new Scan();<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    for (byte[] family : families) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      scan.addFamily(family);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    try (ResultScanner results = table.getScanner(scan)) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      int count = 0;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      for (Result res; (res = results.next()) != null;) {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        count++;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        for (Cell cell : res.listCells()) {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>          // Verify the value<a name="line.125"></a>
-<span class="sourceLineNo">126</span>          Assert.assertTrue(CellUtil.cloneValue(cell).length &gt; 0);<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        }<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      return count;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  public static void verifyMobRowCount(final HBaseTestingUtility util,<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      final TableName tableName, long expectedRows) throws IOException {<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    Table table = ConnectionFactory.createConnection(util.getConfiguration()).getTable(tableName);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    try {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      assertEquals(expectedRows, countMobRows(table));<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    } finally {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      table.close();<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  }<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  // ==========================================================================<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  // Snapshot Mock<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  // ==========================================================================<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  public static class SnapshotMock extends SnapshotTestingUtils.SnapshotMock {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    public SnapshotMock(final Configuration conf, final FileSystem fs, final Path rootDir) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      super(conf, fs, rootDir);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span>    @Override<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    public TableDescriptor createHtd(final String tableName) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      return TableDescriptorBuilder.newBuilder(TableName.valueOf(tableName))<a name="line.154"></a>
-<span class="sourceLineNo">155</span>              .setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.155"></a>
-<span class="sourceLineNo">156</span>                  .newBuilder(Bytes.toBytes(TEST_FAMILY))<a name="line.156"></a>
-<span class="sourceLineNo">157</span>                  .setMobEnabled(true)<a name="line.157"></a>
-<span class="sourceLineNo">158</span>                  .setMobThreshold(0L)<a name="line.158"></a>
-<span class="sourceLineNo">159</span>                  .build())<a name="line.159"></a>
-<span class="sourceLineNo">160</span>              .build();<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>}<a name="line.163"></a>
+<span class="sourceLineNo">062</span>  public static void createMobTable(final HBaseTestingUtility util, final TableName tableName,<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      final byte[][] splitKeys, int regionReplication, final byte[]... families)<a name="line.63"></a>
+<span class="sourceLineNo">064</span>      throws IOException, InterruptedException {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    createMobTable(util, tableName, splitKeys, regionReplication, null, families);<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>  public static void createMobTable(HBaseTestingUtility util, TableName tableName,<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      byte[][] splitKeys, int regionReplication, String cpClassName, byte[]... families)<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      throws IOException, InterruptedException {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    TableDescriptorBuilder builder =<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      TableDescriptorBuilder.newBuilder(tableName).setRegionReplication(regionReplication);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    for (byte[] family : families) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      builder.setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(family).setMobEnabled(true)<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        .setMobThreshold(0L).build());<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    if (!StringUtils.isBlank(cpClassName)) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      builder.setCoprocessor(cpClassName);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    util.getAdmin().createTable(builder.build(), splitKeys);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    SnapshotTestingUtils.waitForTableToBeOnline(util, tableName);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    assertEquals((splitKeys.length + 1) * regionReplication,<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      util.getAdmin().getRegions(tableName).size());<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  /**<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * Create a Mob table.<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   *<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * @param util<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * @param tableName<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   * @param families<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   * @return An Table instance for the created table.<a name="line.92"></a>
+<span class="sourceLineNo">093</span>   * @throws IOException<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   */<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public static Table createMobTable(final HBaseTestingUtility util,<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      final TableName tableName, final byte[]... families) throws IOException {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableName);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    for (byte[] family : families) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      // Disable blooms (they are on by default as of 0.95) but we disable them<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      // here because<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      // tests have hard coded counts of what to expect in block cache, etc.,<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      // and blooms being<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      // on is interfering.<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      builder.setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(family)<a name="line.104"></a>
+<span class="sourceLineNo">105</span>              .setBloomFilterType(BloomType.NONE)<a name="line.105"></a>
+<span class="sourceLineNo">106</span>              .setMobEnabled(true)<a name="line.106"></a>
+<span class="sourceLineNo">107</span>              .setMobThreshold(0L)<a name="line.107"></a>
+<span class="sourceLineNo">108</span>              .build());<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    util.getAdmin().createTable(builder.build());<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    // HBaseAdmin only waits for regions to appear in hbase:meta we should wait<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    // until they are assigned<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    util.waitUntilAllRegionsAssigned(tableName);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    return ConnectionFactory.createConnection(util.getConfiguration()).getTable(tableName);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  }<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>  /**<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   * Return the number of rows in the given table.<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   */<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  public static int countMobRows(final Table table, final byte[]... families) throws IOException {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    Scan scan = new Scan();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    for (byte[] family : families) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      scan.addFamily(family);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    try (ResultScanner results = table.getScanner(scan)) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      int count = 0;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      for (Result res; (res = results.next()) != null;) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        count++;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        for (Cell cell : res.listCells()) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>          // Verify the value<a name="line.130"></a>
+<span class="sourceLineNo">131</span>          Assert.assertTrue(CellUtil.cloneValue(cell).length &gt; 0);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      return count;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>  public static void verifyMobRowCount(final HBaseTestingUtility util,<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      final TableName tableName, long expectedRows) throws IOException {<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>    Table table = ConnectionFactory.createConnection(util.getConfiguration()).getTable(tableName);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    try {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      assertEquals(expectedRows, countMobRows(table));<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    } finally {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      table.close();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    }<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>  // ==========================================================================<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  // Snapshot Mock<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  // ==========================================================================<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public static class SnapshotMock extends SnapshotTestingUtils.SnapshotMock {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    public SnapshotMock(final Configuration conf, final FileSystem fs, final Path rootDir) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      super(conf, fs, rootDir);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    public TableDescriptor createHtd(final String tableName) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      return TableDescriptorBuilder.newBuilder(TableName.valueOf(tableName))<a name="line.159"></a>
+<span class="sourceLineNo">160</span>              .setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                  .newBuilder(Bytes.toBytes(TEST_FAMILY))<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                  .setMobEnabled(true)<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                  .setMobThreshold(0L)<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                  .build())<a name="line.164"></a>
+<span class="sourceLineNo">165</span>              .build();<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>}<a name="line.168"></a>
 
 
 


[35/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
index ece6546..804e520 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
@@ -429,6 +429,25 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-boolean-">CacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+           boolean&nbsp;enableBlockCache)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private </code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-">CacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+           boolean&nbsp;enableBlockCache,
+           boolean&nbsp;cacheDataOnRead,
+           boolean&nbsp;inMemory,
+           boolean&nbsp;cacheDataOnWrite,
+           boolean&nbsp;cacheIndexesOnWrite,
+           boolean&nbsp;cacheBloomsOnWrite,
+           boolean&nbsp;evictOnClose,
+           boolean&nbsp;cacheDataCompressed,
+           boolean&nbsp;prefetchOnOpen,
+           boolean&nbsp;dropBehindCompaction)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">CacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
            <a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</code>
 <div class="block">Create a cache configuration using the specified configuration object and
@@ -613,7 +632,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DISABLED</h4>
-<pre>public static final&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/io/hfile/CacheConfig.html#line.52">DISABLED</a></pre>
+<pre>public static final&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/io/hfile/CacheConfig.html#line.51">DISABLED</a></pre>
 <div class="block">Disabled cache configuration</div>
 </li>
 </ul>
@@ -623,7 +642,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CACHE_DATA_ON_READ_KEY</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.59">CACHE_DATA_ON_READ_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.57">CACHE_DATA_ON_READ_KEY</a></pre>
 <div class="block">Configuration key to cache data blocks on read. Bloom blocks and index blocks are always be
  cached if the block cache is enabled.</div>
 <dl>
@@ -638,7 +657,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CACHE_BLOCKS_ON_WRITE_KEY</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.65">CACHE_BLOCKS_ON_WRITE_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.63">CACHE_BLOCKS_ON_WRITE_KEY</a></pre>
 <div class="block">Configuration key to cache data blocks on write. There are separate
  switches for bloom blocks and non-root index blocks.</div>
 <dl>
@@ -653,7 +672,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CACHE_INDEX_BLOCKS_ON_WRITE_KEY</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.72">CACHE_INDEX_BLOCKS_ON_WRITE_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.70">CACHE_INDEX_BLOCKS_ON_WRITE_KEY</a></pre>
 <div class="block">Configuration key to cache leaf and intermediate-level index blocks on
  write.</div>
 <dl>
@@ -668,7 +687,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CACHE_BLOOM_BLOCKS_ON_WRITE_KEY</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.78">CACHE_BLOOM_BLOCKS_ON_WRITE_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.76">CACHE_BLOOM_BLOCKS_ON_WRITE_KEY</a></pre>
 <div class="block">Configuration key to cache compound bloom filter blocks on write.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -682,7 +701,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CACHE_DATA_BLOCKS_COMPRESSED_KEY</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.84">CACHE_DATA_BLOCKS_COMPRESSED_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.82">CACHE_DATA_BLOCKS_COMPRESSED_KEY</a></pre>
 <div class="block">Configuration key to cache data blocks in compressed and/or encrypted format.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -696,7 +715,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>EVICT_BLOCKS_ON_CLOSE_KEY</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.91">EVICT_BLOCKS_ON_CLOSE_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.89">EVICT_BLOCKS_ON_CLOSE_KEY</a></pre>
 <div class="block">Configuration key to evict all blocks of a given file from the block cache
  when the file is closed.</div>
 <dl>
@@ -711,7 +730,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>BUCKET_CACHE_PERSISTENT_PATH_KEY</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.108">BUCKET_CACHE_PERSISTENT_PATH_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.106">BUCKET_CACHE_PERSISTENT_PATH_KEY</a></pre>
 <div class="block">If the chosen ioengine can persist its state across restarts, the path to the file to persist
  to. This file is NOT the data file. It is a file into which we will serialize the map of
  what is in the data file. For example, if you pass the following argument as
@@ -732,7 +751,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>BUCKET_CACHE_WRITER_THREADS_KEY</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.111">BUCKET_CACHE_WRITER_THREADS_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.109">BUCKET_CACHE_WRITER_THREADS_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.BUCKET_CACHE_WRITER_THREADS_KEY">Constant Field Values</a></dd>
@@ -745,7 +764,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>BUCKET_CACHE_WRITER_QUEUE_KEY</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.112">BUCKET_CACHE_WRITER_QUEUE_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.110">BUCKET_CACHE_WRITER_QUEUE_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.BUCKET_CACHE_WRITER_QUEUE_KEY">Constant Field Values</a></dd>
@@ -758,7 +777,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>BUCKET_CACHE_BUCKETS_KEY</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.118">BUCKET_CACHE_BUCKETS_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.116">BUCKET_CACHE_BUCKETS_KEY</a></pre>
 <div class="block">A comma-delimited array of values for use as bucket sizes.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -772,7 +791,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_BUCKET_CACHE_WRITER_THREADS</h4>
-<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.123">DEFAULT_BUCKET_CACHE_WRITER_THREADS</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.121">DEFAULT_BUCKET_CACHE_WRITER_THREADS</a></pre>
 <div class="block">Defaults for Bucket cache</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -786,7 +805,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_BUCKET_CACHE_WRITER_QUEUE</h4>
-<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.124">DEFAULT_BUCKET_CACHE_WRITER_QUEUE</a></pre>
+<pre>public static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.122">DEFAULT_BUCKET_CACHE_WRITER_QUEUE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_BUCKET_CACHE_WRITER_QUEUE">Constant Field Values</a></dd>
@@ -799,7 +818,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>PREFETCH_BLOCKS_ON_OPEN_KEY</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.130">PREFETCH_BLOCKS_ON_OPEN_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.128">PREFETCH_BLOCKS_ON_OPEN_KEY</a></pre>
 <div class="block">Configuration key to prefetch all blocks of a given file into the block cache
  when the file is opened.</div>
 <dl>
@@ -814,7 +833,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>BLOCKCACHE_BLOCKSIZE_KEY</h4>
-<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.139">BLOCKCACHE_BLOCKSIZE_KEY</a></pre>
+<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.137">BLOCKCACHE_BLOCKSIZE_KEY</a></pre>
 <div class="block">The target block size used by blockcache instances. Defaults to
  <a href="../../../../../../org/apache/hadoop/hbase/HConstants.html#DEFAULT_BLOCKSIZE"><code>HConstants.DEFAULT_BLOCKSIZE</code></a>.
  TODO: this config point is completely wrong, as it's used to determine the
@@ -831,7 +850,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>EXTERNAL_BLOCKCACHE_KEY</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.141">EXTERNAL_BLOCKCACHE_KEY</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.139">EXTERNAL_BLOCKCACHE_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.EXTERNAL_BLOCKCACHE_KEY">Constant Field Values</a></dd>
@@ -844,7 +863,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>EXTERNAL_BLOCKCACHE_DEFAULT</h4>
-<pre>private static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.142">EXTERNAL_BLOCKCACHE_DEFAULT</a></pre>
+<pre>private static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.140">EXTERNAL_BLOCKCACHE_DEFAULT</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.EXTERNAL_BLOCKCACHE_DEFAULT">Constant Field Values</a></dd>
@@ -857,7 +876,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>EXTERNAL_BLOCKCACHE_CLASS_KEY</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.144">EXTERNAL_BLOCKCACHE_CLASS_KEY</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.142">EXTERNAL_BLOCKCACHE_CLASS_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.EXTERNAL_BLOCKCACHE_CLASS_KEY">Constant Field Values</a></dd>
@@ -870,7 +889,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DROP_BEHIND_CACHE_COMPACTION_KEY</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.145">DROP_BEHIND_CACHE_COMPACTION_KEY</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.143">DROP_BEHIND_CACHE_COMPACTION_KEY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DROP_BEHIND_CACHE_COMPACTION_KEY">Constant Field Values</a></dd>
@@ -883,7 +902,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DROP_BEHIND_CACHE_COMPACTION_DEFAULT</h4>
-<pre>private static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.147">DROP_BEHIND_CACHE_COMPACTION_DEFAULT</a></pre>
+<pre>private static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.145">DROP_BEHIND_CACHE_COMPACTION_DEFAULT</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DROP_BEHIND_CACHE_COMPACTION_DEFAULT">Constant Field Values</a></dd>
@@ -896,7 +915,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_CACHE_DATA_ON_READ</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.170">DEFAULT_CACHE_DATA_ON_READ</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.168">DEFAULT_CACHE_DATA_ON_READ</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_DATA_ON_READ">Constant Field Values</a></dd>
@@ -909,7 +928,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_CACHE_DATA_ON_WRITE</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.171">DEFAULT_CACHE_DATA_ON_WRITE</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.169">DEFAULT_CACHE_DATA_ON_WRITE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_DATA_ON_WRITE">Constant Field Values</a></dd>
@@ -922,7 +941,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_IN_MEMORY</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.172">DEFAULT_IN_MEMORY</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.170">DEFAULT_IN_MEMORY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_IN_MEMORY">Constant Field Values</a></dd>
@@ -935,7 +954,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_CACHE_INDEXES_ON_WRITE</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.173">DEFAULT_CACHE_INDEXES_ON_WRITE</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.171">DEFAULT_CACHE_INDEXES_ON_WRITE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_INDEXES_ON_WRITE">Constant Field Values</a></dd>
@@ -948,7 +967,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_CACHE_BLOOMS_ON_WRITE</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.174">DEFAULT_CACHE_BLOOMS_ON_WRITE</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.172">DEFAULT_CACHE_BLOOMS_ON_WRITE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_BLOOMS_ON_WRITE">Constant Field Values</a></dd>
@@ -961,7 +980,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_EVICT_ON_CLOSE</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.175">DEFAULT_EVICT_ON_CLOSE</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.173">DEFAULT_EVICT_ON_CLOSE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_EVICT_ON_CLOSE">Constant Field Values</a></dd>
@@ -974,7 +993,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_CACHE_DATA_COMPRESSED</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.176">DEFAULT_CACHE_DATA_COMPRESSED</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.174">DEFAULT_CACHE_DATA_COMPRESSED</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_CACHE_DATA_COMPRESSED">Constant Field Values</a></dd>
@@ -987,7 +1006,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_PREFETCH_ON_OPEN</h4>
-<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.177">DEFAULT_PREFETCH_ON_OPEN</a></pre>
+<pre>public static final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.175">DEFAULT_PREFETCH_ON_OPEN</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.io.hfile.CacheConfig.DEFAULT_PREFETCH_ON_OPEN">Constant Field Values</a></dd>
@@ -1000,7 +1019,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>blockCache</h4>
-<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.180">blockCache</a></pre>
+<pre>private final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.178">blockCache</a></pre>
 <div class="block">Local reference to the block cache, null if completely disabled</div>
 </li>
 </ul>
@@ -1010,7 +1029,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheDataOnRead</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.188">cacheDataOnRead</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.186">cacheDataOnRead</a></pre>
 <div class="block">Whether blocks should be cached on read (default is on if there is a
  cache but this can be turned off on a per-family or per-request basis).
  If off we will STILL cache meta blocks; i.e. INDEX and BLOOM types.
@@ -1023,7 +1042,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>inMemory</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.191">inMemory</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.189">inMemory</a></pre>
 <div class="block">Whether blocks should be flagged as in-memory when being cached</div>
 </li>
 </ul>
@@ -1033,7 +1052,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheDataOnWrite</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.194">cacheDataOnWrite</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.192">cacheDataOnWrite</a></pre>
 <div class="block">Whether data blocks should be cached when new files are written</div>
 </li>
 </ul>
@@ -1043,7 +1062,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheIndexesOnWrite</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.197">cacheIndexesOnWrite</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.195">cacheIndexesOnWrite</a></pre>
 <div class="block">Whether index blocks should be cached when new files are written</div>
 </li>
 </ul>
@@ -1053,7 +1072,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheBloomsOnWrite</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.200">cacheBloomsOnWrite</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.198">cacheBloomsOnWrite</a></pre>
 <div class="block">Whether compound bloom filter blocks should be cached on write</div>
 </li>
 </ul>
@@ -1063,7 +1082,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>evictOnClose</h4>
-<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.203">evictOnClose</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.201">evictOnClose</a></pre>
 <div class="block">Whether blocks of a file should be evicted when the file is closed</div>
 </li>
 </ul>
@@ -1073,7 +1092,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheDataCompressed</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.206">cacheDataCompressed</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.204">cacheDataCompressed</a></pre>
 <div class="block">Whether data blocks should be stored in compressed and/or encrypted form in the cache</div>
 </li>
 </ul>
@@ -1083,7 +1102,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>prefetchOnOpen</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.209">prefetchOnOpen</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.207">prefetchOnOpen</a></pre>
 <div class="block">Whether data blocks should be prefetched into the cache</div>
 </li>
 </ul>
@@ -1093,7 +1112,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>dropBehindCompaction</h4>
-<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.211">dropBehindCompaction</a></pre>
+<pre>private final&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.209">dropBehindCompaction</a></pre>
 </li>
 </ul>
 <a name="GLOBAL_BLOCK_CACHE_INSTANCE">
@@ -1102,7 +1121,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>GLOBAL_BLOCK_CACHE_INSTANCE</h4>
-<pre>static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.509">GLOBAL_BLOCK_CACHE_INSTANCE</a></pre>
+<pre>static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.531">GLOBAL_BLOCK_CACHE_INSTANCE</a></pre>
 <div class="block">Static reference to the block cache, or null if no caching should be used
  at all.</div>
 </li>
@@ -1113,7 +1132,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>ONHEAP_CACHE_INSTANCE</h4>
-<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.510">ONHEAP_CACHE_INSTANCE</a></pre>
+<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.532">ONHEAP_CACHE_INSTANCE</a></pre>
 </li>
 </ul>
 <a name="L2_CACHE_INSTANCE">
@@ -1122,7 +1141,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>L2_CACHE_INSTANCE</h4>
-<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.511">L2_CACHE_INSTANCE</a></pre>
+<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.533">L2_CACHE_INSTANCE</a></pre>
 </li>
 </ul>
 <a name="blockCacheDisabled">
@@ -1131,7 +1150,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>blockCacheDisabled</h4>
-<pre>static&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.515">blockCacheDisabled</a></pre>
+<pre>static&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.537">blockCacheDisabled</a></pre>
 <div class="block">Boolean whether we have disabled the block cache entirely.</div>
 </li>
 </ul>
@@ -1149,7 +1168,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CacheConfig</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.219">CacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.217">CacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                    <a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</pre>
 <div class="block">Create a cache configuration using the specified configuration object and
  family descriptor.</div>
@@ -1166,7 +1185,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CacheConfig</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.249">CacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.247">CacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Create a cache configuration using the specified configuration object and
  defaults for family level settings. Only use if no column family context. Prefer
  <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-"><code>CacheConfig(Configuration, ColumnFamilyDescriptor)</code></a></div>
@@ -1178,13 +1197,42 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
+<a name="CacheConfig-org.apache.hadoop.conf.Configuration-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CacheConfig</h4>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.251">CacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+                   boolean&nbsp;enableBlockCache)</pre>
+</li>
+</ul>
+<a name="CacheConfig-org.apache.hadoop.conf.Configuration-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CacheConfig</h4>
+<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.266">CacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+                    boolean&nbsp;enableBlockCache,
+                    boolean&nbsp;cacheDataOnRead,
+                    boolean&nbsp;inMemory,
+                    boolean&nbsp;cacheDataOnWrite,
+                    boolean&nbsp;cacheIndexesOnWrite,
+                    boolean&nbsp;cacheBloomsOnWrite,
+                    boolean&nbsp;evictOnClose,
+                    boolean&nbsp;cacheDataCompressed,
+                    boolean&nbsp;prefetchOnOpen,
+                    boolean&nbsp;dropBehindCompaction)</pre>
+</li>
+</ul>
 <a name="CacheConfig-org.apache.hadoop.hbase.io.hfile.BlockCache-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>CacheConfig</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.282">CacheConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache,
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.304">CacheConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;blockCache,
             boolean&nbsp;cacheDataOnRead,
             boolean&nbsp;inMemory,
             boolean&nbsp;cacheDataOnWrite,
@@ -1207,8 +1255,6 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <dd><code>evictOnClose</code> - whether blocks should be evicted when HFile is closed</dd>
 <dd><code>cacheDataCompressed</code> - whether to store blocks as compressed in the cache</dd>
 <dd><code>prefetchOnOpen</code> - whether to prefetch blocks upon open</dd>
-<dd><code>cacheDataInL1</code> - If more than one cache tier deployed, if true, cache this column families
-          data blocks up in the L1 tier.</dd>
 <dd><code>dropBehindCompaction</code> - indicate that we should set drop behind to true when open a store
           file reader for compaction</dd>
 </dl>
@@ -1220,7 +1266,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CacheConfig</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.304">CacheConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConf)</pre>
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.326">CacheConfig</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;cacheConf)</pre>
 <div class="block">Constructs a cache configuration copied from the specified configuration.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1234,7 +1280,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CacheConfig</h4>
-<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.312">CacheConfig</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.334">CacheConfig</a>()</pre>
 </li>
 </ul>
 </li>
@@ -1251,7 +1297,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isBlockCacheEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.319">isBlockCacheEnabled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.341">isBlockCacheEnabled</a>()</pre>
 <div class="block">Checks whether the block cache is enabled.</div>
 </li>
 </ul>
@@ -1261,7 +1307,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getBlockCache</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.327">getBlockCache</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.349">getBlockCache</a>()</pre>
 <div class="block">Returns the block cache.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -1275,7 +1321,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheDataOnRead</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.336">shouldCacheDataOnRead</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.358">shouldCacheDataOnRead</a>()</pre>
 <div class="block">Returns whether the DATA blocks of this HFile should be cached on read or not (we always
  cache the meta blocks, the INDEX and BLOOM blocks).</div>
 <dl>
@@ -1290,7 +1336,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldDropBehindCompaction</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.340">shouldDropBehindCompaction</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.362">shouldDropBehindCompaction</a>()</pre>
 </li>
 </ul>
 <a name="shouldCacheBlockOnRead-org.apache.hadoop.hbase.io.hfile.BlockType.BlockCategory-">
@@ -1299,7 +1345,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheBlockOnRead</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.349">shouldCacheBlockOnRead</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType.BlockCategory</a>&nbsp;category)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.371">shouldCacheBlockOnRead</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType.BlockCategory</a>&nbsp;category)</pre>
 <div class="block">Should we cache a block of a particular category? We always cache
  important blocks such as index blocks, as long as the block cache is
  available.</div>
@@ -1311,7 +1357,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>isInMemory</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.362">isInMemory</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.384">isInMemory</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if blocks in this file should be flagged as in-memory</dd>
@@ -1324,7 +1370,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheDataOnWrite</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.370">shouldCacheDataOnWrite</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.392">shouldCacheDataOnWrite</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if data blocks should be written to the cache when an HFile is
@@ -1338,7 +1384,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setCacheDataOnWrite</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.380">setCacheDataOnWrite</a>(boolean&nbsp;cacheDataOnWrite)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.402">setCacheDataOnWrite</a>(boolean&nbsp;cacheDataOnWrite)</pre>
 <div class="block">Only used for testing.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1353,7 +1399,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheIndexesOnWrite</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.388">shouldCacheIndexesOnWrite</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.410">shouldCacheIndexesOnWrite</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if index blocks should be written to the cache when an HFile
@@ -1367,7 +1413,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheBloomsOnWrite</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.396">shouldCacheBloomsOnWrite</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.418">shouldCacheBloomsOnWrite</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if bloom blocks should be written to the cache when an HFile
@@ -1381,7 +1427,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldEvictOnClose</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.404">shouldEvictOnClose</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.426">shouldEvictOnClose</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if blocks should be evicted from the cache when an HFile
@@ -1395,7 +1441,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setEvictOnClose</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.413">setEvictOnClose</a>(boolean&nbsp;evictOnClose)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.435">setEvictOnClose</a>(boolean&nbsp;evictOnClose)</pre>
 <div class="block">Only used for testing.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1410,7 +1456,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheDataCompressed</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.420">shouldCacheDataCompressed</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.442">shouldCacheDataCompressed</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if data blocks should be compressed in the cache, false if not</dd>
@@ -1423,7 +1469,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldCacheCompressed</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.427">shouldCacheCompressed</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType.BlockCategory</a>&nbsp;category)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.449">shouldCacheCompressed</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType.BlockCategory</a>&nbsp;category)</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if this <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><code>BlockType.BlockCategory</code></a> should be compressed in blockcache, false otherwise</dd>
@@ -1436,7 +1482,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldPrefetchOnOpen</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.440">shouldPrefetchOnOpen</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.462">shouldPrefetchOnOpen</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if blocks should be prefetched into the cache on open, false if not</dd>
@@ -1449,7 +1495,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldReadBlockFromCache</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.452">shouldReadBlockFromCache</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.474">shouldReadBlockFromCache</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType)</pre>
 <div class="block">Return true if we may find this type of block in block cache.
  <p>
  TODO: today <code>family.isBlockCacheEnabled()</code> only means <code>cacheDataOnRead</code>, so here we
@@ -1464,7 +1510,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>shouldLockOnCacheMiss</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.479">shouldLockOnCacheMiss</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.501">shouldLockOnCacheMiss</a>(<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile">BlockType</a>&nbsp;blockType)</pre>
 <div class="block">If we make sure the block could not be cached, we will not acquire the lock
  otherwise we will acquire lock</div>
 </li>
@@ -1475,7 +1521,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.487">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.509">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -1488,7 +1534,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnHeapCache</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.521">getOnHeapCache</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.543">getOnHeapCache</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>c</code> - Configuration to use.</dd>
@@ -1503,7 +1549,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnHeapCacheStats</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.525">getOnHeapCacheStats</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.547">getOnHeapCacheStats</a>()</pre>
 </li>
 </ul>
 <a name="getL2CacheStats--">
@@ -1512,7 +1558,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getL2CacheStats</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.532">getL2CacheStats</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.554">getL2CacheStats</a>()</pre>
 </li>
 </ul>
 <a name="getOnHeapCacheInternal-org.apache.hadoop.conf.Configuration-">
@@ -1521,7 +1567,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnHeapCacheInternal</h4>
-<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.543">getOnHeapCacheInternal</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
+<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/LruBlockCache.html" title="class in org.apache.hadoop.hbase.io.hfile">LruBlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.565">getOnHeapCacheInternal</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>c</code> - Configuration to use.</dd>
@@ -1536,7 +1582,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getExternalBlockcache</h4>
-<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.559">getExternalBlockcache</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
+<pre>private static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.581">getExternalBlockcache</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
 </li>
 </ul>
 <a name="getBucketCache-org.apache.hadoop.conf.Configuration-">
@@ -1545,7 +1591,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getBucketCache</h4>
-<pre>static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.589">getBucketCache</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
+<pre>static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.611">getBucketCache</a>(org.apache.hadoop.conf.Configuration&nbsp;c)</pre>
 </li>
 </ul>
 <a name="instantiateBlockCache-org.apache.hadoop.conf.Configuration-">
@@ -1554,7 +1600,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>instantiateBlockCache</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.649">instantiateBlockCache</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.671">instantiateBlockCache</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Returns the block cache or <code>null</code> in case none should be used.
  Sets GLOBAL_BLOCK_CACHE_INSTANCE</div>
 <dl>
@@ -1571,7 +1617,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>clearGlobalInstances</h4>
-<pre>static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.677">clearGlobalInstances</a>()</pre>
+<pre>static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.699">clearGlobalInstances</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 b7188fa..cfa8f7f 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -274,11 +274,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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.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/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/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</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/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 91a2ed4..7557e4f 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -353,8 +353,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 f930505..ff8a2f3 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -293,10 +293,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/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/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>
 <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/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
index 72ee2d6..0dc8005 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
@@ -136,7 +136,7 @@
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3029">HMaster.MasterStoppedException</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3036">HMaster.MasterStoppedException</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/DoNotRetryIOException.html" title="class in org.apache.hadoop.hbase">DoNotRetryIOException</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -205,7 +205,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/DoNotRetryIOException.ht
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MasterStoppedException</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html#line.3030">MasterStoppedException</a>()</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html#line.3037">MasterStoppedException</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
index 900105e..0c04fd9 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
@@ -105,7 +105,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>protected static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2448">HMaster.TableDescriptorGetter</a></pre>
+<pre>protected static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2455">HMaster.TableDescriptorGetter</a></pre>
 <div class="block">Implement to return TableDescriptor after pre-checks</div>
 </li>
 </ul>
@@ -150,7 +150,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockListLast">
 <li class="blockList">
 <h4>get</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html#line.2449">get</a>()
+<pre><a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html#line.2456">get</a>()
              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>


[38/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.


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

Branch: refs/heads/asf-site
Commit: 9c64af4509572154caa9078e7f49846529e89f7d
Parents: cf41f19
Author: jenkins <bu...@apache.org>
Authored: Mon Oct 15 14:52:39 2018 +0000
Committer: jenkins <bu...@apache.org>
Committed: Mon Oct 15 14:52:39 2018 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |     4 +-
 apache_hbase_reference_guide.pdf                |     4 +-
 book.html                                       |     2 +-
 bulk-loads.html                                 |     4 +-
 checkstyle-aggregate.html                       | 10402 ++++++++---------
 checkstyle.rss                                  |   234 +-
 coc.html                                        |     4 +-
 dependencies.html                               |     4 +-
 dependency-convergence.html                     |     4 +-
 dependency-info.html                            |     4 +-
 dependency-management.html                      |     4 +-
 devapidocs/constant-values.html                 |     4 +-
 devapidocs/index-all.html                       |     6 +
 .../hadoop/hbase/backup/package-tree.html       |     4 +-
 .../hadoop/hbase/client/package-tree.html       |    24 +-
 .../hadoop/hbase/filter/package-tree.html       |    10 +-
 .../hfile/CacheConfig.ExternalBlockCaches.html  |    10 +-
 .../hadoop/hbase/io/hfile/CacheConfig.html      |   196 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     6 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     2 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     4 +-
 .../master/HMaster.MasterStoppedException.html  |     4 +-
 .../master/HMaster.TableDescriptorGetter.html   |     4 +-
 .../org/apache/hadoop/hbase/master/HMaster.html |   260 +-
 .../hadoop/hbase/master/package-tree.html       |     4 +-
 .../hbase/master/procedure/package-tree.html    |     2 +-
 .../apache/hadoop/hbase/mob/MobCacheConfig.html |    20 +-
 .../hadoop/hbase/monitoring/package-tree.html   |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    14 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     6 +-
 .../hadoop/hbase/quotas/package-tree.html       |     6 +-
 .../HRegionServer.CompactionChecker.html        |    14 +-
 .../HRegionServer.MovedRegionInfo.html          |    16 +-
 .../HRegionServer.MovedRegionsCleaner.html      |    16 +-
 .../HRegionServer.PeriodicMemStoreFlusher.html  |    14 +-
 .../hbase/regionserver/HRegionServer.html       |   350 +-
 .../hadoop/hbase/regionserver/package-tree.html |    20 +-
 .../regionserver/querymatcher/package-tree.html |     4 +-
 .../hbase/regionserver/wal/package-tree.html    |     2 +-
 .../hadoop/hbase/replication/package-tree.html  |     2 +-
 .../replication/regionserver/package-tree.html  |     2 +-
 .../hbase/security/access/package-tree.html     |     4 +-
 .../hadoop/hbase/security/package-tree.html     |     2 +-
 .../hadoop/hbase/thrift/package-tree.html       |     2 +-
 .../apache/hadoop/hbase/util/package-tree.html  |     8 +-
 .../org/apache/hadoop/hbase/Version.html        |     4 +-
 .../hfile/CacheConfig.ExternalBlockCaches.html  |  1262 +-
 .../hadoop/hbase/io/hfile/CacheConfig.html      |  1262 +-
 .../master/HMaster.InitializationMonitor.html   |  4257 +++----
 .../master/HMaster.MasterStoppedException.html  |  4257 +++----
 .../hbase/master/HMaster.RedirectServlet.html   |  4257 +++----
 .../master/HMaster.TableDescriptorGetter.html   |  4257 +++----
 .../org/apache/hadoop/hbase/master/HMaster.html |  4257 +++----
 .../apache/hadoop/hbase/mob/MobCacheConfig.html |    45 +-
 .../HRegionServer.CompactionChecker.html        |  6345 +++++-----
 .../HRegionServer.MovedRegionInfo.html          |  6345 +++++-----
 .../HRegionServer.MovedRegionsCleaner.html      |  6345 +++++-----
 .../HRegionServer.PeriodicMemStoreFlusher.html  |  6345 +++++-----
 .../hbase/regionserver/HRegionServer.html       |  6345 +++++-----
 downloads.html                                  |     4 +-
 export_control.html                             |     4 +-
 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/allclasses-frame.html            |    18 +-
 testdevapidocs/allclasses-noframe.html          |    18 +-
 testdevapidocs/index-all.html                   |   264 +-
 .../hadoop/hbase/TestCheckTestClasses.html      |     8 +-
 .../hbase/class-use/HBaseClassTestRule.html     |   172 +-
 .../hbase/class-use/HBaseTestingUtility.html    |   155 +-
 .../client/BufferingScanResultConsumer.html     |     4 +-
 ...tFromClientAfterSplittingRegionTestBase.html |   328 +
 ...FromClientCloneLinksAfterDeleteTestBase.html |   331 +
 .../CloneSnapshotFromClientErrorTestBase.html   |   330 +
 .../CloneSnapshotFromClientNormalTestBase.html  |   372 +
 .../client/CloneSnapshotFromClientTestBase.html |   638 +
 .../hbase/client/ColumnCountOnRowFilter.html    |     4 +-
 ...stClientTimeouts.RandomTimeoutRpcClient.html |     4 +-
 .../client/TestCloneSnapshotFromClient.html     |   801 --
 ...eSnapshotFromClientAfterSplittingRegion.html |   369 +
 ...SnapshotFromClientCloneLinksAfterDelete.html |   369 +
 .../TestCloneSnapshotFromClientError.html       |   369 +
 .../TestCloneSnapshotFromClientNormal.html      |   369 +
 ...oneSnapshotFromClientWithRegionReplicas.html |   331 -
 .../TestColumnFamilyDescriptorBuilder.html      |     4 +-
 .../hbase/client/TestMetricsConnection.html     |     4 +-
 ...napshotFromClient.DelayFlushCoprocessor.html |   366 -
 .../client/TestMobCloneSnapshotFromClient.html  |   491 -
 ...eSnapshotFromClientAfterSplittingRegion.html |   416 +
 ...eLinksAfterDelete.DelayFlushCoprocessor.html |   366 +
 ...SnapshotFromClientCloneLinksAfterDelete.html |   469 +
 .../TestMobCloneSnapshotFromClientError.html    |   416 +
 .../TestMobCloneSnapshotFromClientNormal.html   |   440 +
 .../TestMobRestoreSnapshotFromClient.html       |     4 +-
 ...tFromClientAfterSplittingRegionTestBase.html |   169 +
 ...FromClientCloneLinksAfterDeleteTestBase.html |   169 +
 .../CloneSnapshotFromClientErrorTestBase.html   |   169 +
 .../CloneSnapshotFromClientNormalTestBase.html  |   169 +
 .../CloneSnapshotFromClientTestBase.html        |   209 +
 .../class-use/TestCloneSnapshotFromClient.html  |   171 -
 ...eSnapshotFromClientAfterSplittingRegion.html |   125 +
 ...SnapshotFromClientCloneLinksAfterDelete.html |   125 +
 .../TestCloneSnapshotFromClientError.html       |   125 +
 .../TestCloneSnapshotFromClientNormal.html      |   125 +
 ...oneSnapshotFromClientWithRegionReplicas.html |   125 -
 ...napshotFromClient.DelayFlushCoprocessor.html |   125 -
 .../TestMobCloneSnapshotFromClient.html         |   125 -
 ...eSnapshotFromClientAfterSplittingRegion.html |   125 +
 ...eLinksAfterDelete.DelayFlushCoprocessor.html |   125 +
 ...SnapshotFromClientCloneLinksAfterDelete.html |   125 +
 .../TestMobCloneSnapshotFromClientError.html    |   125 +
 .../TestMobCloneSnapshotFromClientNormal.html   |   125 +
 .../hadoop/hbase/client/package-frame.html      |    18 +-
 .../hadoop/hbase/client/package-summary.html    |   404 +-
 .../hadoop/hbase/client/package-tree.html       |    36 +-
 .../apache/hadoop/hbase/client/package-use.html |    48 +-
 .../apache/hadoop/hbase/master/TestMaster.html  |    57 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    10 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     2 +-
 .../hadoop/hbase/regionserver/package-tree.html |     4 +-
 .../MobSnapshotTestingUtils.SnapshotMock.html   |     6 +-
 .../hbase/snapshot/MobSnapshotTestingUtils.html |    58 +-
 .../apache/hadoop/hbase/test/package-tree.html  |     6 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 testdevapidocs/overview-tree.html               |    36 +-
 .../hadoop/hbase/TestCheckTestClasses.html      |    68 +-
 ...tFromClientAfterSplittingRegionTestBase.html |   153 +
 ...FromClientCloneLinksAfterDeleteTestBase.html |   157 +
 .../CloneSnapshotFromClientErrorTestBase.html   |   113 +
 .../CloneSnapshotFromClientNormalTestBase.html  |   133 +
 .../client/CloneSnapshotFromClientTestBase.html |   233 +
 .../client/TestCloneSnapshotFromClient.html     |   401 -
 ...eSnapshotFromClientAfterSplittingRegion.html |   125 +
 ...SnapshotFromClientCloneLinksAfterDelete.html |   126 +
 .../TestCloneSnapshotFromClientError.html       |   124 +
 .../TestCloneSnapshotFromClientNormal.html      |   124 +
 ...oneSnapshotFromClientWithRegionReplicas.html |   110 -
 ...napshotFromClient.DelayFlushCoprocessor.html |   260 -
 .../client/TestMobCloneSnapshotFromClient.html  |   260 -
 ...eSnapshotFromClientAfterSplittingRegion.html |   139 +
 ...eLinksAfterDelete.DelayFlushCoprocessor.html |   203 +
 ...SnapshotFromClientCloneLinksAfterDelete.html |   203 +
 .../TestMobCloneSnapshotFromClientError.html    |   138 +
 .../TestMobCloneSnapshotFromClientNormal.html   |   146 +
 .../apache/hadoop/hbase/master/TestMaster.html  |   495 +-
 .../MobSnapshotTestingUtils.SnapshotMock.html   |   237 +-
 .../hbase/snapshot/MobSnapshotTestingUtils.html |   237 +-
 164 files changed, 44870 insertions(+), 38173 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index 8c72d96..3eadcee 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -611,7 +611,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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index a7bd5c2..3b287cd 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20181014143300+00'00')
-/CreationDate (D:20181014144822+00'00')
+/ModDate (D:20181015143238+00'00')
+/CreationDate (D:20181015144917+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index b4806ed..9bb4dd3 100644
--- a/book.html
+++ b/book.html
@@ -41284,7 +41284,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2018-10-14 14:33:00 UTC
+Last updated 2018-10-15 14:32:38 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index eb732a7..1459b10 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -316,7 +316,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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 


[13/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html b/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html
new file mode 100644
index 0000000..128f493
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html
@@ -0,0 +1,330 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CloneSnapshotFromClientErrorTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CloneSnapshotFromClientErrorTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloneSnapshotFromClientErrorTestBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientErrorTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class CloneSnapshotFromClientErrorTestBase" class="title">Class CloneSnapshotFromClientErrorTestBase</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.CloneSnapshotFromClientErrorTestBase</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientError</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientError</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html#line.26">CloneSnapshotFromClientErrorTestBase</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html#CloneSnapshotFromClientErrorTestBase--">CloneSnapshotFromClientErrorTestBase</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html#testCloneNonExistentSnapshot--">testCloneNonExistentSnapshot</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html#testCloneOnMissingNamespace--">testCloneOnMissingNamespace</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotF
 romClientTestBase.html#setupConfiguration--">setupConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CloneSnapshotFromClientErrorTestBase--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CloneSnapshotFromClientErrorTestBase</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html#line.26">CloneSnapshotFromClientErrorTestBase</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="testCloneNonExistentSnapshot--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testCloneNonExistentSnapshot</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html#line.29">testCloneNonExistentSnapshot</a>()
+                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testCloneOnMissingNamespace--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testCloneOnMissingNamespace</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html#line.37">testCloneOnMissingNamespace</a>()
+                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloneSnapshotFromClientErrorTestBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientErrorTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html b/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html
new file mode 100644
index 0000000..a2e522f
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html
@@ -0,0 +1,372 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CloneSnapshotFromClientNormalTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CloneSnapshotFromClientNormalTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloneSnapshotFromClientNormalTestBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientNormalTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class CloneSnapshotFromClientNormalTestBase" class="title">Class CloneSnapshotFromClientNormalTestBase</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.CloneSnapshotFromClientNormalTestBase</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientNormal</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientNormal</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#line.26">CloneSnapshotFromClientNormalTestBase</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#CloneSnapshotFromClientNormalTestBase--">CloneSnapshotFromClientNormalTestBase</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#testCloneSnapshot--">testCloneSnapshot</a></span>()</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/CloneSnapshotFromClientNormalTestBase.html#testCloneSnapshot-org.apache.hadoop.hbase.TableName-byte:A-int-">testCloneSnapshot</a></span>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
+                 byte[]&nbsp;snapshotName,
+                 int&nbsp;snapshotRows)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#testCloneSnapshotCrossNamespace--">testCloneSnapshotCrossNamespace</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#verifyReplicasCameOnline-org.apache.hadoop.hbase.TableName-">verifyReplicasCameOnline</a></span>(org.apache.hadoop.hbase.TableName&nbsp;tableName)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotF
 romClientTestBase.html#setupConfiguration--">setupConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CloneSnapshotFromClientNormalTestBase--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CloneSnapshotFromClientNormalTestBase</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#line.26">CloneSnapshotFromClientNormalTestBase</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="testCloneSnapshot--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testCloneSnapshot</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#line.29">testCloneSnapshot</a>()
+                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testCloneSnapshot-org.apache.hadoop.hbase.TableName-byte:A-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testCloneSnapshot</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#line.37">testCloneSnapshot</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
+                               byte[]&nbsp;snapshotName,
+                               int&nbsp;snapshotRows)
+                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="verifyReplicasCameOnline-org.apache.hadoop.hbase.TableName-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>verifyReplicasCameOnline</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#line.47">verifyReplicasCameOnline</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName)
+                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testCloneSnapshotCrossNamespace--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testCloneSnapshotCrossNamespace</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#line.52">testCloneSnapshotCrossNamespace</a>()
+                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloneSnapshotFromClientNormalTestBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientNormalTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html b/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html
new file mode 100644
index 0000000..9ca7800
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html
@@ -0,0 +1,638 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CloneSnapshotFromClientTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CloneSnapshotFromClientTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":9,"i8":9,"i9":10,"i10":9,"i11":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";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloneSnapshotFromClientTestBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class CloneSnapshotFromClientTestBase" class="title">Class CloneSnapshotFromClientTestBase</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientErrorTestBase</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientNormalTestBase</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.37">CloneSnapshotFromClientTestBase</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Base class for testing clone snapsot</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected org.apache.hadoop.hbase.client.Admin</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>org.junit.rules.TestName</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a></span></code>&nbsp;</td>
+</tr>
+<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/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected byte[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected org.apache.hadoop.hbase.TableName</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#CloneSnapshotFromClientTestBase--">CloneSnapshotFromClientTestBase</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a></span>(org.apache.hadoop.hbase.client.Table&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTableAndSnapshots--">createTableAndSnapshots</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup</a></span>()</code>
+<div class="block">Initialize the tests with a table filled with some data and two snapshots (snapshotName0,
+ snapshotName1) of different states.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setupConfiguration--">setupConfiguration</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDown--">tearDown</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDownAfterClass--">tearDownAfterClass</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
+              org.apache.hadoop.hbase.TableName&nbsp;tableName,
+              long&nbsp;expectedRows)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="TEST_UTIL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEST_UTIL</h4>
+<pre>protected static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.39">TEST_UTIL</a></pre>
+</li>
+</ul>
+<a name="FAMILY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FAMILY</h4>
+<pre>protected final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.41">FAMILY</a></pre>
+</li>
+</ul>
+<a name="emptySnapshot">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>emptySnapshot</h4>
+<pre>protected&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.43">emptySnapshot</a></pre>
+</li>
+</ul>
+<a name="snapshotName0">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>snapshotName0</h4>
+<pre>protected&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.44">snapshotName0</a></pre>
+</li>
+</ul>
+<a name="snapshotName1">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>snapshotName1</h4>
+<pre>protected&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.45">snapshotName1</a></pre>
+</li>
+</ul>
+<a name="snapshotName2">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>snapshotName2</h4>
+<pre>protected&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.46">snapshotName2</a></pre>
+</li>
+</ul>
+<a name="tableName">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tableName</h4>
+<pre>protected&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.47">tableName</a></pre>
+</li>
+</ul>
+<a name="snapshot0Rows">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>snapshot0Rows</h4>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.48">snapshot0Rows</a></pre>
+</li>
+</ul>
+<a name="snapshot1Rows">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>snapshot1Rows</h4>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.49">snapshot1Rows</a></pre>
+</li>
+</ul>
+<a name="admin">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>admin</h4>
+<pre>protected&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.50">admin</a></pre>
+</li>
+</ul>
+<a name="name">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>name</h4>
+<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.53">name</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CloneSnapshotFromClientTestBase--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CloneSnapshotFromClientTestBase</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.37">CloneSnapshotFromClientTestBase</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setupConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setupConfiguration</h4>
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.55">setupConfiguration</a>()</pre>
+</li>
+</ul>
+<a name="setUpBeforeClass--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUpBeforeClass</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.65">setUpBeforeClass</a>()
+                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="tearDownAfterClass--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tearDownAfterClass</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.71">tearDownAfterClass</a>()
+                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getValidMethodName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValidMethodName</h4>
+<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.75">getValidMethodName</a>()</pre>
+</li>
+</ul>
+<a name="setup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setup</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.85">setup</a>()
+           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">Initialize the tests with a table filled with some data and two snapshots (snapshotName0,
+ snapshotName1) of different states. The tableName, snapshotNames and the number of rows in the
+ snapshot are initialized.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createTable--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTable</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.98">createTable</a>()
+                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="numRowsToLoad--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>numRowsToLoad</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.102">numRowsToLoad</a>()</pre>
+</li>
+</ul>
+<a name="countRows-org.apache.hadoop.hbase.client.Table-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>countRows</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.106">countRows</a>(org.apache.hadoop.hbase.client.Table&nbsp;table)
+                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createTableAndSnapshots--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTableAndSnapshots</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.110">createTableAndSnapshots</a>()
+                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="getNumReplicas--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumReplicas</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.144">getNumReplicas</a>()</pre>
+</li>
+</ul>
+<a name="verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>verifyRowCount</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.148">verifyRowCount</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
+                              org.apache.hadoop.hbase.TableName&nbsp;tableName,
+                              long&nbsp;expectedRows)
+                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="tearDown--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>tearDown</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.154">tearDown</a>()
+              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloneSnapshotFromClientTestBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.html b/testdevapidocs/org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.html
index 60b1232..830354d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/BufferingScanResultConsumer.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/client/DoNothingAsyncRegistry.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -418,7 +418,7 @@ extends org.apache.hadoop.hbase.filter.FilterBase</pre>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/BufferingScanResultConsumer.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/client/DoNothingAsyncRegistry.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html
index e30235f..84f6a2d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutBlockingRpcChannel.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html" target="_top">Frames</a></li>
@@ -323,7 +323,7 @@ extends org.apache.hadoop.hbase.ipc.BlockingRpcClient</pre>
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutBlockingRpcChannel.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html" target="_top">Frames</a></li>


[36/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index 43a6894..0f9fc79 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,8 +25,8 @@ under the License.
     <language>en-us</language>
     <copyright>&#169;2007 - 2018 The Apache Software Foundation</copyright>
     <item>
-      <title>File: 3762,
-             Errors: 15156,
+      <title>File: 3772,
+             Errors: 15150,
              Warnings: 0,
              Infos: 0
       </title>
@@ -690,6 +690,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.java">org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.JitterScheduledThreadPoolExecutorImpl.java">org/apache/hadoop/hbase/JitterScheduledThreadPoolExecutorImpl.java</a>
                 </td>
                 <td>
@@ -3051,7 +3065,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  10
+                  9
                 </td>
               </tr>
                           <tr>
@@ -3392,6 +3406,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.CloneSnapshotFromClientErrorTestBase.java">org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TableBuilder.java">org/apache/hadoop/hbase/client/TableBuilder.java</a>
                 </td>
                 <td>
@@ -3616,20 +3644,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientWithRegionReplicas.java">org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.filter.Filter.java">org/apache/hadoop/hbase/filter/Filter.java</a>
                 </td>
                 <td>
@@ -12296,6 +12310,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientCloneLinksAfterDelete.java">org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.types.Union2.java">org/apache/hadoop/hbase/types/Union2.java</a>
                 </td>
                 <td>
@@ -14718,6 +14746,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientNormal.java">org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.io.encoding.FastDiffDeltaEncoder.java">org/apache/hadoop/hbase/io/encoding/FastDiffDeltaEncoder.java</a>
                 </td>
                 <td>
@@ -14928,20 +14970,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TestCloneSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad.java">org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java</a>
                 </td>
                 <td>
@@ -15609,7 +15637,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  8
+                  6
                 </td>
               </tr>
                           <tr>
@@ -20962,6 +20990,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientError.java">org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.replication.TestSyncReplicationActive.java">org/apache/hadoop/hbase/replication/TestSyncReplicationActive.java</a>
                 </td>
                 <td>
@@ -21676,6 +21718,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientError.java">org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.chaos.actions.ChangeBloomFilterAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeBloomFilterAction.java</a>
                 </td>
                 <td>
@@ -22824,6 +22880,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase.java">org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.master.TestShutdownWithNoRegionServer.java">org/apache/hadoop/hbase/master/TestShutdownWithNoRegionServer.java</a>
                 </td>
                 <td>
@@ -25997,7 +26067,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  2
+                  0
                 </td>
               </tr>
                           <tr>
@@ -40282,6 +40352,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.CloneSnapshotFromClientNormalTestBase.java">org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.util.FileStatusFilter.java">org/apache/hadoop/hbase/util/FileStatusFilter.java</a>
                 </td>
                 <td>
@@ -41234,6 +41318,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientCloneLinksAfterDelete.java">org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.util.TestCompressionTest.java">org/apache/hadoop/hbase/util/TestCompressionTest.java</a>
                 </td>
                 <td>
@@ -42424,6 +42522,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientAfterSplittingRegion.java">org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.mapreduce.TestTableRecordReader.java">org/apache/hadoop/hbase/mapreduce/TestTableRecordReader.java</a>
                 </td>
                 <td>
@@ -43292,6 +43404,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.CloneSnapshotFromClientAfterSplittingRegionTestBase.java">org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.coprocessor.RowProcessorClient.java">org/apache/hadoop/hbase/client/coprocessor/RowProcessorClient.java</a>
                 </td>
                 <td>
@@ -43712,6 +43838,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientAfterSplittingRegion.java">org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.util.EnvironmentEdge.java">org/apache/hadoop/hbase/util/EnvironmentEdge.java</a>
                 </td>
                 <td>
@@ -45770,20 +45910,6 @@ under the License.
               </tr>
                           <tr>
                 <td>
-                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.java</a>
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  0
-                </td>
-                <td>
-                  1
-                </td>
-              </tr>
-                          <tr>
-                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.procedure2.LockType.java">org/apache/hadoop/hbase/procedure2/LockType.java</a>
                 </td>
                 <td>
@@ -48080,6 +48206,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientNormal.java">org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.master.ClusterStatusPublisher.java">org/apache/hadoop/hbase/master/ClusterStatusPublisher.java</a>
                 </td>
                 <td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index 7fd4ced..90aea69 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -385,7 +385,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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 2a9687c..a62a87e 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -450,7 +450,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 6178abf..6f47069 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -889,7 +889,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index c90cb46..20a8f97 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -323,7 +323,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index 5cd8f4f..4131926 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -1015,7 +1015,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 13c51af..9b470a4 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3824,7 +3824,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Sun Oct 14 14:43:26 UTC 2018"</code></td>
+<td class="colLast"><code>"Mon Oct 15 14:44:12 UTC 2018"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
@@ -3838,7 +3838,7 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"50457414874b3c76a0b57496f86b207e"</code></td>
+<td class="colLast"><code>"935f1423f9eca8b471ab74f3b32de6b8"</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/9c64af45/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index dc725a6..6ff2a29 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -8156,6 +8156,10 @@
 <div class="block">Create a cache configuration using the specified configuration object and
  defaults for family level settings.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-boolean-">CacheConfig(Configuration, boolean)</a></span> - Constructor for class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.conf.Configuration-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-">CacheConfig(Configuration, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean)</a></span> - Constructor for class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html#CacheConfig-org.apache.hadoop.hbase.io.hfile.BlockCache-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-boolean-">CacheConfig(BlockCache, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean, boolean)</a></span> - Constructor for class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a></dt>
 <dd>
 <div class="block">Create a block cache configuration with the specified cache and configuration parameters.</div>
@@ -75744,6 +75748,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html#MobCacheConfig-org.apache.hadoop.conf.Configuration-">MobCacheConfig(Configuration)</a></span> - Constructor for class org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html#MobCacheConfig-org.apache.hadoop.conf.Configuration-boolean-">MobCacheConfig(Configuration, boolean)</a></span> - Constructor for class org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/MobCacheConfig.html" title="class in org.apache.hadoop.hbase.mob">MobCacheConfig</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HMobStore.html#mobCacheConfig">mobCacheConfig</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HMobStore.html" title="class in org.apache.hadoop.hbase.regionserver">HMobStore</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#mobCacheConfig">mobCacheConfig</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 d0d625a..f7aa217 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -167,10 +167,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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.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>
+<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/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/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 f747fa4..eeac65e 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -556,23 +556,23 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/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/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.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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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>
+<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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 266431c..5b5bc9f 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -183,14 +183,14 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/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/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.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/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/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/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/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
index 3eca106..a81d07b 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static enum <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.153">CacheConfig.ExternalBlockCaches</a>
+<pre>private static enum <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.151">CacheConfig.ExternalBlockCaches</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>&gt;</pre>
 <div class="block">Enum of all built in external block caches.
  This is used for config.</div>
@@ -228,7 +228,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>memcached</h4>
-<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#line.154">memcached</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#line.152">memcached</a></pre>
 </li>
 </ul>
 </li>
@@ -245,7 +245,7 @@ the order they are declared.</div>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>clazz</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#line.156">clazz</a></pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCache.html" title="interface in org.apache.hadoop.hbase.io.hfile">BlockCache</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#line.154">clazz</a></pre>
 </li>
 </ul>
 </li>
@@ -262,7 +262,7 @@ the order they are declared.</div>
 <ul class="blockList">
 <li class="blockList">
 <h4>values</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#line.153">values</a>()</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#line.151">values</a>()</pre>
 <div class="block">Returns an array containing the constants of this enum type, in
 the order they are declared.  This method may be used to iterate
 over the constants as follows:
@@ -282,7 +282,7 @@ for (CacheConfig.ExternalBlockCaches c : CacheConfig.ExternalBlockCaches.values(
 <ul class="blockListLast">
 <li class="blockList">
 <h4>valueOf</h4>
-<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#line.153">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html#line.151">valueOf</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
 <div class="block">Returns the enum constant of this type with the specified name.
 The string must match <i>exactly</i> an identifier used to declare an
 enum constant in this type.  (Extraneous whitespace characters are 


[15/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/TestCheckTestClasses.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/TestCheckTestClasses.html b/testdevapidocs/org/apache/hadoop/hbase/TestCheckTestClasses.html
index 74504a0..e98c1e9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/TestCheckTestClasses.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/TestCheckTestClasses.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html#line.35">TestCheckTestClasses</a>
+<pre>public class <a href="../../../../src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html#line.33">TestCheckTestClasses</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">Checks tests are categorized.</div>
 </li>
@@ -200,7 +200,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html#line.38">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html#line.36">CLASS_RULE</a></pre>
 </li>
 </ul>
 </li>
@@ -217,7 +217,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestCheckTestClasses</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html#line.35">TestCheckTestClasses</a>()</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html#line.33">TestCheckTestClasses</a>()</pre>
 </li>
 </ul>
 </li>
@@ -234,7 +234,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>checkClasses</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html#line.46">checkClasses</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html#line.44">checkClasses</a>()
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <div class="block">Throws an assertion if we find a test class without category (small/medium/large/integration).
  List all the test classes without category in the assertion message.</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
index a8a3ae3..06d362a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseClassTestRule.html
@@ -1119,155 +1119,155 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTable.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestMobCloneSnapshotFromClientAfterSplittingRegion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCIPutRpcTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIPutRpcTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTable.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRestoreSnapshotFromClientWithRegionReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCIPutRpcTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIPutRpcTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestLimitedScanWithFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestLimitedScanWithFilter.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRestoreSnapshotFromClientWithRegionReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClientWithRegionReplicas.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestDropTimeoutRequest.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestDropTimeoutRequest.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestLimitedScanWithFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestLimitedScanWithFilter.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFlushFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFlushFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestDropTimeoutRequest.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestDropTimeoutRequest.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncToolAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncToolAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestFlushFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFlushFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestSeparateClientZKCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSeparateClientZKCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncToolAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncToolAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRawAsyncTablePartialScan.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTablePartialScan.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestSeparateClientZKCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSeparateClientZKCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestResult.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestResult.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRawAsyncTablePartialScan.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTablePartialScan.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFromClientSideScanExcpetion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestResult.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestResult.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMobCloneSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestFromClientSideScanExcpetion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCISleep.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCISleep.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestMobCloneSnapshotFromClientNormal.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAppendFromClientSide.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAppendFromClientSide.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCISleep.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCISleep.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRawAsyncTableLimitedScanWithFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTableLimitedScanWithFilter.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAppendFromClientSide.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAppendFromClientSide.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestHbck.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestHbck.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRawAsyncTableLimitedScanWithFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTableLimitedScanWithFilter.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestServerLoadDurability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestServerLoadDurability.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestHbck.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestHbck.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAllowPartialScanResultCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAllowPartialScanResultCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestServerLoadDurability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestServerLoadDurability.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFromClientSide3.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide3.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAllowPartialScanResultCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAllowPartialScanResultCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestHTableMultiplexerFlushCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestFromClientSide3.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide3.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRawAsyncTableScan.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTableScan.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestHTableMultiplexerFlushCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestIncrementFromClientSideWithCoprocessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestIncrementFromClientSideWithCoprocessor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRawAsyncTableScan.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRawAsyncTableScan.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestFromClientSide.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestIncrementFromClientSideWithCoprocessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestIncrementFromClientSideWithCoprocessor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionImplementation.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestFromClientSide.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestScanWithoutFetchingData.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScanWithoutFetchingData.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestConnectionImplementation.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionImplementation.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableGetMultiThreaded.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreaded.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestScanWithoutFetchingData.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScanWithoutFetchingData.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestSnapshotCloneIndependence.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotCloneIndependence.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTableGetMultiThreaded.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreaded.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCIDeleteRpcTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIDeleteRpcTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestSnapshotCloneIndependence.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotCloneIndependence.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestZKAsyncRegistry.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCIDeleteRpcTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIDeleteRpcTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncProcedureAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcedureAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestZKAsyncRegistry.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestZKAsyncRegistry.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncClusterAdminApi2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncProcedureAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcedureAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCIGetOperationTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIGetOperationTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncClusterAdminApi2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAlwaysSetScannerId.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAlwaysSetScannerId.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCIGetOperationTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIGetOperationTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAlwaysSetScannerId.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAlwaysSetScannerId.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRestoreSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncSingleRequestRpcRetryingCaller.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncSingleRequestRpcRetryingCaller.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestRestoreSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAdmin2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncSingleRequestRpcRetryingCaller.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncSingleRequestRpcRetryingCaller.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCloneSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAdmin2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
@@ -1319,28 +1319,36 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableAdminApi2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableAdminApi2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCloneSnapshotFromClientCloneLinksAfterDelete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncQuotaAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncQuotaAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTableAdminApi2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableAdminApi2.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncMetaRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncMetaRegionLocator.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncQuotaAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncQuotaAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableNoncedRetry.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableNoncedRetry.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncMetaRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncMetaRegionLocator.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRegionLocationCaching.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRegionLocationCaching.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTableNoncedRetry.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableNoncedRetry.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestRegionLocationCaching.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRegionLocationCaching.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestConnectionUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionUtils.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestMobCloneSnapshotFromClientCloneLinksAfterDelete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncTableScanMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanMetrics.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
@@ -1351,44 +1359,52 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncDecommissionAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncDecommissionAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestMobCloneSnapshotFromClientError.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMetaCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncDecommissionAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncDecommissionAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestClientScannerRPCTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestMetaCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncReplicationAdminApiWithClusters.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApiWithClusters.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestClientScannerRPCTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCIPutOperationTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIPutOperationTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncReplicationAdminApiWithClusters.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApiWithClusters.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncClusterAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCIPutOperationTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIPutOperationTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestScannersFromClientSide.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScannersFromClientSide.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncClusterAdminApi.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestHTableMultiplexer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexer.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestScannersFromClientSide.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScannersFromClientSide.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMobSnapshotCloneIndependence.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobSnapshotCloneIndependence.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestHTableMultiplexer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexer.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestMobSnapshotCloneIndependence.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobSnapshotCloneIndependence.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncRegionLocatorTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionLocatorTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestCloneSnapshotFromClientNormal.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestUpdateConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestUpdateConfiguration.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
@@ -1403,51 +1419,51 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCloneSnapshotFromClientWithRegionReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestIllegalTableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestIllegalTableDescriptor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestIllegalTableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestIllegalTableDescriptor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestGetScanPartialResult.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestGetScanPartialResult.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestGetScanPartialResult.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestGetScanPartialResult.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestShortCircuitConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestShortCircuitConnection.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestShortCircuitConnection.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestShortCircuitConnection.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestResultFromCoprocessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestResultFromCoprocessor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestResultFromCoprocessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestResultFromCoprocessor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCIDeleteOperationTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIDeleteOperationTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCIDeleteOperationTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIDeleteOperationTimeout.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestSnapshotTemporaryDirectoryWithRegionReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotTemporaryDirectoryWithRegionReplicas.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestSnapshotTemporaryDirectoryWithRegionReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotTemporaryDirectoryWithRegionReplicas.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTableGetMultiThreadedWithEagerCompaction.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreadedWithEagerCompaction.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableGetMultiThreadedWithEagerCompaction.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreadedWithEagerCompaction.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestPutWithDelete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestPutWithDelete.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestPutWithDelete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestPutWithDelete.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestEnableTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestEnableTable.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestEnableTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestEnableTable.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestLeaseRenewal.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestLeaseRenewal.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestLeaseRenewal.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestLeaseRenewal.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestReplicaWithCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestReplicaWithCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicaWithCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCloneSnapshotFromClientAfterSplittingRegion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
@@ -1611,54 +1627,58 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncResultScannerCursor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncResultScannerCursor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestCloneSnapshotFromClientError.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestSnapshotMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotMetadata.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncResultScannerCursor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncResultScannerCursor.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAsyncTableScannerCloseWhileSuspending.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScannerCloseWhileSuspending.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestSnapshotMetadata.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotMetadata.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestMultiRespectsLimits.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMultiRespectsLimits.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAsyncTableScannerCloseWhileSuspending.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScannerCloseWhileSuspending.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestClientPushback.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientPushback.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestMultiRespectsLimits.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMultiRespectsLimits.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestShell.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestShell.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestClientPushback.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientPushback.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestShellNoCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestShellNoCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestShell.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestShell.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestAdminShell.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdminShell.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestShellNoCluster.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestShellNoCluster.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestQuotasShell.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestQuotasShell.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestAdminShell.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdminShell.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestReplicationShell.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicationShell.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestQuotasShell.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestQuotasShell.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestTableShell.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableShell.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestReplicationShell.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestReplicationShell.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestRpcControllerFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRpcControllerFactory.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colLast"><span class="typeNameLabel">TestTableShell.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableShell.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestRpcControllerFactory.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRpcControllerFactory.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncAggregationClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAggregationClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
 </tr>
 </tbody>


[08/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientAfterSplittingRegionTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientAfterSplittingRegionTestBase.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientAfterSplittingRegionTestBase.html
new file mode 100644
index 0000000..28303c7
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientAfterSplittingRegionTestBase.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientAfterSplittingRegionTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientAfterSplittingRegionTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientAfterSplittingRegionTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientAfterSplittingRegionTestBase" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.CloneSnapshotFromClientAfterSplittingRegionTestBase</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a> in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a> in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientAfterSplittingRegion</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientAfterSplittingRegionTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html
new file mode 100644
index 0000000..e61c358
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientCloneLinksAfterDeleteTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientCloneLinksAfterDeleteTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientCloneLinksAfterDeleteTestBase" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a> in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a> in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientCloneLinksAfterDelete</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientErrorTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientErrorTestBase.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientErrorTestBase.html
new file mode 100644
index 0000000..dc1e4e6
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientErrorTestBase.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientErrorTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientErrorTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientErrorTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientErrorTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientErrorTestBase" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.CloneSnapshotFromClientErrorTestBase</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientErrorTestBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientErrorTestBase</a> in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientErrorTestBase</a> in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientError</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientError</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientErrorTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientErrorTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientNormalTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientNormalTestBase.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientNormalTestBase.html
new file mode 100644
index 0000000..35619a3
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientNormalTestBase.html
@@ -0,0 +1,169 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientNormalTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientNormalTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientNormalTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientNormalTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientNormalTestBase" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.CloneSnapshotFromClientNormalTestBase</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientNormalTestBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientNormalTestBase</a> in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientNormalTestBase</a> in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientNormal</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientNormal</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientNormalTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientNormalTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientTestBase.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientTestBase.html
new file mode 100644
index 0000000..a28470d
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientTestBase.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.client">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a> in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a> in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientErrorTestBase</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientNormalTestBase</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientAfterSplittingRegion</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientCloneLinksAfterDelete</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientError</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientNormal</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientError</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientNormal</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClient.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClient.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClient.html
deleted file mode 100644
index 4d9720c..0000000
--- a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClient.html
+++ /dev/null
@@ -1,171 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClient (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClient (Apache HBase 3.0.0-SNAPSHOT Test API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClient.html" target="_top">Frames</a></li>
-<li><a href="TestCloneSnapshotFromClient.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<div class="header">
-<h2 title="Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClient" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestCloneSnapshotFromClient</h2>
-</div>
-<div class="classUseContainer">
-<ul class="blockList">
-<li class="blockList">
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
-<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Package</th>
-<th class="colLast" scope="col">Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><a href="#org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client</a></td>
-<td class="colLast">&nbsp;</td>
-</tr>
-</tbody>
-</table>
-</li>
-<li class="blockList">
-<ul class="blockList">
-<li class="blockList"><a name="org.apache.hadoop.hbase.client">
-<!--   -->
-</a>
-<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a> in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></h3>
-<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
-<caption><span>Subclasses of <a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a> in <a href="../../../../../../org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
-</tr>
-<tbody>
-<tr class="altColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientWithRegionReplicas</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient</a></span></code>
-<div class="block">Test clone snapshots from the client</div>
-</td>
-</tr>
-</tbody>
-</table>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClient.html" target="_top">Frames</a></li>
-<li><a href="TestCloneSnapshotFromClient.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientAfterSplittingRegion.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientAfterSplittingRegion.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientAfterSplittingRegion.html
new file mode 100644
index 0000000..98f114d
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientAfterSplittingRegion.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientAfterSplittingRegion (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientAfterSplittingRegion (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientAfterSplittingRegion" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientAfterSplittingRegion</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientAfterSplittingRegion</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientCloneLinksAfterDelete.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientCloneLinksAfterDelete.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientCloneLinksAfterDelete.html
new file mode 100644
index 0000000..e91aaf7
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientCloneLinksAfterDelete.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientCloneLinksAfterDelete (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientCloneLinksAfterDelete (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientCloneLinksAfterDelete" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientCloneLinksAfterDelete</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientCloneLinksAfterDelete</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientError.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientError.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientError.html
new file mode 100644
index 0000000..9b508c5
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientError.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientError (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientError (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientError.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientError.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientError" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientError</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientError</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientError.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientError.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientNormal.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientNormal.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientNormal.html
new file mode 100644
index 0000000..b514c76
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientNormal.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientNormal (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientNormal (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientNormal.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientNormal.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientNormal" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientNormal</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientNormal</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientNormal.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientNormal.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientWithRegionReplicas.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientWithRegionReplicas.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientWithRegionReplicas.html
deleted file mode 100644
index 3583adc..0000000
--- a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientWithRegionReplicas.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientWithRegionReplicas (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientWithRegionReplicas (Apache HBase 3.0.0-SNAPSHOT Test API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientWithRegionReplicas.html" target="_top">Frames</a></li>
-<li><a href="TestCloneSnapshotFromClientWithRegionReplicas.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<div class="header">
-<h2 title="Uses of Class org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientWithRegionReplicas" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientWithRegionReplicas</h2>
-</div>
-<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientWithRegionReplicas</div>
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClientWithRegionReplicas.html" target="_top">Frames</a></li>
-<li><a href="TestCloneSnapshotFromClientWithRegionReplicas.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html
deleted file mode 100644
index c6edbcc..0000000
--- a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient.DelayFlushCoprocessor (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient.DelayFlushCoprocessor (Apache HBase 3.0.0-SNAPSHOT Test API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" target="_top">Frames</a></li>
-<li><a href="TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<div class="header">
-<h2 title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient.DelayFlushCoprocessor" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</h2>
-</div>
-<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</div>
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" target="_top">Frames</a></li>
-<li><a href="TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>


[24/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
index f808b16..f359a0c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.html
@@ -1715,2239 +1715,2246 @@
 <span class="sourceLineNo">1707</span>        for (RegionPlan plan: plans) {<a name="line.1707"></a>
 <span class="sourceLineNo">1708</span>          LOG.info("balance " + plan);<a name="line.1708"></a>
 <span class="sourceLineNo">1709</span>          //TODO: bulk assign<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>          this.assignmentManager.moveAsync(plan);<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          rpCount++;<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span><a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>            cutoffTime);<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span><a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>            // a security net for now)<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>                + this.maxBlancingTime);<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>            break;<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>          }<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>        }<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>      }<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span><a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>      if (this.cpHost != null) {<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>        try {<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>        } catch (IOException ioe) {<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>          // balancing already succeeded so don't change the result<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>        }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      }<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>    }<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>    // Return true indicating a success.<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>    return true;<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>  }<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span><a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>  @Override<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>  @VisibleForTesting<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>    return this.normalizer;<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>  }<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span><a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>  /**<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>   *<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>   *    is globally disabled)<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>   */<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>  public boolean normalizeRegions() throws IOException {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>    if (!isInitialized()) {<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>      return false;<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>    }<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span><a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      return false;<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>    }<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span><a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>    synchronized (this.normalizer) {<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      // Don't run the normalizer concurrently<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span><a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>      Collections.shuffle(allEnabledTables);<a name="line.1775"></a>
+<span class="sourceLineNo">1710</span>          try {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>            this.assignmentManager.moveAsync(plan);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>          } catch (HBaseIOException hioe) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>            //should ignore failed plans here, avoiding the whole balance plans be aborted<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>            //later calls of balance() can fetch up the failed and skipped plans<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>            LOG.warn("Failed balance plan: {}, just skip it", plan, hioe);<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>          }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>          //rpCount records balance plans processed, does not care if a plan succeeds<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>          rpCount++;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span><a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>            cutoffTime);<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span><a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>            // a security net for now)<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                + this.maxBlancingTime);<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>            break;<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>      }<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span><a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>      if (this.cpHost != null) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>        try {<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>        } catch (IOException ioe) {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>          // balancing already succeeded so don't change the result<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>        }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>      }<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>    // Return true indicating a success.<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>    return true;<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>  }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span><a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>  @Override<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>  @VisibleForTesting<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>    return this.normalizer;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>  }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span><a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>  /**<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>   *<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>   *    is globally disabled)<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>   */<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>  public boolean normalizeRegions() throws IOException {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>    if (!isInitialized()) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>      return false;<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>    }<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span><a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>      return false;<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>    }<a name="line.1775"></a>
 <span class="sourceLineNo">1776</span><a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>      for (TableName table : allEnabledTables) {<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>        if (isInMaintenanceMode()) {<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          return false;<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span><a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        TableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>          LOG.trace("Skipping normalization for {}, as it's either system"<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>              + " table or doesn't have auto normalization turned on", table);<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>          continue;<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>        }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>        if (plans != null) {<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>          for (NormalizationPlan plan : plans) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>              splitPlanCount++;<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>              mergePlanCount++;<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>        }<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>      }<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>    }<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span>    // Return true indicating a success.<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>    return true;<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>  }<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>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>   */<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>  @Override<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>  public String getClientIdAuditPrefix() {<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>    return "Client=" + RpcServer.getRequestUserName().orElse(null)<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        + "/" + RpcServer.getRemoteAddress().orElse(null);<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>  }<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span><a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>  /**<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>   * Switch for the background CatalogJanitor thread.<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>   * if disabled.<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>   */<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>  }<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span><a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>  @Override<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>  public long mergeRegions(<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>      final RegionInfo[] regionsToMerge,<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>      final boolean forcible,<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>      final long nonceGroup,<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>      final long nonce) throws IOException {<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>    checkInitialized();<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>    assert(regionsToMerge.length == 2);<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span><a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>    }<a name="line.1840"></a>
+<span class="sourceLineNo">1777</span>    synchronized (this.normalizer) {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      // Don't run the normalizer concurrently<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span><a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>      Collections.shuffle(allEnabledTables);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span><a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>      for (TableName table : allEnabledTables) {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>        if (isInMaintenanceMode()) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>          return false;<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>        }<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span><a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        TableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          LOG.trace("Skipping normalization for {}, as it's either system"<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>              + " table or doesn't have auto normalization turned on", table);<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>          continue;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>        }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>        if (plans != null) {<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>          for (NormalizationPlan plan : plans) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>              splitPlanCount++;<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>              mergePlanCount++;<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>            }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>          }<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>    }<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    // Return true indicating a success.<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    return true;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>  }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span><a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>  /**<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>   */<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>  @Override<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  public String getClientIdAuditPrefix() {<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>    return "Client=" + RpcServer.getRequestUserName().orElse(null)<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>        + "/" + RpcServer.getRemoteAddress().orElse(null);<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>  /**<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>   * Switch for the background CatalogJanitor thread.<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>   * if disabled.<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>   */<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>  }<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span><a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>  @Override<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  public long mergeRegions(<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>      final RegionInfo[] regionsToMerge,<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      final boolean forcible,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>      final long nonceGroup,<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>      final long nonce) throws IOException {<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>    checkInitialized();<a name="line.1840"></a>
 <span class="sourceLineNo">1841</span><a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>      throw new IOException (<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>    }<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span><a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>    if (RegionInfo.COMPARATOR.compare(regionsToMerge[0], regionsToMerge[1]) == 0) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>      throw new MergeRegionException(<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>    }<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span><a name="line.1852"></a>
-<span class="sourceLineNo">1853</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>      @Override<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>      protected void run() throws IOException {<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span><a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span><a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span>          regionsToMerge, forcible));<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span><a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>      }<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span><a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>      @Override<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>      protected String getDescription() {<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>        return "MergeTableProcedure";<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>      }<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>    });<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>  }<a name="line.1873"></a>
+<span class="sourceLineNo">1842</span>    assert(regionsToMerge.length == 2);<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span><a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>    }<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span><a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>      throw new IOException (<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>    }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>    if (RegionInfo.COMPARATOR.compare(regionsToMerge[0], regionsToMerge[1]) == 0) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>      throw new MergeRegionException(<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>    }<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span><a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>      @Override<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>      protected void run() throws IOException {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span><a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span><a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>          regionsToMerge, forcible));<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span><a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>      }<a name="line.1873"></a>
 <span class="sourceLineNo">1874</span><a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>  @Override<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>  public long splitRegion(final RegionInfo regionInfo, final byte[] splitRow,<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>      final long nonceGroup, final long nonce)<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>  throws IOException {<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>    checkInitialized();<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>      @Override<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>      protected void run() throws IOException {<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>        LOG.info(getClientIdAuditPrefix() + " split " + regionInfo.getRegionNameAsString());<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span><a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>        // Execute the operation asynchronously<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>        submitProcedure(getAssignmentManager().createSplitProcedure(regionInfo, splitRow));<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>      }<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span><a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>      @Override<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>      protected String getDescription() {<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>        return "SplitTableProcedure";<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>      }<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>    });<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>  }<a name="line.1896"></a>
+<span class="sourceLineNo">1875</span>      @Override<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>      protected String getDescription() {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>        return "MergeTableProcedure";<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>      }<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>    });<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>  }<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span><a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>  @Override<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>  public long splitRegion(final RegionInfo regionInfo, final byte[] splitRow,<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>      final long nonceGroup, final long nonce)<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>  throws IOException {<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>    checkInitialized();<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>      @Override<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>      protected void run() throws IOException {<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        LOG.info(getClientIdAuditPrefix() + " split " + regionInfo.getRegionNameAsString());<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span><a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>        // Execute the operation asynchronously<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>        submitProcedure(getAssignmentManager().createSplitProcedure(regionInfo, splitRow));<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>      }<a name="line.1896"></a>
 <span class="sourceLineNo">1897</span><a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>  // Public so can be accessed by tests. Blocks until move is done.<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>  // Replace with an async implementation from which you can get<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>  // a success/failure result.<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>  @VisibleForTesting<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>  public void move(final byte[] encodedRegionName, byte[] destServerName) throws HBaseIOException {<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span><a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>    RegionInfo hri;<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>    if (regionState != null) {<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>      hri = regionState.getRegion();<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>    } else {<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>    }<a name="line.1911"></a>
+<span class="sourceLineNo">1898</span>      @Override<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>      protected String getDescription() {<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>        return "SplitTableProcedure";<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>      }<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>    });<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>  }<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span><a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>  // Public so can be accessed by tests. Blocks until move is done.<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>  // Replace with an async implementation from which you can get<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>  // a success/failure result.<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>  @VisibleForTesting<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>  public void move(final byte[] encodedRegionName, byte[] destServerName) throws HBaseIOException {<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1911"></a>
 <span class="sourceLineNo">1912</span><a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>    ServerName dest;<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>    List&lt;ServerName&gt; exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>        : new ArrayList&lt;&gt;(1);<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>    if (destServerName != null &amp;&amp; exclude.contains(ServerName.valueOf(Bytes.toString(destServerName)))) {<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>      LOG.info(<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>          Bytes.toString(encodedRegionName) + " can not move to " + Bytes.toString(destServerName)<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>              + " because the server is in exclude list");<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      destServerName = null;<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>    }<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>        "choosing a server at random");<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>      exclude.add(regionState.getServerName());<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(exclude);<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>      if (dest == null) {<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>        return;<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>      }<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>    } else {<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1934"></a>
+<span class="sourceLineNo">1913</span>    RegionInfo hri;<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>    if (regionState != null) {<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>      hri = regionState.getRegion();<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>    } else {<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>    }<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span><a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>    ServerName dest;<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>    List&lt;ServerName&gt; exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>        : new ArrayList&lt;&gt;(1);<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>    if (destServerName != null &amp;&amp; exclude.contains(ServerName.valueOf(Bytes.toString(destServerName)))) {<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>      LOG.info(<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>          Bytes.toString(encodedRegionName) + " can not move to " + Bytes.toString(destServerName)<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>              + " because the server is in exclude list");<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>      destServerName = null;<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>    }<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>        "choosing a server at random");<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>      exclude.add(regionState.getServerName());<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(exclude);<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1934"></a>
 <span class="sourceLineNo">1935</span>      if (dest == null) {<a name="line.1935"></a>
 <span class="sourceLineNo">1936</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1936"></a>
 <span class="sourceLineNo">1937</span>        return;<a name="line.1937"></a>
 <span class="sourceLineNo">1938</span>      }<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>      // TODO: What is this? I don't get it.<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>        // regions on master.<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>          + " because it should not be on master");<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>        return;<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>      }<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>    }<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span><a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>      return;<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>    }<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span><a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>    // Now we can do the move<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>    assert rp.getDestination() != null: rp.toString() + " " + dest;<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span><a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>    try {<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>      checkInitialized();<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      if (this.cpHost != null) {<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>        this.cpHost.preMove(hri, rp.getSource(), rp.getDestination());<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      }<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>      // Warmup the region on the destination before initiating the move. this call<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>      // closed<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span><a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>      Future&lt;byte []&gt; future = this.assignmentManager.moveAsync(rp);<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>      try {<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>        // Is this going to work? Will we throw exception on error?<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>        // TODO: CompletableFuture rather than this stunted Future.<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>        future.get();<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>      } catch (InterruptedException | ExecutionException e) {<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>        throw new HBaseIOException(e);<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>      }<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>      if (this.cpHost != null) {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>      }<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>    } catch (IOException ioe) {<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      if (ioe instanceof HBaseIOException) {<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>        throw (HBaseIOException)ioe;<a name="line.1985"></a>
+<span class="sourceLineNo">1939</span>    } else {<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>      if (dest == null) {<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>        return;<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>      }<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>      // TODO: What is this? I don't get it.<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>        // regions on master.<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>          + " because it should not be on master");<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>        return;<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>      }<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>    }<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span><a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>      return;<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>    }<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span><a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>    // Now we can do the move<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>    assert rp.getDestination() != null: rp.toString() + " " + dest;<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span><a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>    try {<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>      checkInitialized();<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>      if (this.cpHost != null) {<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>        this.cpHost.preMove(hri, rp.getSource(), rp.getDestination());<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>      }<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>      // Warmup the region on the destination before initiating the move. this call<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>      // closed<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span><a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>      Future&lt;byte []&gt; future = this.assignmentManager.moveAsync(rp);<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>      try {<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>        // Is this going to work? Will we throw exception on error?<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>        // TODO: CompletableFuture rather than this stunted Future.<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>        future.get();<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>      } catch (InterruptedException | ExecutionException e) {<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>        throw new HBaseIOException(e);<a name="line.1985"></a>
 <span class="sourceLineNo">1986</span>      }<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span>      throw new HBaseIOException(ioe);<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span>    }<a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>  }<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span><a name="line.1990"></a>
-<span class="sourceLineNo">1991</span>  @Override<a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>  public long createTable(<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>      final TableDescriptor tableDescriptor,<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>      final byte [][] splitKeys,<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>      final long nonceGroup,<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>      final long nonce) throws IOException {<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>    checkInitialized();<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span><a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>    String namespace = tableDescriptor.getTableName().getNamespaceAsString();<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span><a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, splitKeys);<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    sanityCheckTableDescriptor(tableDescriptor);<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span><a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>      @Override<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>      protected void run() throws IOException {<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>        getMaster().getMasterCoprocessorHost().preCreateTable(tableDescriptor, newRegions);<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span><a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>        LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span><a name="line.2012"></a>
-<span class="sourceLineNo">2013</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>        //<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>        submitProcedure(new CreateTableProcedure(<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>            procedureExecutor.getEnvironment(), tableDescriptor, newRegions, latch));<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>        latch.await();<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span><a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>        getMaster().getMasterCoprocessorHost().postCreateTable(tableDescriptor, newRegions);<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span>      }<a name="line.2024"></a>
-<span class="sourceLineNo">2025</span><a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>      @Override<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>      protected String getDescription() {<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>        return "CreateTableProcedure";<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span>      }<a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>    });<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>  }<a name="line.2031"></a>
+<span class="sourceLineNo">1987</span>      if (this.cpHost != null) {<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>      }<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>    } catch (IOException ioe) {<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>      if (ioe instanceof HBaseIOException) {<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>        throw (HBaseIOException)ioe;<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>      }<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>      throw new HBaseIOException(ioe);<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>    }<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>  }<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span><a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>  @Override<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>  public long createTable(<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>      final TableDescriptor tableDescriptor,<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>      final byte [][] splitKeys,<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>      final long nonceGroup,<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>      final long nonce) throws IOException {<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>    checkInitialized();<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span><a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>    String namespace = tableDescriptor.getTableName().getNamespaceAsString();<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span><a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, splitKeys);<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>    sanityCheckTableDescriptor(tableDescriptor);<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span><a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>      @Override<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>      protected void run() throws IOException {<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>        getMaster().getMasterCoprocessorHost().preCreateTable(tableDescriptor, newRegions);<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span><a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>        LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span><a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>        //<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>        submitProcedure(new CreateTableProcedure(<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>            procedureExecutor.getEnvironment(), tableDescriptor, newRegions, latch));<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>        latch.await();<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span><a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>        getMaster().getMasterCoprocessorHost().postCreateTable(tableDescriptor, newRegions);<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>      }<a name="line.2031"></a>
 <span class="sourceLineNo">2032</span><a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>  @Override<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>  public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException {<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>    if (isStopped()) {<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>      throw new MasterNotRunningException();<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>    }<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span><a name="line.2038"></a>
-<span class="sourceLineNo">2039</span>    TableName tableName = tableDescriptor.getTableName();<a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>    if (!(tableName.isSystemTable())) {<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>      throw new IllegalArgumentException(<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span>        "Only system table creation can use this createSystemTable API");<a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>    }<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span><a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, null);<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span><a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>    LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span><a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>    // to use nonce to detect duplicated RPC call.<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), tableDescriptor, newRegions));<a name="line.2052"></a>
+<span class="sourceLineNo">2033</span>      @Override<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>      protected String getDescription() {<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>        return "CreateTableProcedure";<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>      }<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>    });<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>  }<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span><a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>  @Override<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>  public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException {<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>    if (isStopped()) {<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>      throw new MasterNotRunningException();<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>    }<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span><a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>    TableName tableName = tableDescriptor.getTableName();<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>    if (!(tableName.isSystemTable())) {<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>      throw new IllegalArgumentException(<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>        "Only system table creation can use this createSystemTable API");<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>    }<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span><a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, null);<a name="line.2052"></a>
 <span class="sourceLineNo">2053</span><a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>    return procId;<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span>  }<a name="line.2055"></a>
-<span class="sourceLineNo">2056</span><a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>  /**<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>   * @throws IOException<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>   */<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>  private void sanityCheckTableDescriptor(final TableDescriptor htd) throws IOException {<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>    boolean logWarn = false;<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>      logWarn = true;<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>    }<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span>    String tableVal = htd.getValue(CONF_KEY);<a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>      logWarn = true;<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>    }<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span><a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>    // check max file size<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>    if (maxFileSize &lt; 0) {<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.2077"></a>
+<span class="sourceLineNo">2054</span>    LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span><a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>    // to use nonce to detect duplicated RPC call.<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), tableDescriptor, newRegions));<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span><a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>    return procId;<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>  }<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span><a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>  /**<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>   * @throws IOException<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>   */<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>  private void sanityCheckTableDescriptor(final TableDescriptor htd) throws IOException {<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>    boolean logWarn = false;<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>      logWarn = true;<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>    }<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>    String tableVal = htd.getValue(CONF_KEY);<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>      logWarn = true;<a name="line.2077"></a>
 <span class="sourceLineNo">2078</span>    }<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.2082"></a>
-<span class="sourceLineNo">2083</span>          + "number of regions.";<a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2084"></a>
+<span class="sourceLineNo">2079</span><a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>    // check max file size<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>    if (maxFileSize &lt; 0) {<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.2084"></a>
 <span class="sourceLineNo">2085</span>    }<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span><a name="line.2086"></a>
-<span class="sourceLineNo">2087</span>    // check flush size<a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>    if (flushSize &lt; 0) {<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.2091"></a>
+<span class="sourceLineNo">2086</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>          + "number of regions.";<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2091"></a>
 <span class="sourceLineNo">2092</span>    }<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>          + " very frequent flushing.";<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span>    }<a name="line.2098"></a>
-<span class="sourceLineNo">2099</span><a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>    try {<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>      checkClassLoading(conf, htd);<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>    } catch (Exception ex) {<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.2104"></a>
+<span class="sourceLineNo">2093</span><a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>    // check flush size<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>    if (flushSize &lt; 0) {<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>    }<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>          + " very frequent flushing.";<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2104"></a>
 <span class="sourceLineNo">2105</span>    }<a name="line.2105"></a>
 <span class="sourceLineNo">2106</span><a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>    // check compression can be loaded<a name="line.2107"></a>
+<span class="sourceLineNo">2107</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.2107"></a>
 <span class="sourceLineNo">2108</span>    try {<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>      checkCompression(htd);<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>    } catch (IOException e) {<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2111"></a>
+<span class="sourceLineNo">2109</span>      checkClassLoading(conf, htd);<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>    } catch (Exception ex) {<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.2111"></a>
 <span class="sourceLineNo">2112</span>    }<a name="line.2112"></a>
 <span class="sourceLineNo">2113</span><a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>    // check encryption can be loaded<a name="line.2114"></a>
+<span class="sourceLineNo">2114</span>    // check compression can be loaded<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>    try {<a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>      checkEncryption(conf, htd);<a name="line.2116"></a>
+<span class="sourceLineNo">2116</span>      checkCompression(htd);<a name="line.2116"></a>
 <span class="sourceLineNo">2117</span>    } catch (IOException e) {<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>    }<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>    // Verify compaction policy<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>    try{<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>      checkCompactionPolicy(conf, htd);<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>    } catch(IOException e){<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>    }<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>    // check that we have at least 1 CF<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>      String message = "Table should have at least one column family.";<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>    }<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span><a name="line.2131"></a>
-<span class="sourceLineNo">2132</span>    for (ColumnFamilyDescriptor hcd : htd.getColumnFamilies()) {<a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>      }<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span><a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>      // check blockSize<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>      if (hcd.getBlocksize() &lt; 1024 || hcd.getBlocksize() &gt; 16 * 1024 * 1024) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>        String message = "Block size for column family " + hcd.getNameAsString()<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>            + "  must be between 1K and 16MB.";<a name="line.2141"></a>
+<span class="sourceLineNo">2120</span><a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>    // check encryption can be loaded<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>    try {<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>      checkEncryption(conf, htd);<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>    } catch (IOException e) {<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>    }<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>    // Verify compaction policy<a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>    try{<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>      checkCompactionPolicy(conf, htd);<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>    } catch(IOException e){<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>    }<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>    // check that we have at least 1 CF<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>      String message = "Table should have at least one column family.";<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>    }<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span><a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>    for (ColumnFamilyDescriptor hcd : htd.getColumnFamilies()) {<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.2141"></a>
 <span class="sourceLineNo">2142</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2142"></a>
 <span class="sourceLineNo">2143</span>      }<a name="line.2143"></a>
 <span class="sourceLineNo">2144</span><a name="line.2144"></a>
-<span class="sourceLineNo">2145</span>      // check versions<a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>      if (hcd.getMinVersions() &lt; 0) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>        String message = "Min versions for column family " + hcd.getNameAsString()<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>          + "  must be positive.";<a name="line.2148"></a>
+<span class="sourceLineNo">2145</span>      // check blockSize<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>      if (hcd.getBlocksize() &lt; 1024 || hcd.getBlocksize() &gt; 16 * 1024 * 1024) {<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>        String message = "Block size for column family " + hcd.getNameAsString()<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>            + "  must be between 1K and 16MB.";<a name="line.2148"></a>
 <span class="sourceLineNo">2149</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2149"></a>
 <span class="sourceLineNo">2150</span>      }<a name="line.2150"></a>
-<span class="sourceLineNo">2151</span>      // max versions already being checked<a name="line.2151"></a>
-<span class="sourceLineNo">2152</span><a name="line.2152"></a>
-<span class="sourceLineNo">2153</span>      // HBASE-13776 Setting illegal versions for ColumnFamilyDescriptor<a name="line.2153"></a>
-<span class="sourceLineNo">2154</span>      //  does not throw IllegalArgumentException<a name="line.2154"></a>
-<span class="sourceLineNo">2155</span>      // check minVersions &lt;= maxVerions<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span>      if (hcd.getMinVersions() &gt; hcd.getMaxVersions()) {<a name="line.2156"></a>
-<span class="sourceLineNo">2157</span>        String message = "Min versions for column family " + hcd.getNameAsString()<a name="line.2157"></a>
-<span class="sourceLineNo">2158</span>            + " must be less than the Max versions.";<a name="line.2158"></a>
-<span class="sourceLineNo">2159</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2159"></a>
-<span class=

<TRUNCATED>

[12/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html
deleted file mode 100644
index 8d374a5..0000000
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html
+++ /dev/null
@@ -1,801 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>TestCloneSnapshotFromClient (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TestCloneSnapshotFromClient (Apache HBase 3.0.0-SNAPSHOT Test API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9,"i5":10,"i6":10,"i7":9,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
-var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
-var altColor = "altColor";
-var rowColor = "rowColor";
-var tableTab = "tableTab";
-var activeTableTab = "activeTableTab";
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestCloneSnapshotFromClient.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" target="_top">Frames</a></li>
-<li><a href="TestCloneSnapshotFromClient.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<div class="subTitle">org.apache.hadoop.hbase.client</div>
-<h2 title="Class TestCloneSnapshotFromClient" class="title">Class TestCloneSnapshotFromClient</h2>
-</div>
-<div class="contentContainer">
-<ul class="inheritance">
-<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
-<li>
-<ul class="inheritance">
-<li>org.apache.hadoop.hbase.client.TestCloneSnapshotFromClient</li>
-</ul>
-</li>
-</ul>
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<dl>
-<dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientWithRegionReplicas</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient</a></dd>
-</dl>
-<hr>
-<br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.55">TestCloneSnapshotFromClient</a>
-extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
-<div class="block">Test clone snapshots from the client</div>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- =========== FIELD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.summary">
-<!--   -->
-</a>
-<h3>Field Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
-<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>protected org.apache.hadoop.hbase.client.Admin</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#admin">admin</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>protected byte[]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#emptySnapshot">emptySnapshot</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>protected byte[]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#FAMILY">FAMILY</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#LOG">LOG</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>org.junit.rules.TestName</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#name">name</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>protected int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshot0Rows">snapshot0Rows</a></span></code>&nbsp;</td>
-</tr>
-<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/TestCloneSnapshotFromClient.html#snapshot1Rows">snapshot1Rows</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>protected byte[]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshotName0">snapshotName0</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>protected byte[]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshotName1">snapshotName1</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>protected byte[]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshotName2">snapshotName2</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>protected org.apache.hadoop.hbase.TableName</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#tableName">tableName</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
-<!--   -->
-</a>
-<h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
-<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Constructor and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#TestCloneSnapshotFromClient--">TestCloneSnapshotFromClient</a></span>()</code>&nbsp;</td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- ========== METHOD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.summary">
-<!--   -->
-</a>
-<h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tr id="i0" class="altColor">
-<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#createTableAndSnapshots--">createTableAndSnapshots</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>protected int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#getNumReplicas--">getNumReplicas</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#setup--">setup</a></span>()</code>
-<div class="block">Initialize the tests with a table filled with some data
- and two snapshots (snapshotName0, snapshotName1) of different states.</div>
-</td>
-</tr>
-<tr id="i3" class="rowColor">
-<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i4" class="altColor">
-<td class="colFirst"><code>protected static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#setupConfiguration--">setupConfiguration</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i5" class="rowColor">
-<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#splitRegion-org.apache.hadoop.hbase.client.RegionInfo-">splitRegion</a></span>(org.apache.hadoop.hbase.client.RegionInfo&nbsp;regionInfo)</code>&nbsp;</td>
-</tr>
-<tr id="i6" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#tearDown--">tearDown</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i7" class="rowColor">
-<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#tearDownAfterClass--">tearDownAfterClass</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i8" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneLinksAfterDelete--">testCloneLinksAfterDelete</a></span>()</code>
-<div class="block">Verify that tables created from the snapshot are still alive after source table deletion.</div>
-</td>
-</tr>
-<tr id="i9" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneNonExistentSnapshot--">testCloneNonExistentSnapshot</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i10" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneOnMissingNamespace--">testCloneOnMissingNamespace</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i11" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneSnapshot--">testCloneSnapshot</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i12" class="altColor">
-<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneSnapshot-org.apache.hadoop.hbase.TableName-byte:A-int-">testCloneSnapshot</a></span>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
-                 byte[]&nbsp;snapshotName,
-                 int&nbsp;snapshotRows)</code>&nbsp;</td>
-</tr>
-<tr id="i13" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneSnapshotAfterSplittingRegion--">testCloneSnapshotAfterSplittingRegion</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i14" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneSnapshotCrossNamespace--">testCloneSnapshotCrossNamespace</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i15" class="rowColor">
-<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#verifyReplicasCameOnline-org.apache.hadoop.hbase.TableName-">verifyReplicasCameOnline</a></span>(org.apache.hadoop.hbase.TableName&nbsp;tableName)</code>&nbsp;</td>
-</tr>
-<tr id="i16" class="altColor">
-<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
-              org.apache.hadoop.hbase.TableName&nbsp;tableName,
-              long&nbsp;expectedRows)</code>&nbsp;</td>
-</tr>
-<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/client/TestCloneSnapshotFromClient.html#waitCleanerRun--">waitCleanerRun</a></span>()</code>&nbsp;</td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ============ FIELD DETAIL =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.detail">
-<!--   -->
-</a>
-<h3>Field Detail</h3>
-<a name="CLASS_RULE">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.58">CLASS_RULE</a></pre>
-</li>
-</ul>
-<a name="LOG">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.61">LOG</a></pre>
-</li>
-</ul>
-<a name="TEST_UTIL">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>TEST_UTIL</h4>
-<pre>protected static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.63">TEST_UTIL</a></pre>
-</li>
-</ul>
-<a name="FAMILY">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>FAMILY</h4>
-<pre>protected final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.65">FAMILY</a></pre>
-</li>
-</ul>
-<a name="emptySnapshot">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>emptySnapshot</h4>
-<pre>protected&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.67">emptySnapshot</a></pre>
-</li>
-</ul>
-<a name="snapshotName0">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>snapshotName0</h4>
-<pre>protected&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.68">snapshotName0</a></pre>
-</li>
-</ul>
-<a name="snapshotName1">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>snapshotName1</h4>
-<pre>protected&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.69">snapshotName1</a></pre>
-</li>
-</ul>
-<a name="snapshotName2">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>snapshotName2</h4>
-<pre>protected&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.70">snapshotName2</a></pre>
-</li>
-</ul>
-<a name="tableName">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>tableName</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.71">tableName</a></pre>
-</li>
-</ul>
-<a name="snapshot0Rows">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>snapshot0Rows</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.72">snapshot0Rows</a></pre>
-</li>
-</ul>
-<a name="snapshot1Rows">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>snapshot1Rows</h4>
-<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.73">snapshot1Rows</a></pre>
-</li>
-</ul>
-<a name="admin">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>admin</h4>
-<pre>protected&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.74">admin</a></pre>
-</li>
-</ul>
-<a name="name">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>name</h4>
-<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.77">name</a></pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
-<!--   -->
-</a>
-<h3>Constructor Detail</h3>
-<a name="TestCloneSnapshotFromClient--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>TestCloneSnapshotFromClient</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.55">TestCloneSnapshotFromClient</a>()</pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.detail">
-<!--   -->
-</a>
-<h3>Method Detail</h3>
-<a name="setupConfiguration--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setupConfiguration</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.79">setupConfiguration</a>()</pre>
-</li>
-</ul>
-<a name="setUpBeforeClass--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setUpBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.90">setUpBeforeClass</a>()
-                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="tearDownAfterClass--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>tearDownAfterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.96">tearDownAfterClass</a>()
-                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="setup--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setup</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.106">setup</a>()
-           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
-<div class="block">Initialize the tests with a table filled with some data
- and two snapshots (snapshotName0, snapshotName1) of different states.
- The tableName, snapshotNames and the number of rows in the snapshot are initialized.</div>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="createTableAndSnapshots--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>createTableAndSnapshots</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.119">createTableAndSnapshots</a>()
-                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="getNumReplicas--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getNumReplicas</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.153">getNumReplicas</a>()</pre>
-</li>
-</ul>
-<a name="tearDown--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>tearDown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.158">tearDown</a>()
-              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="testCloneNonExistentSnapshot--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>testCloneNonExistentSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.167">testCloneNonExistentSnapshot</a>()
-                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="testCloneOnMissingNamespace--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>testCloneOnMissingNamespace</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.175">testCloneOnMissingNamespace</a>()
-                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="testCloneSnapshot--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>testCloneSnapshot</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.181">testCloneSnapshot</a>()
-                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="testCloneSnapshot-org.apache.hadoop.hbase.TableName-byte:A-int-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>testCloneSnapshot</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.189">testCloneSnapshot</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName,
-                               byte[]&nbsp;snapshotName,
-                               int&nbsp;snapshotRows)
-                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="verifyReplicasCameOnline-org.apache.hadoop.hbase.TableName-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>verifyReplicasCameOnline</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.199">verifyReplicasCameOnline</a>(org.apache.hadoop.hbase.TableName&nbsp;tableName)
-                                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="testCloneSnapshotCrossNamespace--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>testCloneSnapshotCrossNamespace</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.204">testCloneSnapshotCrossNamespace</a>()
-                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="testCloneLinksAfterDelete--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>testCloneLinksAfterDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.218">testCloneLinksAfterDelete</a>()
-                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
-<div class="block">Verify that tables created from the snapshot are still alive after source table deletion.</div>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="testCloneSnapshotAfterSplittingRegion--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>testCloneSnapshotAfterSplittingRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.270">testCloneSnapshotAfterSplittingRegion</a>()
-                                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="waitCleanerRun--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>waitCleanerRun</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.316">waitCleanerRun</a>()
-                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>verifyRowCount</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.320">verifyRowCount</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
-                              org.apache.hadoop.hbase.TableName&nbsp;tableName,
-                              long&nbsp;expectedRows)
-                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="splitRegion-org.apache.hadoop.hbase.client.RegionInfo-">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>splitRegion</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.325">splitRegion</a>(org.apache.hadoop.hbase.client.RegionInfo&nbsp;regionInfo)
-                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-</dl>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestCloneSnapshotFromClient.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" target="_top">Frames</a></li>
-<li><a href="TestCloneSnapshotFromClient.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html
new file mode 100644
index 0000000..bf3af3b
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestCloneSnapshotFromClientAfterSplittingRegion (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestCloneSnapshotFromClientAfterSplittingRegion (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestCloneSnapshotFromClientAfterSplittingRegion.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class TestCloneSnapshotFromClientAfterSplittingRegion" class="title">Class TestCloneSnapshotFromClientAfterSplittingRegion</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientAfterSplittingRegionTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientAfterSplittingRegion</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#line.34">TestCloneSnapshotFromClientAfterSplittingRegion</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#numReplicas">numReplicas</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#TestCloneSnapshotFromClientAfterSplittingRegion--">TestCloneSnapshotFromClientAfterSplittingRegion</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#getNumReplicas--">getNumReplicas</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#params--">params</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientAfterSplittingRegionTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#testCloneSnapshotAfterSplittingRegion--">testCloneSnapshotAfterSplittingRegion</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setupConfiguration--">setupConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneS
 napshotFromClientTestBase.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="CLASS_RULE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#line.38">CLASS_RULE</a></pre>
+</li>
+</ul>
+<a name="numReplicas">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>numReplicas</h4>
+<pre>public&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#line.42">numReplicas</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestCloneSnapshotFromClientAfterSplittingRegion--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestCloneSnapshotFromClientAfterSplittingRegion</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#line.34">TestCloneSnapshotFromClientAfterSplittingRegion</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="params--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>params</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#line.45">params</a>()</pre>
+</li>
+</ul>
+<a name="getNumReplicas--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getNumReplicas</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#line.50">getNumReplicas</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestCloneSnapshotFromClientAfterSplittingRegion.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html
new file mode 100644
index 0000000..2539659
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestCloneSnapshotFromClientCloneLinksAfterDelete (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestCloneSnapshotFromClientCloneLinksAfterDelete (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestCloneSnapshotFromClientCloneLinksAfterDelete.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class TestCloneSnapshotFromClientCloneLinksAfterDelete" class="title">Class TestCloneSnapshotFromClientCloneLinksAfterDelete</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientCloneLinksAfterDelete</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#line.34">TestCloneSnapshotFromClientCloneLinksAfterDelete</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#numReplicas">numReplicas</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#TestCloneSnapshotFromClientCloneLinksAfterDelete--">TestCloneSnapshotFromClientCloneLinksAfterDelete</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#getNumReplicas--">getNumReplicas</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#params--">params</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientCloneLinksAfterDeleteTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html#testCloneLinksAfterDelete--">testCloneLinksAfterDelete</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setupConfiguration--">setupConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneS
 napshotFromClientTestBase.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="CLASS_RULE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#line.38">CLASS_RULE</a></pre>
+</li>
+</ul>
+<a name="numReplicas">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>numReplicas</h4>
+<pre>public&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#line.42">numReplicas</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestCloneSnapshotFromClientCloneLinksAfterDelete--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestCloneSnapshotFromClientCloneLinksAfterDelete</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#line.34">TestCloneSnapshotFromClientCloneLinksAfterDelete</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="params--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>params</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#line.45">params</a>()</pre>
+</li>
+</ul>
+<a name="getNumReplicas--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getNumReplicas</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#line.50">getNumReplicas</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestCloneSnapshotFromClientCloneLinksAfterDelete.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>


[19/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 cb9d178..90087b4 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
@@ -598,3212 +598,3215 @@
 <span class="sourceLineNo">590</span>      Superusers.initialize(conf);<a name="line.590"></a>
 <span class="sourceLineNo">591</span><a name="line.591"></a>
 <span class="sourceLineNo">592</span>      regionServerAccounting = new RegionServerAccounting(conf);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      cacheConfig = new CacheConfig(conf);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      mobCacheConfig = new MobCacheConfig(conf);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
-<span class="sourceLineNo">597</span>        public void uncaughtException(Thread t, Throwable e) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span>          abort("Uncaught exception in executorService thread " + t.getName(), e);<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><a name="line.601"></a>
-<span class="sourceLineNo">602</span>      initializeFileSystem();<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.603"></a>
+<span class="sourceLineNo">593</span>      boolean isMasterNotCarryTable =<a name="line.593"></a>
+<span class="sourceLineNo">594</span>          this instanceof HMaster &amp;&amp; !LoadBalancer.isTablesOnMaster(conf) &amp;&amp; !LoadBalancer<a name="line.594"></a>
+<span class="sourceLineNo">595</span>              .isSystemTablesOnlyOnMaster(conf);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>      cacheConfig = new CacheConfig(conf, !isMasterNotCarryTable);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>      mobCacheConfig = new MobCacheConfig(conf, !isMasterNotCarryTable);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>        @Override<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        public void uncaughtException(Thread t, Throwable e) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>          abort("Uncaught exception in executorService thread " + t.getName(), e);<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      };<a name="line.603"></a>
 <span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>      this.configurationManager = new ConfigurationManager();<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      setupWindows(getConfiguration(), getConfigurationManager());<a name="line.606"></a>
+<span class="sourceLineNo">605</span>      initializeFileSystem();<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.606"></a>
 <span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        // Open connection to zookeeper and set primary watcher<a name="line.610"></a>
-<span class="sourceLineNo">611</span>        zooKeeper = new ZKWatcher(conf, getProcessName() + ":" +<a name="line.611"></a>
-<span class="sourceLineNo">612</span>          rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        // If no master in cluster, skip trying to track one or look for a cluster status.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        if (!this.masterless) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>          this.csm = new ZkCoordinatedStateManager(this);<a name="line.615"></a>
-<span class="sourceLineNo">616</span><a name="line.616"></a>
-<span class="sourceLineNo">617</span>          masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>          masterAddressTracker.start();<a name="line.618"></a>
+<span class="sourceLineNo">608</span>      this.configurationManager = new ConfigurationManager();<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      setupWindows(getConfiguration(), getConfigurationManager());<a name="line.609"></a>
+<span class="sourceLineNo">610</span><a name="line.610"></a>
+<span class="sourceLineNo">611</span>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.611"></a>
+<span class="sourceLineNo">612</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        // Open connection to zookeeper and set primary watcher<a name="line.613"></a>
+<span class="sourceLineNo">614</span>        zooKeeper = new ZKWatcher(conf, getProcessName() + ":" +<a name="line.614"></a>
+<span class="sourceLineNo">615</span>          rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        // If no master in cluster, skip trying to track one or look for a cluster status.<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        if (!this.masterless) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>          this.csm = new ZkCoordinatedStateManager(this);<a name="line.618"></a>
 <span class="sourceLineNo">619</span><a name="line.619"></a>
-<span class="sourceLineNo">620</span>          clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>          clusterStatusTracker.start();<a name="line.621"></a>
-<span class="sourceLineNo">622</span>        } else {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>          masterAddressTracker = null;<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          clusterStatusTracker = null;<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        }<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      } else {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>        zooKeeper = null;<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        masterAddressTracker = null;<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        clusterStatusTracker = null;<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      }<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      this.rpcServices.start(zooKeeper);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      // This violates 'no starting stuff in Constructor' but Master depends on the below chore<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      // and executor being created and takes a different startup route. Lots of overlap between HRS<a name="line.633"></a>
-<span class="sourceLineNo">634</span>      // and M (An M IS A HRS now). Need to refactor so less duplication between M and its super<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      // Master expects Constructor to put up web servers. Ugh.<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      // class HRS. TODO.<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      this.choreService = new ChoreService(getName(), true);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      this.executorService = new ExecutorService(getName());<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      putUpWebUI();<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    } catch (Throwable t) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      // Make sure we log the exception. HRegionServer is often started via reflection and the<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      // cause of failed startup is lost.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>      LOG.error("Failed construction RegionServer", t);<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      throw t;<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  }<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>  // HMaster should override this method to load the specific config for master<a name="line.648"></a>
-<span class="sourceLineNo">649</span>  protected String getUseThisHostnameInstead(Configuration conf) throws IOException {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    String hostname = conf.get(RS_HOSTNAME_KEY);<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    if (conf.getBoolean(RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, false)) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      if (!StringUtils.isBlank(hostname)) {<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        String msg = RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY + " and " + RS_HOSTNAME_KEY +<a name="line.653"></a>
-<span class="sourceLineNo">654</span>          " are mutually exclusive. Do not set " + RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY +<a name="line.654"></a>
-<span class="sourceLineNo">655</span>          " to true while " + RS_HOSTNAME_KEY + " is used";<a name="line.655"></a>
-<span class="sourceLineNo">656</span>        throw new IOException(msg);<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      } else {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>        return rpcServices.isa.getHostName();<a name="line.658"></a>
-<span class="sourceLineNo">659</span>      }<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    } else {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>      return hostname;<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    }<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  }<a name="line.663"></a>
-<span class="sourceLineNo">664</span><a name="line.664"></a>
-<span class="sourceLineNo">665</span>  /**<a name="line.665"></a>
-<span class="sourceLineNo">666</span>   * If running on Windows, do windows-specific setup.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>   */<a name="line.667"></a>
-<span class="sourceLineNo">668</span>  private static void setupWindows(final Configuration conf, ConfigurationManager cm) {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>        @Override<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        public void handle(Signal signal) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>          conf.reloadConfiguration();<a name="line.673"></a>
-<span class="sourceLineNo">674</span>          cm.notifyAllObservers(conf);<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        }<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      });<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    }<a name="line.677"></a>
-<span class="sourceLineNo">678</span>  }<a name="line.678"></a>
-<span class="sourceLineNo">679</span><a name="line.679"></a>
-<span class="sourceLineNo">680</span>  private static NettyEventLoopGroupConfig setupNetty(Configuration conf) {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    // Initialize netty event loop group at start as we may use it for rpc server, rpc client &amp; WAL.<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    NettyEventLoopGroupConfig nelgc =<a name="line.682"></a>
-<span class="sourceLineNo">683</span>      new NettyEventLoopGroupConfig(conf, "RS-EventLoopGroup");<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    NettyRpcClientConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    NettyAsyncFSWALConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    return nelgc;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  }<a name="line.687"></a>
-<span class="sourceLineNo">688</span><a name="line.688"></a>
-<span class="sourceLineNo">689</span>  private void initializeFileSystem() throws IOException {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.694"></a>
-<span class="sourceLineNo">695</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.697"></a>
-<span class="sourceLineNo">698</span>    // (unless all is set to defaults).<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>    return new FSTableDescriptors(this.conf,<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false, getMetaTableObserver());<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 Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return null;<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 login(UserProvider user, String host) throws IOException {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    user.login("hbase.regionserver.keytab.file",<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      "hbase.regionserver.kerberos.principal", host);<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><a name="line.719"></a>
-<span class="sourceLineNo">720</span>  /**<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   * Wait for an active Master.<a name="line.721"></a>
-<span class="sourceLineNo">722</span>   * See override in Master superclass for how it is used.<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   */<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  protected void waitForMasterActive() {}<a name="line.724"></a>
-<span class="sourceLineNo">725</span><a name="line.725"></a>
-<span class="sourceLineNo">726</span>  protected String getProcessName() {<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    return REGIONSERVER;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  }<a name="line.728"></a>
-<span class="sourceLineNo">729</span><a name="line.729"></a>
-<span class="sourceLineNo">730</span>  protected boolean canCreateBaseZNode() {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    return this.masterless;<a name="line.731"></a>
-<span class="sourceLineNo">732</span>  }<a name="line.732"></a>
-<span class="sourceLineNo">733</span><a name="line.733"></a>
-<span class="sourceLineNo">734</span>  protected boolean canUpdateTableDescriptor() {<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    return false;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>  }<a name="line.736"></a>
-<span class="sourceLineNo">737</span><a name="line.737"></a>
-<span class="sourceLineNo">738</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    return new RSRpcServices(this);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  protected void configureInfoServer() {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.744"></a>
-<span class="sourceLineNo">745</span>  }<a name="line.745"></a>
-<span class="sourceLineNo">746</span><a name="line.746"></a>
-<span class="sourceLineNo">747</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    return RSDumpServlet.class;<a name="line.748"></a>
-<span class="sourceLineNo">749</span>  }<a name="line.749"></a>
-<span class="sourceLineNo">750</span><a name="line.750"></a>
-<span class="sourceLineNo">751</span>  @Override<a name="line.751"></a>
-<span class="sourceLineNo">752</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    /*<a name="line.753"></a>
-<span class="sourceLineNo">754</span>     * No stacking of instances is allowed for a single executorService name<a name="line.754"></a>
-<span class="sourceLineNo">755</span>     */<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.756"></a>
-<span class="sourceLineNo">757</span>        instance.getDescriptorForType();<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.758"></a>
-<span class="sourceLineNo">759</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.759"></a>
-<span class="sourceLineNo">760</span>      LOG.error("Coprocessor executorService " + serviceName<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          + " already registered, rejecting request from " + instance);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      return false;<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    }<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    if (LOG.isDebugEnabled()) {<a name="line.766"></a>
-<span class="sourceLineNo">767</span>      LOG.debug("Registered regionserver coprocessor executorService: executorService=" + serviceName);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    }<a name="line.768"></a>
-<span class="sourceLineNo">769</span>    return true;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>  }<a name="line.770"></a>
-<span class="sourceLineNo">771</span><a name="line.771"></a>
-<span class="sourceLineNo">772</span>  /**<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   * the local server; i.e. a short-circuit Connection. Safe to use going to local or remote<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   * server. Create this instance in a method can be intercepted and mocked in tests.<a name="line.775"></a>
-<span class="sourceLineNo">776</span>   * @throws IOException<a name="line.776"></a>
-<span class="sourceLineNo">777</span>   */<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  @VisibleForTesting<a name="line.778"></a>
-<span class="sourceLineNo">779</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    Configuration conf = this.conf;<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    if (conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM) != null) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>      // Use server ZK cluster for server-issued connections, so we clone<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      // the conf and unset the client ZK related properties<a name="line.783"></a>
-<span class="sourceLineNo">784</span>      conf = new Configuration(this.conf);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      conf.unset(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    }<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.788"></a>
-<span class="sourceLineNo">789</span>    // and remote invocations.<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      serverName, rpcServices, rpcServices);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>  }<a name="line.792"></a>
-<span class="sourceLineNo">793</span><a name="line.793"></a>
-<span class="sourceLineNo">794</span>  /**<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   * @param c<a name="line.796"></a>
-<span class="sourceLineNo">797</span>   * @throws IOException<a name="line.797"></a>
-<span class="sourceLineNo">798</span>   */<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    // check to see if the codec list is available:<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.801"></a>
-<span class="sourceLineNo">802</span>    if (codecs == null) return;<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    for (String codec : codecs) {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>        throw new IOException("Compression codec " + codec +<a name="line.805"></a>
-<span class="sourceLineNo">806</span>          " not supported, aborting RS construction");<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      }<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    }<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>  public String getClusterId() {<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    return this.clusterId;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>  }<a name="line.813"></a>
-<span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>  /**<a name="line.815"></a>
-<span class="sourceLineNo">816</span>   * Setup our cluster connection if not already initialized.<a name="line.816"></a>
-<span class="sourceLineNo">817</span>   * @throws IOException<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   */<a name="line.818"></a>
-<span class="sourceLineNo">819</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    if (clusterConnection == null) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>      clusterConnection = createClusterConnection();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      metaTableLocator = new MetaTableLocator();<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>  }<a name="line.824"></a>
-<span class="sourceLineNo">825</span><a name="line.825"></a>
-<span class="sourceLineNo">826</span>  /**<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * All initialization needed before we go register with Master.&lt;br&gt;<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.&lt;br&gt;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * In here we just put up the RpcServer, setup Connection, and ZooKeeper.<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   */<a name="line.830"></a>
-<span class="sourceLineNo">831</span>  private void preRegistrationInitialization() {<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    try {<a name="line.832"></a>
-<span class="sourceLineNo">833</span>      initializeZooKeeper();<a name="line.833"></a>
-<span class="sourceLineNo">834</span>      setupClusterConnection();<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      // Setup RPC client for master communication<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      this.rpcClient = RpcClientFactory.createClient(conf, clusterId, new InetSocketAddress(<a name="line.836"></a>
-<span class="sourceLineNo">837</span>          this.rpcServices.isa.getAddress(), 0), clusterConnection.getConnectionMetrics());<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    } catch (Throwable t) {<a name="line.838"></a>
-<span class="sourceLineNo">839</span>      // Call stop if error or process will stick around for ever since server<a name="line.839"></a>
-<span class="sourceLineNo">840</span>      // puts up non-daemon threads.<a name="line.840"></a>
-<span class="sourceLineNo">841</span>      this.rpcServices.stop();<a name="line.841"></a>
-<span class="sourceLineNo">842</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    }<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Bring up connection to zk ensemble and then wait until a master for this cluster and then after<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * that, wait until cluster 'up' flag has been set. This is the order in which master does things.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * &lt;p&gt;<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * Finally open long-living server short-circuit connection.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    justification="cluster Id znode read would give us correct response")<a name="line.853"></a>
-<span class="sourceLineNo">854</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>    // Nothing to do in here if no Master in the mix.<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    if (this.masterless) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      return;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // block until a master is available.  No point in starting up if no master<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    // running.<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.863"></a>
-<span class="sourceLineNo">864</span><a name="line.864"></a>
-<span class="sourceLineNo">865</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    // when ready.<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.867"></a>
-<span class="sourceLineNo">868</span><a name="line.868"></a>
-<span class="sourceLineNo">869</span>    // If we are HMaster then the cluster id should have already been set.<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    if (clusterId == null) {<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      // Retrieve clusterId<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      // Since cluster status is now up<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      // ID should have already been set by HMaster<a name="line.873"></a>
-<span class="sourceLineNo">874</span>      try {<a name="line.874"></a>
-<span class="sourceLineNo">875</span>        clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        if (clusterId == null) {<a name="line.876"></a>
-<span class="sourceLineNo">877</span>          this.abort("Cluster ID has not been set");<a name="line.877"></a>
-<span class="sourceLineNo">878</span>        }<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        LOG.info("ClusterId : " + clusterId);<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      } catch (KeeperException e) {<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        this.abort("Failed to retrieve Cluster ID", e);<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      }<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    }<a name="line.883"></a>
-<span class="sourceLineNo">884</span><a name="line.884"></a>
-<span class="sourceLineNo">885</span>    waitForMasterActive();<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    if (isStopped() || isAborted()) {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>      return; // No need for further initialization<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>    // watch for snapshots and other procedures<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    try {<a name="line.891"></a>
-<span class="sourceLineNo">892</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.892"></a>
-<span class="sourceLineNo">893</span>      rspmHost.loadProcedures(conf);<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      rspmHost.initialize(this);<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    } catch (KeeperException e) {<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    }<a name="line.897"></a>
-<span class="sourceLineNo">898</span>  }<a name="line.898"></a>
-<span class="sourceLineNo">899</span><a name="line.899"></a>
-<span class="sourceLineNo">900</span>  /**<a name="line.900"></a>
-<span class="sourceLineNo">901</span>   * Utilty method to wait indefinitely on a znode availability while checking<a name="line.901"></a>
-<span class="sourceLineNo">902</span>   * if the region server is shut down<a name="line.902"></a>
-<span class="sourceLineNo">903</span>   * @param tracker znode tracker to use<a name="line.903"></a>
-<span class="sourceLineNo">904</span>   * @throws IOException any IO exception, plus if the RS is stopped<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * @throws InterruptedException<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   */<a name="line.906"></a>
-<span class="sourceLineNo">907</span>  private void blockAndCheckIfStopped(ZKNodeTracker tracker)<a name="line.907"></a>
-<span class="sourceLineNo">908</span>      throws IOException, InterruptedException {<a name="line.908"></a>
-<span class="sourceLineNo">909</span>    while (tracker.blockUntilAvailable(this.msgInterval, false) == null) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>      if (this.stopped) {<a name="line.910"></a>
-<span class="sourceLineNo">911</span>        throw new IOException("Received the shutdown message while waiting.");<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      }<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  }<a name="line.914"></a>
-<span class="sourceLineNo">915</span><a name="line.915"></a>
-<span class="sourceLineNo">916</span>  /**<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @return True if the cluster is up.<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   */<a name="line.918"></a>
-<span class="sourceLineNo">919</span>  @Override<a name="line.919"></a>
-<span class="sourceLineNo">920</span>  public boolean isClusterUp() {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>    return this.masterless ||<a name="line.921"></a>
-<span class="sourceLineNo">922</span>        (this.clusterStatusTracker != null &amp;&amp; this.clusterStatusTracker.isClusterUp());<a name="line.922"></a>
-<span class="sourceLineNo">923</span>  }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>  /**<a name="line.925"></a>
-<span class="sourceLineNo">926</span>   * The HRegionServer sticks in this loop until closed.<a name="line.926"></a>
-<span class="sourceLineNo">927</span>   */<a name="line.927"></a>
-<span class="sourceLineNo">928</span>  @Override<a name="line.928"></a>
-<span class="sourceLineNo">929</span>  public void run() {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    try {<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      // Do pre-registration initializations; zookeeper, lease threads, etc.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      preRegistrationInitialization();<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    } catch (Throwable e) {<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      abort("Fatal exception during initialization", e);<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
-<span class="sourceLineNo">936</span><a name="line.936"></a>
-<span class="sourceLineNo">937</span>    try {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>        ShutdownHook.install(conf, fs, this, Thread.currentThread());<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        // Initialize the RegionServerCoprocessorHost now that our ephemeral<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        // node was created, in case any coprocessors want to use ZooKeeper<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        this.rsHost = new RegionServerCoprocessorHost(this, this.conf);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      }<a name="line.943"></a>
-<span class="sourceLineNo">944</span><a name="line.944"></a>
-<span class="sourceLineNo">945</span>      // Try and register with the Master; tell it we are here.  Break if server is stopped or the<a name="line.945"></a>
-<span class="sourceLineNo">946</span>      // clusterup flag is down or hdfs went wacky. Once registered successfully, go ahead and start<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      // up all Services. Use RetryCounter to get backoff in case Master is struggling to come up.<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      RetryCounterFactory rcf = new RetryCounterFactory(Integer.MAX_VALUE,<a name="line.948"></a>
-<span class="sourceLineNo">949</span>          this.sleeper.getPeriod(), 1000 * 60 * 5);<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      RetryCounter rc = rcf.create();<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      while (keepLooping()) {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>        RegionServerStartupResponse w = reportForDuty();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>        if (w == null) {<a name="line.953"></a>
-<span class="sourceLineNo">954</span>          long sleepTime = rc.getBackoffTimeAndIncrementAttempts();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>          LOG.warn("reportForDuty failed; sleeping {} ms and then retrying.", sleepTime);<a name="line.955"></a>
-<span class="sourceLineNo">956</span>          this.sleeper.sleep(sleepTime);<a name="line.956"></a>
-<span class="sourceLineNo">957</span>        } else {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>          handleReportForDutyResponse(w);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>          break;<a name="line.959"></a>
-<span class="sourceLineNo">960</span>        }<a name="line.960"></a>
-<span class="sourceLineNo">961</span>      }<a name="line.961"></a>
-<span class="sourceLineNo">962</span><a name="line.962"></a>
-<span class="sourceLineNo">963</span>      if (!isStopped() &amp;&amp; isHealthy()) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        // start the snapshot handler and other procedure handlers,<a name="line.964"></a>
-<span class="sourceLineNo">965</span>        // since the server is ready to run<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        if (this.rspmHost != null) {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>          this.rspmHost.start();<a name="line.967"></a>
-<span class="sourceLineNo">968</span>        }<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        // Start the Quota Manager<a name="line.969"></a>
-<span class="sourceLineNo">970</span>        if (this.rsQuotaManager != null) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>          rsQuotaManager.start(getRpcServer().getScheduler());<a name="line.971"></a>
-<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (this.rsSpaceQuotaManager != null) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          this.rsSpaceQuotaManager.start();<a name="line.974"></a>
+<span class="sourceLineNo">620</span>          masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.620"></a>
+<span class="sourceLineNo">621</span>          masterAddressTracker.start();<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>          clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.623"></a>
+<span class="sourceLineNo">624</span>          clusterStatusTracker.start();<a name="line.624"></a>
+<span class="sourceLineNo">625</span>        } else {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>          masterAddressTracker = null;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>          clusterStatusTracker = null;<a name="line.627"></a>
+<span class="sourceLineNo">628</span>        }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      } else {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        zooKeeper = null;<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        masterAddressTracker = null;<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        clusterStatusTracker = null;<a name="line.632"></a>
+<span class="sourceLineNo">633</span>      }<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      this.rpcServices.start(zooKeeper);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>      // This violates 'no starting stuff in Constructor' but Master depends on the below chore<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      // and executor being created and takes a different startup route. Lots of overlap between HRS<a name="line.636"></a>
+<span class="sourceLineNo">637</span>      // and M (An M IS A HRS now). Need to refactor so less duplication between M and its super<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      // Master expects Constructor to put up web servers. Ugh.<a name="line.638"></a>
+<span class="sourceLineNo">639</span>      // class HRS. TODO.<a name="line.639"></a>
+<span class="sourceLineNo">640</span>      this.choreService = new ChoreService(getName(), true);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>      this.executorService = new ExecutorService(getName());<a name="line.641"></a>
+<span class="sourceLineNo">642</span>      putUpWebUI();<a name="line.642"></a>
+<span class="sourceLineNo">643</span>    } catch (Throwable t) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>      // Make sure we log the exception. HRegionServer is often started via reflection and the<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      // cause of failed startup is lost.<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      LOG.error("Failed construction RegionServer", t);<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      throw t;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>    }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  }<a name="line.649"></a>
+<span class="sourceLineNo">650</span><a name="line.650"></a>
+<span class="sourceLineNo">651</span>  // HMaster should override this method to load the specific config for master<a name="line.651"></a>
+<span class="sourceLineNo">652</span>  protected String getUseThisHostnameInstead(Configuration conf) throws IOException {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>    String hostname = conf.get(RS_HOSTNAME_KEY);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    if (conf.getBoolean(RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, false)) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      if (!StringUtils.isBlank(hostname)) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        String msg = RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY + " and " + RS_HOSTNAME_KEY +<a name="line.656"></a>
+<span class="sourceLineNo">657</span>          " are mutually exclusive. Do not set " + RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY +<a name="line.657"></a>
+<span class="sourceLineNo">658</span>          " to true while " + RS_HOSTNAME_KEY + " is used";<a name="line.658"></a>
+<span class="sourceLineNo">659</span>        throw new IOException(msg);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      } else {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        return rpcServices.isa.getHostName();<a name="line.661"></a>
+<span class="sourceLineNo">662</span>      }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    } else {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      return hostname;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
+<span class="sourceLineNo">669</span>   * If running on Windows, do windows-specific setup.<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   */<a name="line.670"></a>
+<span class="sourceLineNo">671</span>  private static void setupWindows(final Configuration conf, ConfigurationManager cm) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        @Override<a name="line.674"></a>
+<span class="sourceLineNo">675</span>        public void handle(Signal signal) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>          conf.reloadConfiguration();<a name="line.676"></a>
+<span class="sourceLineNo">677</span>          cm.notifyAllObservers(conf);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>        }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>      });<a name="line.679"></a>
+<span class="sourceLineNo">680</span>    }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
+<span class="sourceLineNo">682</span><a name="line.682"></a>
+<span class="sourceLineNo">683</span>  private static NettyEventLoopGroupConfig setupNetty(Configuration conf) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    // Initialize netty event loop group at start as we may use it for rpc server, rpc client &amp; WAL.<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    NettyEventLoopGroupConfig nelgc =<a name="line.685"></a>
+<span class="sourceLineNo">686</span>      new NettyEventLoopGroupConfig(conf, "RS-EventLoopGroup");<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    NettyRpcClientConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.687"></a>
+<span class="sourceLineNo">688</span>    NettyAsyncFSWALConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    return nelgc;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>  }<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>  private void initializeFileSystem() throws IOException {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.693"></a>
+<span class="sourceLineNo">694</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.694"></a>
+<span class="sourceLineNo">695</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.696"></a>
+<span class="sourceLineNo">697</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.698"></a>
+<span class="sourceLineNo">699</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.700"></a>
+<span class="sourceLineNo">701</span>    // (unless all is set to defaults).<a name="line.701"></a>
+<span class="sourceLineNo">702</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.702"></a>
+<span class="sourceLineNo">703</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.704"></a>
+<span class="sourceLineNo">705</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.705"></a>
+<span class="sourceLineNo">706</span>  }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>    return new FSTableDescriptors(this.conf,<a name="line.709"></a>
+<span class="sourceLineNo">710</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false, getMetaTableObserver());<a name="line.710"></a>
+<span class="sourceLineNo">711</span>  }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>    return null;<a name="line.714"></a>
+<span class="sourceLineNo">715</span>  }<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    user.login("hbase.regionserver.keytab.file",<a name="line.718"></a>
+<span class="sourceLineNo">719</span>      "hbase.regionserver.kerberos.principal", host);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>  }<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>  /**<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   * Wait for an active Master.<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * See override in Master superclass for how it is used.<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   */<a name="line.726"></a>
+<span class="sourceLineNo">727</span>  protected void waitForMasterActive() {}<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>  protected String getProcessName() {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>    return REGIONSERVER;<a name="line.730"></a>
+<span class="sourceLineNo">731</span>  }<a name="line.731"></a>
+<span class="sourceLineNo">732</span><a name="line.732"></a>
+<span class="sourceLineNo">733</span>  protected boolean canCreateBaseZNode() {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    return this.masterless;<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>  protected boolean canUpdateTableDescriptor() {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    return false;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>  }<a name="line.739"></a>
+<span class="sourceLineNo">740</span><a name="line.740"></a>
+<span class="sourceLineNo">741</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    return new RSRpcServices(this);<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>  protected void configureInfoServer() {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.747"></a>
+<span class="sourceLineNo">748</span>  }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    return RSDumpServlet.class;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>  }<a name="line.752"></a>
+<span class="sourceLineNo">753</span><a name="line.753"></a>
+<span class="sourceLineNo">754</span>  @Override<a name="line.754"></a>
+<span class="sourceLineNo">755</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    /*<a name="line.756"></a>
+<span class="sourceLineNo">757</span>     * No stacking of instances is allowed for a single executorService name<a name="line.757"></a>
+<span class="sourceLineNo">758</span>     */<a name="line.758"></a>
+<span class="sourceLineNo">759</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        instance.getDescriptorForType();<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.761"></a>
+<span class="sourceLineNo">762</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>      LOG.error("Coprocessor executorService " + serviceName<a name="line.763"></a>
+<span class="sourceLineNo">764</span>          + " already registered, rejecting request from " + instance);<a name="line.764"></a>
+<span class="sourceLineNo">765</span>      return false;<a name="line.765"></a>
+<span class="sourceLineNo">766</span>    }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>    if (LOG.isDebugEnabled()) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>      LOG.debug("Registered regionserver coprocessor executorService: executorService=" + serviceName);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>    }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    return true;<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>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.776"></a>
+<span class="sourceLineNo">777</span>   * the local server; i.e. a short-circuit Connection. Safe to use going to local or remote<a name="line.777"></a>
+<span class="sourceLineNo">778</span>   * server. Create this instance in a method can be intercepted and mocked in tests.<a name="line.778"></a>
+<span class="sourceLineNo">779</span>   * @throws IOException<a name="line.779"></a>
+<span class="sourceLineNo">780</span>   */<a name="line.780"></a>
+<span class="sourceLineNo">781</span>  @VisibleForTesting<a name="line.781"></a>
+<span class="sourceLineNo">782</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.782"></a>
+<span class="sourceLineNo">783</span>    Configuration conf = this.conf;<a name="line.783"></a>
+<span class="sourceLineNo">784</span>    if (conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM) != null) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>      // Use server ZK cluster for server-issued connections, so we clone<a name="line.785"></a>
+<span class="sourceLineNo">786</span>      // the conf and unset the client ZK related properties<a name="line.786"></a>
+<span class="sourceLineNo">787</span>      conf = new Configuration(this.conf);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>      conf.unset(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.788"></a>
+<span class="sourceLineNo">789</span>    }<a name="line.789"></a>
+<span class="sourceLineNo">790</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.790"></a>
+<span class="sourceLineNo">791</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.791"></a>
+<span class="sourceLineNo">792</span>    // and remote invocations.<a name="line.792"></a>
+<span class="sourceLineNo">793</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.793"></a>
+<span class="sourceLineNo">794</span>      serverName, rpcServices, rpcServices);<a name="line.794"></a>
+<span class="sourceLineNo">795</span>  }<a name="line.795"></a>
+<span class="sourceLineNo">796</span><a name="line.796"></a>
+<span class="sourceLineNo">797</span>  /**<a name="line.797"></a>
+<span class="sourceLineNo">798</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.798"></a>
+<span class="sourceLineNo">799</span>   * @param c<a name="line.799"></a>
+<span class="sourceLineNo">800</span>   * @throws IOException<a name="line.800"></a>
+<span class="sourceLineNo">801</span>   */<a name="line.801"></a>
+<span class="sourceLineNo">802</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    // check to see if the codec list is available:<a name="line.803"></a>
+<span class="sourceLineNo">804</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.804"></a>
+<span class="sourceLineNo">805</span>    if (codecs == null) return;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    for (String codec : codecs) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        throw new IOException("Compression codec " + codec +<a name="line.808"></a>
+<span class="sourceLineNo">809</span>          " not supported, aborting RS construction");<a name="line.809"></a>
+<span class="sourceLineNo">810</span>      }<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>  }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>  public String getClusterId() {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    return this.clusterId;<a name="line.815"></a>
+<span class="sourceLineNo">816</span>  }<a name="line.816"></a>
+<span class="sourceLineNo">817</span><a name="line.817"></a>
+<span class="sourceLineNo">818</span>  /**<a name="line.818"></a>
+<span class="sourceLineNo">819</span>   * Setup our cluster connection if not already initialized.<a name="line.819"></a>
+<span class="sourceLineNo">820</span>   * @throws IOException<a name="line.820"></a>
+<span class="sourceLineNo">821</span>   */<a name="line.821"></a>
+<span class="sourceLineNo">822</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    if (clusterConnection == null) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>      clusterConnection = createClusterConnection();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>      metaTableLocator = new MetaTableLocator();<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>  }<a name="line.827"></a>
+<span class="sourceLineNo">828</span><a name="line.828"></a>
+<span class="sourceLineNo">829</span>  /**<a name="line.829"></a>
+<span class="sourceLineNo">830</span>   * All initialization needed before we go register with Master.&lt;br&gt;<a name="line.830"></a>
+<span class="sourceLineNo">831</span>   * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.&lt;br&gt;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>   * In here we just put up the RpcServer, setup Connection, and ZooKeeper.<a name="line.832"></a>
+<span class="sourceLineNo">833</span>   */<a name="line.833"></a>
+<span class="sourceLineNo">834</span>  private void preRegistrationInitialization() {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    try {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>      initializeZooKeeper();<a name="line.836"></a>
+<span class="sourceLineNo">837</span>      setupClusterConnection();<a name="line.837"></a>
+<span class="sourceLineNo">838</span>      // Setup RPC client for master communication<a name="line.838"></a>
+<span class="sourceLineNo">839</span>      this.rpcClient = RpcClientFactory.createClient(conf, clusterId, new InetSocketAddress(<a name="line.839"></a>
+<span class="sourceLineNo">840</span>          this.rpcServices.isa.getAddress(), 0), clusterConnection.getConnectionMetrics());<a name="line.840"></a>
+<span class="sourceLineNo">841</span>    } catch (Throwable t) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>      // Call stop if error or process will stick around for ever since server<a name="line.842"></a>
+<span class="sourceLineNo">843</span>      // puts up non-daemon threads.<a name="line.843"></a>
+<span class="sourceLineNo">844</span>      this.rpcServices.stop();<a name="line.844"></a>
+<span class="sourceLineNo">845</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    }<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Bring up connection to zk ensemble and then wait until a master for this cluster and then after<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * that, wait until cluster 'up' flag has been set. This is the order in which master does things.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * &lt;p&gt;<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * Finally open long-living server short-circuit connection.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    justification="cluster Id znode read would give us correct response")<a name="line.856"></a>
+<span class="sourceLineNo">857</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>    // Nothing to do in here if no Master in the mix.<a name="line.858"></a>
+<span class="sourceLineNo">859</span>    if (this.masterless) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      return;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    }<a name="line.861"></a>
+<span class="sourceLineNo">862</span><a name="line.862"></a>
+<span class="sourceLineNo">863</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.863"></a>
+<span class="sourceLineNo">864</span>    // block until a master is available.  No point in starting up if no master<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    // running.<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.866"></a>
+<span class="sourceLineNo">867</span><a name="line.867"></a>
+<span class="sourceLineNo">868</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.868"></a>
+<span class="sourceLineNo">869</span>    // when ready.<a name="line.869"></a>
+<span class="sourceLineNo">870</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.870"></a>
+<span class="sourceLineNo">871</span><a name="line.871"></a>
+<span class="sourceLineNo">872</span>    // If we are HMaster then the cluster id should have already been set.<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    if (clusterId == null) {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      // Retrieve clusterId<a name="line.874"></a>
+<span class="sourceLineNo">875</span>      // Since cluster status is now up<a name="line.875"></a>
+<span class="sourceLineNo">876</span>      // ID should have already been set by HMaster<a name="line.876"></a>
+<span class="sourceLineNo">877</span>      try {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        if (clusterId == null) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>          this.abort("Cluster ID has not been set");<a name="line.880"></a>
+<span class="sourceLineNo">881</span>        }<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        LOG.info("ClusterId : " + clusterId);<a name="line.882"></a>
+<span class="sourceLineNo">883</span>      } catch (KeeperException e) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        this.abort("Failed to retrieve Cluster ID", e);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>      }<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>    waitForMasterActive();<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    if (isStopped() || isAborted()) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>      return; // No need for further initialization<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    }<a name="line.891"></a>
+<span class="sourceLineNo">892</span><a name="line.892"></a>
+<span class="sourceLineNo">893</span>    // watch for snapshots and other procedures<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    try {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.895"></a>
+<span class="sourceLineNo">896</span>      rspmHost.loadProcedures(conf);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>      rspmHost.initialize(this);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    } catch (KeeperException e) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>  }<a name="line.901"></a>
+<span class="sourceLineNo">902</span><a name="line.902"></a>
+<span class="sourceLineNo">903</span>  /**<a name="line.903"></a>
+<span class="sourceLineNo">904</span>   * Utilty method to wait indefinitely on a znode availability while checking<a name="line.904"></a>
+<span class="sourceLineNo">905</span>   * if the region server is shut down<a name="line.905"></a>
+<span class="sourceLineNo">906</span>   * @param tracker znode tracker to use<a name="line.906"></a>
+<span class="sourceLineNo">907</span>   * @throws IOException any IO exception, plus if the RS is stopped<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * @throws InterruptedException<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   */<a name="line.909"></a>
+<span class="sourceLineNo">910</span>  private void blockAndCheckIfStopped(ZKNodeTracker tracker)<a name="line.910"></a>
+<span class="sourceLineNo">911</span>      throws IOException, InterruptedException {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>    while (tracker.blockUntilAvailable(this.msgInterval, false) == null) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>      if (this.stopped) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>        throw new IOException("Received the shutdown message while waiting.");<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>  }<a name="line.917"></a>
+<span class="sourceLineNo">918</span><a name="line.918"></a>
+<span class="sourceLineNo">919</span>  /**<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   * @return True if the cluster is up.<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   */<a name="line.921"></a>
+<span class="sourceLineNo">922</span>  @Override<a name="line.922"></a>
+<span class="sourceLineNo">923</span>  public boolean isClusterUp() {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>    return this.masterless ||<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        (this.clusterStatusTracker != null &amp;&amp; this.clusterStatusTracker.isClusterUp());<a name="line.925"></a>
+<span class="sourceLineNo">926</span>  }<a name="line.926"></a>
+<span class="sourceLineNo">927</span><a name="line.927"></a>
+<span class="sourceLineNo">928</span>  /**<a name="line.928"></a>
+<span class="sourceLineNo">929</span>   * The HRegionServer sticks in this loop until closed.<a name="line.929"></a>
+<span class="sourceLineNo">930</span>   */<a name="line.930"></a>
+<span class="sourceLineNo">931</span>  @Override<a name="line.931"></a>
+<span class="sourceLineNo">932</span>  public void run() {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    try {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      // Do pre-registration initializations; zookeeper, lease threads, etc.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>      preRegistrationInitialization();<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    } catch (Throwable e) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>      abort("Fatal exception during initialization", e);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>    }<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>    try {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>        ShutdownHook.install(conf, fs, this, Thread.currentThread());<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        // Initialize the RegionServerCoprocessorHost now that our ephemeral<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        // node was created, in case any coprocessors want to use ZooKeeper<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        this.rsHost = new RegionServerCoprocessorHost(this, this.conf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      }<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>      // Try and register with the Master; tell it we are here.  Break if server is stopped or the<a name="line.948"></a>
+<span class="sourceLineNo">949</span>      // clusterup flag is down or hdfs went wacky. Once registered successfully, go ahead and start<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      // up all Services. Use RetryCounter to get backoff in case Master is struggling to come up.<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      RetryCounterFactory rcf = new RetryCounterFactory(Integer.MAX_VALUE,<a name="line.951"></a>
+<span class="sourceLineNo">952</span>          this.sleeper.getPeriod(), 1000 * 60 * 5);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      RetryCounter rc = rcf.create();<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      while (keepLooping()) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>        RegionServerStartupResponse w = reportForDuty();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        if (w == null) {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>          long sleepTime = rc.getBackoffTimeAndIncrementAttempts();<a name="line.957"></a>
+<span class="sourceLineNo">958</span>          LOG.warn("reportForDuty failed; sleeping {} ms and then retrying.", sleepTime);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>          this.sleeper.sleep(sleepTime);<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>          handleReportForDutyResponse(w);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>          break;<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        }<a name="line.963"></a>
+<span class="sourceLineNo">964</span>      }<a name="line.964"></a>
+<span class="sourceLineNo">965</span><a name="line.965"></a>
+<span class="sourceLineNo">966</span>      if (!isStopped() &amp;&amp; isHealthy()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>        // start the snapshot handler and other procedure handlers,<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        // since the server is ready to run<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        if (this.rspmHost != null) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>          this.rspmHost.start();<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        // Start the Quota Manager<a name="line.972"></a>
+<span class="sourceLineNo">973</span>        if (this.rsQuotaManager != null) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>          rsQuotaManager.start(getRpcServer().getScheduler());<a name="line.974"></a>
 <span class="sourceLineNo">975</span>        }<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      }<a name="line.976"></a>
-<span class="sourceLineNo">977</span><a name="line.977"></a>
-<span class="sourceLineNo">978</span>      // We registered with the Master.  Go into run mode.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>      long lastMsg = System.currentTimeMillis();<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      long oldRequestCount = -1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // The main run loop.<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      while (!isStopped() &amp;&amp; isHealthy()) {<a name="line.982"></a>
-<span class="sourceLineNo">983</span>        if (!isClusterUp()) {<a name="line.983"></a>
-<span class="sourceLineNo">984</span>          if (isOnlineRegionsEmpty()) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>            stop("Exiting; cluster shutdown set and not carrying any regions");<a name="line.985"></a>
-<span class="sourceLineNo">986</span>          } else if (!this.stopping) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            this.stopping = true;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>            LOG.info("Closing user regions");<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            closeUserRegions(this.abortRequested);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>          } else if (this.stopping) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>            boolean allUserRegionsOffline = areAllUserRegionsOffline();<a name="line.991"></a>
-<span class="sourceLineNo">992</span>            if (allUserRegionsOffline) {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>              // Set stopped if no more write requests tp meta tables<a name="line.993"></a>
-<span class="sourceLineNo">994</span>              // since last time we went around the loop.  Any open<a name="line.994"></a>
-<span class="sourceLineNo">995</span>              // meta regions will be closed on our way out.<a name="line.995"></a>
-<span class="sourceLineNo">996</span>              if (oldRequestCount == getWriteRequestCount()) {<a name="line.996"></a>
-<span class="sourceLineNo">997</span>                stop("Stopped; only catalog regions remaining online");<a name="line.997"></a>
-<span class="sourceLineNo">998</span>                break;<a name="line.998"></a>
-<span class="sourceLineNo">999</span>              }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>              oldRequestCount = getWriteRequestCount();<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>            } else {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>              // Make sure all regions have been closed -- some regions may<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>              // have not got it because we were splitting at the time of<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>              // the call to closeUserRegions.<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>              closeUserRegions(this.abortRequested);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>            }<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>            LOG.debug("Waiting on " + getOnlineRegionsAsPrintableString());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>          }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>        long now = System.currentTimeMillis();<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>        if ((now - lastMsg) &gt;= msgInterval) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>          tryRegionServerReport(lastMsg, now);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>          lastMsg = System.currentTimeMillis();<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>        }<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>        if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>          this.sleeper.sleep();<a name="line.1016"></a>
+<span class="sourceLineNo">976</span>        if (this.rsSpaceQuotaManager != null) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          this.rsSpaceQuotaManager.start();<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        }<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span><a name="line.980"></a>
+<span class="sourceLineNo">981</span>      // We registered with the Master.  Go into run mode.<a name="line.981"></a>
+<span class="sourceLineNo">982</span>      long lastMsg = System.currentTimeMillis();<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      long oldRequestCount = -1;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // The main run loop.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      while (!isStopped() &amp;&amp; isHealthy()) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>        if (!isClusterUp()) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>          if (isOnlineRegionsEmpty()) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            stop("Exiting; cluster shutdown set and not carrying any regions");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          } else if (!this.stopping) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>            this.stopping = true;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>            LOG.info("Closing user regions");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>            closeUserRegions(this.abortRequested);<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          } else if (this.stopping) {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>            boolean allUserRegionsOffline = areAllUserRegionsOffline();<a name="line.994"></a>
+<span class="sourceLineNo">995</span>            if (allUserRegionsOffline) {<a name="line.995"></a>
+<span class="sourceLineNo">996</span>              // Set stopped if no more write requests tp meta tables<a name="line.996"></a>
+<span class="sourceLineNo">997</span>              // since last time we went around the loop.  Any open<a name="line.997"></a>
+<span class="sourceLineNo">998</span>              // meta regions will be closed on our way out.<a name="line.998"></a>
+<span class="sourceLineNo">999</span>              if (oldRequestCount == getWriteRequestCount()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                stop("Stopped; only catalog regions remaining online");<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                break;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>              }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>              oldRequestCount = getWriteRequestCount();<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>            } else {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>              // Make sure all regions have been closed -- some regions may<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>              // have not got it because we were splitting at the time of<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>              // the call to closeUserRegions.<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>              closeUserRegions(this.abortRequested);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>            }<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>            LOG.debug("Waiting on " + getOnlineRegionsAsPrintableString());<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>          }<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        long now = System.currentTimeMillis();<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        if ((now - lastMsg) &gt;= msgInterval) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>          tryRegionServerReport(lastMsg, now);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>          lastMsg = System.currentTimeMillis();<a name="line.1016"></a>
 <span class="sourceLineNo">1017</span>        }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      } // for<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    } catch (Throwable t) {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      if (!rpcServices.checkOOME(t)) {<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>        String prefix = t instanceof YouAreDeadException? "": "Unhandled: ";<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>        abort(prefix + t.getMessage(), t);<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (this.leases != null) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      this.leases.closeAfterLeasesExpire();<a name="line.1026"></a>
+<span class="sourceLineNo">1018</span>        if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>          this.sleeper.sleep();<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>        }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      } // for<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    } catch (Throwable t) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      if (!rpcServices.checkOOME(t)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        String prefix = t instanceof YouAreDeadException? "": "Unhandled: ";<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        abort(prefix + t.getMessage(), t);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      }<a name="line.1026"></a>
 <span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (this.splitLogWorker != null) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      splitLogWorker.stop();<a name="line.1029"></a>
+<span class="sourceLineNo">1028</span>    if (this.leases != null) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      this.leases.closeAfterLeasesExpire();<a name="line.1029"></a>
 <span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>    if (this.infoServer != null) {<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      LOG.info("Stopping infoServer");<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>      try {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>        this.infoServer.stop();<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      } catch (Exception e) {<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        LOG.error("Failed to stop infoServer", e);<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    // Send cache a shutdown.<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    if (cacheConfig != null &amp;&amp; cacheConfig.isBlockCacheEnabled()) {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>      

<TRUNCATED>

[20/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 cb9d178..90087b4 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
@@ -598,3212 +598,3215 @@
 <span class="sourceLineNo">590</span>      Superusers.initialize(conf);<a name="line.590"></a>
 <span class="sourceLineNo">591</span><a name="line.591"></a>
 <span class="sourceLineNo">592</span>      regionServerAccounting = new RegionServerAccounting(conf);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      cacheConfig = new CacheConfig(conf);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      mobCacheConfig = new MobCacheConfig(conf);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
-<span class="sourceLineNo">597</span>        public void uncaughtException(Thread t, Throwable e) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span>          abort("Uncaught exception in executorService thread " + t.getName(), e);<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><a name="line.601"></a>
-<span class="sourceLineNo">602</span>      initializeFileSystem();<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.603"></a>
+<span class="sourceLineNo">593</span>      boolean isMasterNotCarryTable =<a name="line.593"></a>
+<span class="sourceLineNo">594</span>          this instanceof HMaster &amp;&amp; !LoadBalancer.isTablesOnMaster(conf) &amp;&amp; !LoadBalancer<a name="line.594"></a>
+<span class="sourceLineNo">595</span>              .isSystemTablesOnlyOnMaster(conf);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>      cacheConfig = new CacheConfig(conf, !isMasterNotCarryTable);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>      mobCacheConfig = new MobCacheConfig(conf, !isMasterNotCarryTable);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>        @Override<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        public void uncaughtException(Thread t, Throwable e) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>          abort("Uncaught exception in executorService thread " + t.getName(), e);<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      };<a name="line.603"></a>
 <span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>      this.configurationManager = new ConfigurationManager();<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      setupWindows(getConfiguration(), getConfigurationManager());<a name="line.606"></a>
+<span class="sourceLineNo">605</span>      initializeFileSystem();<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.606"></a>
 <span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        // Open connection to zookeeper and set primary watcher<a name="line.610"></a>
-<span class="sourceLineNo">611</span>        zooKeeper = new ZKWatcher(conf, getProcessName() + ":" +<a name="line.611"></a>
-<span class="sourceLineNo">612</span>          rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        // If no master in cluster, skip trying to track one or look for a cluster status.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        if (!this.masterless) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>          this.csm = new ZkCoordinatedStateManager(this);<a name="line.615"></a>
-<span class="sourceLineNo">616</span><a name="line.616"></a>
-<span class="sourceLineNo">617</span>          masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>          masterAddressTracker.start();<a name="line.618"></a>
+<span class="sourceLineNo">608</span>      this.configurationManager = new ConfigurationManager();<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      setupWindows(getConfiguration(), getConfigurationManager());<a name="line.609"></a>
+<span class="sourceLineNo">610</span><a name="line.610"></a>
+<span class="sourceLineNo">611</span>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.611"></a>
+<span class="sourceLineNo">612</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        // Open connection to zookeeper and set primary watcher<a name="line.613"></a>
+<span class="sourceLineNo">614</span>        zooKeeper = new ZKWatcher(conf, getProcessName() + ":" +<a name="line.614"></a>
+<span class="sourceLineNo">615</span>          rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        // If no master in cluster, skip trying to track one or look for a cluster status.<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        if (!this.masterless) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>          this.csm = new ZkCoordinatedStateManager(this);<a name="line.618"></a>
 <span class="sourceLineNo">619</span><a name="line.619"></a>
-<span class="sourceLineNo">620</span>          clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>          clusterStatusTracker.start();<a name="line.621"></a>
-<span class="sourceLineNo">622</span>        } else {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>          masterAddressTracker = null;<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          clusterStatusTracker = null;<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        }<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      } else {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>        zooKeeper = null;<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        masterAddressTracker = null;<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        clusterStatusTracker = null;<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      }<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      this.rpcServices.start(zooKeeper);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      // This violates 'no starting stuff in Constructor' but Master depends on the below chore<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      // and executor being created and takes a different startup route. Lots of overlap between HRS<a name="line.633"></a>
-<span class="sourceLineNo">634</span>      // and M (An M IS A HRS now). Need to refactor so less duplication between M and its super<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      // Master expects Constructor to put up web servers. Ugh.<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      // class HRS. TODO.<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      this.choreService = new ChoreService(getName(), true);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      this.executorService = new ExecutorService(getName());<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      putUpWebUI();<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    } catch (Throwable t) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      // Make sure we log the exception. HRegionServer is often started via reflection and the<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      // cause of failed startup is lost.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>      LOG.error("Failed construction RegionServer", t);<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      throw t;<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  }<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>  // HMaster should override this method to load the specific config for master<a name="line.648"></a>
-<span class="sourceLineNo">649</span>  protected String getUseThisHostnameInstead(Configuration conf) throws IOException {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    String hostname = conf.get(RS_HOSTNAME_KEY);<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    if (conf.getBoolean(RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, false)) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      if (!StringUtils.isBlank(hostname)) {<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        String msg = RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY + " and " + RS_HOSTNAME_KEY +<a name="line.653"></a>
-<span class="sourceLineNo">654</span>          " are mutually exclusive. Do not set " + RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY +<a name="line.654"></a>
-<span class="sourceLineNo">655</span>          " to true while " + RS_HOSTNAME_KEY + " is used";<a name="line.655"></a>
-<span class="sourceLineNo">656</span>        throw new IOException(msg);<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      } else {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>        return rpcServices.isa.getHostName();<a name="line.658"></a>
-<span class="sourceLineNo">659</span>      }<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    } else {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>      return hostname;<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    }<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  }<a name="line.663"></a>
-<span class="sourceLineNo">664</span><a name="line.664"></a>
-<span class="sourceLineNo">665</span>  /**<a name="line.665"></a>
-<span class="sourceLineNo">666</span>   * If running on Windows, do windows-specific setup.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>   */<a name="line.667"></a>
-<span class="sourceLineNo">668</span>  private static void setupWindows(final Configuration conf, ConfigurationManager cm) {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>        @Override<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        public void handle(Signal signal) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>          conf.reloadConfiguration();<a name="line.673"></a>
-<span class="sourceLineNo">674</span>          cm.notifyAllObservers(conf);<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        }<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      });<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    }<a name="line.677"></a>
-<span class="sourceLineNo">678</span>  }<a name="line.678"></a>
-<span class="sourceLineNo">679</span><a name="line.679"></a>
-<span class="sourceLineNo">680</span>  private static NettyEventLoopGroupConfig setupNetty(Configuration conf) {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    // Initialize netty event loop group at start as we may use it for rpc server, rpc client &amp; WAL.<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    NettyEventLoopGroupConfig nelgc =<a name="line.682"></a>
-<span class="sourceLineNo">683</span>      new NettyEventLoopGroupConfig(conf, "RS-EventLoopGroup");<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    NettyRpcClientConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    NettyAsyncFSWALConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    return nelgc;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  }<a name="line.687"></a>
-<span class="sourceLineNo">688</span><a name="line.688"></a>
-<span class="sourceLineNo">689</span>  private void initializeFileSystem() throws IOException {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.694"></a>
-<span class="sourceLineNo">695</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.697"></a>
-<span class="sourceLineNo">698</span>    // (unless all is set to defaults).<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>    return new FSTableDescriptors(this.conf,<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false, getMetaTableObserver());<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 Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return null;<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 login(UserProvider user, String host) throws IOException {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    user.login("hbase.regionserver.keytab.file",<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      "hbase.regionserver.kerberos.principal", host);<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><a name="line.719"></a>
-<span class="sourceLineNo">720</span>  /**<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   * Wait for an active Master.<a name="line.721"></a>
-<span class="sourceLineNo">722</span>   * See override in Master superclass for how it is used.<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   */<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  protected void waitForMasterActive() {}<a name="line.724"></a>
-<span class="sourceLineNo">725</span><a name="line.725"></a>
-<span class="sourceLineNo">726</span>  protected String getProcessName() {<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    return REGIONSERVER;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  }<a name="line.728"></a>
-<span class="sourceLineNo">729</span><a name="line.729"></a>
-<span class="sourceLineNo">730</span>  protected boolean canCreateBaseZNode() {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    return this.masterless;<a name="line.731"></a>
-<span class="sourceLineNo">732</span>  }<a name="line.732"></a>
-<span class="sourceLineNo">733</span><a name="line.733"></a>
-<span class="sourceLineNo">734</span>  protected boolean canUpdateTableDescriptor() {<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    return false;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>  }<a name="line.736"></a>
-<span class="sourceLineNo">737</span><a name="line.737"></a>
-<span class="sourceLineNo">738</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    return new RSRpcServices(this);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  protected void configureInfoServer() {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.744"></a>
-<span class="sourceLineNo">745</span>  }<a name="line.745"></a>
-<span class="sourceLineNo">746</span><a name="line.746"></a>
-<span class="sourceLineNo">747</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    return RSDumpServlet.class;<a name="line.748"></a>
-<span class="sourceLineNo">749</span>  }<a name="line.749"></a>
-<span class="sourceLineNo">750</span><a name="line.750"></a>
-<span class="sourceLineNo">751</span>  @Override<a name="line.751"></a>
-<span class="sourceLineNo">752</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    /*<a name="line.753"></a>
-<span class="sourceLineNo">754</span>     * No stacking of instances is allowed for a single executorService name<a name="line.754"></a>
-<span class="sourceLineNo">755</span>     */<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.756"></a>
-<span class="sourceLineNo">757</span>        instance.getDescriptorForType();<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.758"></a>
-<span class="sourceLineNo">759</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.759"></a>
-<span class="sourceLineNo">760</span>      LOG.error("Coprocessor executorService " + serviceName<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          + " already registered, rejecting request from " + instance);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      return false;<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    }<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    if (LOG.isDebugEnabled()) {<a name="line.766"></a>
-<span class="sourceLineNo">767</span>      LOG.debug("Registered regionserver coprocessor executorService: executorService=" + serviceName);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    }<a name="line.768"></a>
-<span class="sourceLineNo">769</span>    return true;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>  }<a name="line.770"></a>
-<span class="sourceLineNo">771</span><a name="line.771"></a>
-<span class="sourceLineNo">772</span>  /**<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   * the local server; i.e. a short-circuit Connection. Safe to use going to local or remote<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   * server. Create this instance in a method can be intercepted and mocked in tests.<a name="line.775"></a>
-<span class="sourceLineNo">776</span>   * @throws IOException<a name="line.776"></a>
-<span class="sourceLineNo">777</span>   */<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  @VisibleForTesting<a name="line.778"></a>
-<span class="sourceLineNo">779</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    Configuration conf = this.conf;<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    if (conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM) != null) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>      // Use server ZK cluster for server-issued connections, so we clone<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      // the conf and unset the client ZK related properties<a name="line.783"></a>
-<span class="sourceLineNo">784</span>      conf = new Configuration(this.conf);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      conf.unset(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    }<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.788"></a>
-<span class="sourceLineNo">789</span>    // and remote invocations.<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      serverName, rpcServices, rpcServices);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>  }<a name="line.792"></a>
-<span class="sourceLineNo">793</span><a name="line.793"></a>
-<span class="sourceLineNo">794</span>  /**<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   * @param c<a name="line.796"></a>
-<span class="sourceLineNo">797</span>   * @throws IOException<a name="line.797"></a>
-<span class="sourceLineNo">798</span>   */<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    // check to see if the codec list is available:<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.801"></a>
-<span class="sourceLineNo">802</span>    if (codecs == null) return;<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    for (String codec : codecs) {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>        throw new IOException("Compression codec " + codec +<a name="line.805"></a>
-<span class="sourceLineNo">806</span>          " not supported, aborting RS construction");<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      }<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    }<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>  public String getClusterId() {<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    return this.clusterId;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>  }<a name="line.813"></a>
-<span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>  /**<a name="line.815"></a>
-<span class="sourceLineNo">816</span>   * Setup our cluster connection if not already initialized.<a name="line.816"></a>
-<span class="sourceLineNo">817</span>   * @throws IOException<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   */<a name="line.818"></a>
-<span class="sourceLineNo">819</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    if (clusterConnection == null) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>      clusterConnection = createClusterConnection();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      metaTableLocator = new MetaTableLocator();<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>  }<a name="line.824"></a>
-<span class="sourceLineNo">825</span><a name="line.825"></a>
-<span class="sourceLineNo">826</span>  /**<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * All initialization needed before we go register with Master.&lt;br&gt;<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.&lt;br&gt;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * In here we just put up the RpcServer, setup Connection, and ZooKeeper.<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   */<a name="line.830"></a>
-<span class="sourceLineNo">831</span>  private void preRegistrationInitialization() {<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    try {<a name="line.832"></a>
-<span class="sourceLineNo">833</span>      initializeZooKeeper();<a name="line.833"></a>
-<span class="sourceLineNo">834</span>      setupClusterConnection();<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      // Setup RPC client for master communication<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      this.rpcClient = RpcClientFactory.createClient(conf, clusterId, new InetSocketAddress(<a name="line.836"></a>
-<span class="sourceLineNo">837</span>          this.rpcServices.isa.getAddress(), 0), clusterConnection.getConnectionMetrics());<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    } catch (Throwable t) {<a name="line.838"></a>
-<span class="sourceLineNo">839</span>      // Call stop if error or process will stick around for ever since server<a name="line.839"></a>
-<span class="sourceLineNo">840</span>      // puts up non-daemon threads.<a name="line.840"></a>
-<span class="sourceLineNo">841</span>      this.rpcServices.stop();<a name="line.841"></a>
-<span class="sourceLineNo">842</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    }<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Bring up connection to zk ensemble and then wait until a master for this cluster and then after<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * that, wait until cluster 'up' flag has been set. This is the order in which master does things.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * &lt;p&gt;<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * Finally open long-living server short-circuit connection.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    justification="cluster Id znode read would give us correct response")<a name="line.853"></a>
-<span class="sourceLineNo">854</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>    // Nothing to do in here if no Master in the mix.<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    if (this.masterless) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      return;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // block until a master is available.  No point in starting up if no master<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    // running.<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.863"></a>
-<span class="sourceLineNo">864</span><a name="line.864"></a>
-<span class="sourceLineNo">865</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    // when ready.<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.867"></a>
-<span class="sourceLineNo">868</span><a name="line.868"></a>
-<span class="sourceLineNo">869</span>    // If we are HMaster then the cluster id should have already been set.<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    if (clusterId == null) {<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      // Retrieve clusterId<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      // Since cluster status is now up<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      // ID should have already been set by HMaster<a name="line.873"></a>
-<span class="sourceLineNo">874</span>      try {<a name="line.874"></a>
-<span class="sourceLineNo">875</span>        clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        if (clusterId == null) {<a name="line.876"></a>
-<span class="sourceLineNo">877</span>          this.abort("Cluster ID has not been set");<a name="line.877"></a>
-<span class="sourceLineNo">878</span>        }<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        LOG.info("ClusterId : " + clusterId);<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      } catch (KeeperException e) {<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        this.abort("Failed to retrieve Cluster ID", e);<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      }<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    }<a name="line.883"></a>
-<span class="sourceLineNo">884</span><a name="line.884"></a>
-<span class="sourceLineNo">885</span>    waitForMasterActive();<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    if (isStopped() || isAborted()) {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>      return; // No need for further initialization<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>    // watch for snapshots and other procedures<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    try {<a name="line.891"></a>
-<span class="sourceLineNo">892</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.892"></a>
-<span class="sourceLineNo">893</span>      rspmHost.loadProcedures(conf);<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      rspmHost.initialize(this);<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    } catch (KeeperException e) {<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    }<a name="line.897"></a>
-<span class="sourceLineNo">898</span>  }<a name="line.898"></a>
-<span class="sourceLineNo">899</span><a name="line.899"></a>
-<span class="sourceLineNo">900</span>  /**<a name="line.900"></a>
-<span class="sourceLineNo">901</span>   * Utilty method to wait indefinitely on a znode availability while checking<a name="line.901"></a>
-<span class="sourceLineNo">902</span>   * if the region server is shut down<a name="line.902"></a>
-<span class="sourceLineNo">903</span>   * @param tracker znode tracker to use<a name="line.903"></a>
-<span class="sourceLineNo">904</span>   * @throws IOException any IO exception, plus if the RS is stopped<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * @throws InterruptedException<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   */<a name="line.906"></a>
-<span class="sourceLineNo">907</span>  private void blockAndCheckIfStopped(ZKNodeTracker tracker)<a name="line.907"></a>
-<span class="sourceLineNo">908</span>      throws IOException, InterruptedException {<a name="line.908"></a>
-<span class="sourceLineNo">909</span>    while (tracker.blockUntilAvailable(this.msgInterval, false) == null) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>      if (this.stopped) {<a name="line.910"></a>
-<span class="sourceLineNo">911</span>        throw new IOException("Received the shutdown message while waiting.");<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      }<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  }<a name="line.914"></a>
-<span class="sourceLineNo">915</span><a name="line.915"></a>
-<span class="sourceLineNo">916</span>  /**<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @return True if the cluster is up.<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   */<a name="line.918"></a>
-<span class="sourceLineNo">919</span>  @Override<a name="line.919"></a>
-<span class="sourceLineNo">920</span>  public boolean isClusterUp() {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>    return this.masterless ||<a name="line.921"></a>
-<span class="sourceLineNo">922</span>        (this.clusterStatusTracker != null &amp;&amp; this.clusterStatusTracker.isClusterUp());<a name="line.922"></a>
-<span class="sourceLineNo">923</span>  }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>  /**<a name="line.925"></a>
-<span class="sourceLineNo">926</span>   * The HRegionServer sticks in this loop until closed.<a name="line.926"></a>
-<span class="sourceLineNo">927</span>   */<a name="line.927"></a>
-<span class="sourceLineNo">928</span>  @Override<a name="line.928"></a>
-<span class="sourceLineNo">929</span>  public void run() {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    try {<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      // Do pre-registration initializations; zookeeper, lease threads, etc.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      preRegistrationInitialization();<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    } catch (Throwable e) {<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      abort("Fatal exception during initialization", e);<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
-<span class="sourceLineNo">936</span><a name="line.936"></a>
-<span class="sourceLineNo">937</span>    try {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>        ShutdownHook.install(conf, fs, this, Thread.currentThread());<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        // Initialize the RegionServerCoprocessorHost now that our ephemeral<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        // node was created, in case any coprocessors want to use ZooKeeper<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        this.rsHost = new RegionServerCoprocessorHost(this, this.conf);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      }<a name="line.943"></a>
-<span class="sourceLineNo">944</span><a name="line.944"></a>
-<span class="sourceLineNo">945</span>      // Try and register with the Master; tell it we are here.  Break if server is stopped or the<a name="line.945"></a>
-<span class="sourceLineNo">946</span>      // clusterup flag is down or hdfs went wacky. Once registered successfully, go ahead and start<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      // up all Services. Use RetryCounter to get backoff in case Master is struggling to come up.<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      RetryCounterFactory rcf = new RetryCounterFactory(Integer.MAX_VALUE,<a name="line.948"></a>
-<span class="sourceLineNo">949</span>          this.sleeper.getPeriod(), 1000 * 60 * 5);<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      RetryCounter rc = rcf.create();<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      while (keepLooping()) {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>        RegionServerStartupResponse w = reportForDuty();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>        if (w == null) {<a name="line.953"></a>
-<span class="sourceLineNo">954</span>          long sleepTime = rc.getBackoffTimeAndIncrementAttempts();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>          LOG.warn("reportForDuty failed; sleeping {} ms and then retrying.", sleepTime);<a name="line.955"></a>
-<span class="sourceLineNo">956</span>          this.sleeper.sleep(sleepTime);<a name="line.956"></a>
-<span class="sourceLineNo">957</span>        } else {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>          handleReportForDutyResponse(w);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>          break;<a name="line.959"></a>
-<span class="sourceLineNo">960</span>        }<a name="line.960"></a>
-<span class="sourceLineNo">961</span>      }<a name="line.961"></a>
-<span class="sourceLineNo">962</span><a name="line.962"></a>
-<span class="sourceLineNo">963</span>      if (!isStopped() &amp;&amp; isHealthy()) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        // start the snapshot handler and other procedure handlers,<a name="line.964"></a>
-<span class="sourceLineNo">965</span>        // since the server is ready to run<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        if (this.rspmHost != null) {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>          this.rspmHost.start();<a name="line.967"></a>
-<span class="sourceLineNo">968</span>        }<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        // Start the Quota Manager<a name="line.969"></a>
-<span class="sourceLineNo">970</span>        if (this.rsQuotaManager != null) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>          rsQuotaManager.start(getRpcServer().getScheduler());<a name="line.971"></a>
-<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (this.rsSpaceQuotaManager != null) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          this.rsSpaceQuotaManager.start();<a name="line.974"></a>
+<span class="sourceLineNo">620</span>          masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.620"></a>
+<span class="sourceLineNo">621</span>          masterAddressTracker.start();<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>          clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.623"></a>
+<span class="sourceLineNo">624</span>          clusterStatusTracker.start();<a name="line.624"></a>
+<span class="sourceLineNo">625</span>        } else {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>          masterAddressTracker = null;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>          clusterStatusTracker = null;<a name="line.627"></a>
+<span class="sourceLineNo">628</span>        }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      } else {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        zooKeeper = null;<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        masterAddressTracker = null;<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        clusterStatusTracker = null;<a name="line.632"></a>
+<span class="sourceLineNo">633</span>      }<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      this.rpcServices.start(zooKeeper);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>      // This violates 'no starting stuff in Constructor' but Master depends on the below chore<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      // and executor being created and takes a different startup route. Lots of overlap between HRS<a name="line.636"></a>
+<span class="sourceLineNo">637</span>      // and M (An M IS A HRS now). Need to refactor so less duplication between M and its super<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      // Master expects Constructor to put up web servers. Ugh.<a name="line.638"></a>
+<span class="sourceLineNo">639</span>      // class HRS. TODO.<a name="line.639"></a>
+<span class="sourceLineNo">640</span>      this.choreService = new ChoreService(getName(), true);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>      this.executorService = new ExecutorService(getName());<a name="line.641"></a>
+<span class="sourceLineNo">642</span>      putUpWebUI();<a name="line.642"></a>
+<span class="sourceLineNo">643</span>    } catch (Throwable t) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>      // Make sure we log the exception. HRegionServer is often started via reflection and the<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      // cause of failed startup is lost.<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      LOG.error("Failed construction RegionServer", t);<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      throw t;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>    }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  }<a name="line.649"></a>
+<span class="sourceLineNo">650</span><a name="line.650"></a>
+<span class="sourceLineNo">651</span>  // HMaster should override this method to load the specific config for master<a name="line.651"></a>
+<span class="sourceLineNo">652</span>  protected String getUseThisHostnameInstead(Configuration conf) throws IOException {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>    String hostname = conf.get(RS_HOSTNAME_KEY);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    if (conf.getBoolean(RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, false)) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      if (!StringUtils.isBlank(hostname)) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        String msg = RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY + " and " + RS_HOSTNAME_KEY +<a name="line.656"></a>
+<span class="sourceLineNo">657</span>          " are mutually exclusive. Do not set " + RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY +<a name="line.657"></a>
+<span class="sourceLineNo">658</span>          " to true while " + RS_HOSTNAME_KEY + " is used";<a name="line.658"></a>
+<span class="sourceLineNo">659</span>        throw new IOException(msg);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      } else {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        return rpcServices.isa.getHostName();<a name="line.661"></a>
+<span class="sourceLineNo">662</span>      }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    } else {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      return hostname;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
+<span class="sourceLineNo">669</span>   * If running on Windows, do windows-specific setup.<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   */<a name="line.670"></a>
+<span class="sourceLineNo">671</span>  private static void setupWindows(final Configuration conf, ConfigurationManager cm) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        @Override<a name="line.674"></a>
+<span class="sourceLineNo">675</span>        public void handle(Signal signal) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>          conf.reloadConfiguration();<a name="line.676"></a>
+<span class="sourceLineNo">677</span>          cm.notifyAllObservers(conf);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>        }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>      });<a name="line.679"></a>
+<span class="sourceLineNo">680</span>    }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
+<span class="sourceLineNo">682</span><a name="line.682"></a>
+<span class="sourceLineNo">683</span>  private static NettyEventLoopGroupConfig setupNetty(Configuration conf) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    // Initialize netty event loop group at start as we may use it for rpc server, rpc client &amp; WAL.<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    NettyEventLoopGroupConfig nelgc =<a name="line.685"></a>
+<span class="sourceLineNo">686</span>      new NettyEventLoopGroupConfig(conf, "RS-EventLoopGroup");<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    NettyRpcClientConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.687"></a>
+<span class="sourceLineNo">688</span>    NettyAsyncFSWALConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    return nelgc;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>  }<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>  private void initializeFileSystem() throws IOException {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.693"></a>
+<span class="sourceLineNo">694</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.694"></a>
+<span class="sourceLineNo">695</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.696"></a>
+<span class="sourceLineNo">697</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.698"></a>
+<span class="sourceLineNo">699</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.700"></a>
+<span class="sourceLineNo">701</span>    // (unless all is set to defaults).<a name="line.701"></a>
+<span class="sourceLineNo">702</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.702"></a>
+<span class="sourceLineNo">703</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.704"></a>
+<span class="sourceLineNo">705</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.705"></a>
+<span class="sourceLineNo">706</span>  }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>    return new FSTableDescriptors(this.conf,<a name="line.709"></a>
+<span class="sourceLineNo">710</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false, getMetaTableObserver());<a name="line.710"></a>
+<span class="sourceLineNo">711</span>  }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>    return null;<a name="line.714"></a>
+<span class="sourceLineNo">715</span>  }<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    user.login("hbase.regionserver.keytab.file",<a name="line.718"></a>
+<span class="sourceLineNo">719</span>      "hbase.regionserver.kerberos.principal", host);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>  }<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>  /**<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   * Wait for an active Master.<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * See override in Master superclass for how it is used.<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   */<a name="line.726"></a>
+<span class="sourceLineNo">727</span>  protected void waitForMasterActive() {}<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>  protected String getProcessName() {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>    return REGIONSERVER;<a name="line.730"></a>
+<span class="sourceLineNo">731</span>  }<a name="line.731"></a>
+<span class="sourceLineNo">732</span><a name="line.732"></a>
+<span class="sourceLineNo">733</span>  protected boolean canCreateBaseZNode() {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    return this.masterless;<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>  protected boolean canUpdateTableDescriptor() {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    return false;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>  }<a name="line.739"></a>
+<span class="sourceLineNo">740</span><a name="line.740"></a>
+<span class="sourceLineNo">741</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    return new RSRpcServices(this);<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>  protected void configureInfoServer() {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.747"></a>
+<span class="sourceLineNo">748</span>  }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    return RSDumpServlet.class;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>  }<a name="line.752"></a>
+<span class="sourceLineNo">753</span><a name="line.753"></a>
+<span class="sourceLineNo">754</span>  @Override<a name="line.754"></a>
+<span class="sourceLineNo">755</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    /*<a name="line.756"></a>
+<span class="sourceLineNo">757</span>     * No stacking of instances is allowed for a single executorService name<a name="line.757"></a>
+<span class="sourceLineNo">758</span>     */<a name="line.758"></a>
+<span class="sourceLineNo">759</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        instance.getDescriptorForType();<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.761"></a>
+<span class="sourceLineNo">762</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>      LOG.error("Coprocessor executorService " + serviceName<a name="line.763"></a>
+<span class="sourceLineNo">764</span>          + " already registered, rejecting request from " + instance);<a name="line.764"></a>
+<span class="sourceLineNo">765</span>      return false;<a name="line.765"></a>
+<span class="sourceLineNo">766</span>    }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>    if (LOG.isDebugEnabled()) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>      LOG.debug("Registered regionserver coprocessor executorService: executorService=" + serviceName);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>    }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    return true;<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>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.776"></a>
+<span class="sourceLineNo">777</span>   * the local server; i.e. a short-circuit Connection. Safe to use going to local or remote<a name="line.777"></a>
+<span class="sourceLineNo">778</span>   * server. Create this instance in a method can be intercepted and mocked in tests.<a name="line.778"></a>
+<span class="sourceLineNo">779</span>   * @throws IOException<a name="line.779"></a>
+<span class="sourceLineNo">780</span>   */<a name="line.780"></a>
+<span class="sourceLineNo">781</span>  @VisibleForTesting<a name="line.781"></a>
+<span class="sourceLineNo">782</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.782"></a>
+<span class="sourceLineNo">783</span>    Configuration conf = this.conf;<a name="line.783"></a>
+<span class="sourceLineNo">784</span>    if (conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM) != null) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>      // Use server ZK cluster for server-issued connections, so we clone<a name="line.785"></a>
+<span class="sourceLineNo">786</span>      // the conf and unset the client ZK related properties<a name="line.786"></a>
+<span class="sourceLineNo">787</span>      conf = new Configuration(this.conf);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>      conf.unset(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.788"></a>
+<span class="sourceLineNo">789</span>    }<a name="line.789"></a>
+<span class="sourceLineNo">790</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.790"></a>
+<span class="sourceLineNo">791</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.791"></a>
+<span class="sourceLineNo">792</span>    // and remote invocations.<a name="line.792"></a>
+<span class="sourceLineNo">793</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.793"></a>
+<span class="sourceLineNo">794</span>      serverName, rpcServices, rpcServices);<a name="line.794"></a>
+<span class="sourceLineNo">795</span>  }<a name="line.795"></a>
+<span class="sourceLineNo">796</span><a name="line.796"></a>
+<span class="sourceLineNo">797</span>  /**<a name="line.797"></a>
+<span class="sourceLineNo">798</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.798"></a>
+<span class="sourceLineNo">799</span>   * @param c<a name="line.799"></a>
+<span class="sourceLineNo">800</span>   * @throws IOException<a name="line.800"></a>
+<span class="sourceLineNo">801</span>   */<a name="line.801"></a>
+<span class="sourceLineNo">802</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    // check to see if the codec list is available:<a name="line.803"></a>
+<span class="sourceLineNo">804</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.804"></a>
+<span class="sourceLineNo">805</span>    if (codecs == null) return;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    for (String codec : codecs) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        throw new IOException("Compression codec " + codec +<a name="line.808"></a>
+<span class="sourceLineNo">809</span>          " not supported, aborting RS construction");<a name="line.809"></a>
+<span class="sourceLineNo">810</span>      }<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>  }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>  public String getClusterId() {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    return this.clusterId;<a name="line.815"></a>
+<span class="sourceLineNo">816</span>  }<a name="line.816"></a>
+<span class="sourceLineNo">817</span><a name="line.817"></a>
+<span class="sourceLineNo">818</span>  /**<a name="line.818"></a>
+<span class="sourceLineNo">819</span>   * Setup our cluster connection if not already initialized.<a name="line.819"></a>
+<span class="sourceLineNo">820</span>   * @throws IOException<a name="line.820"></a>
+<span class="sourceLineNo">821</span>   */<a name="line.821"></a>
+<span class="sourceLineNo">822</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    if (clusterConnection == null) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>      clusterConnection = createClusterConnection();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>      metaTableLocator = new MetaTableLocator();<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>  }<a name="line.827"></a>
+<span class="sourceLineNo">828</span><a name="line.828"></a>
+<span class="sourceLineNo">829</span>  /**<a name="line.829"></a>
+<span class="sourceLineNo">830</span>   * All initialization needed before we go register with Master.&lt;br&gt;<a name="line.830"></a>
+<span class="sourceLineNo">831</span>   * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.&lt;br&gt;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>   * In here we just put up the RpcServer, setup Connection, and ZooKeeper.<a name="line.832"></a>
+<span class="sourceLineNo">833</span>   */<a name="line.833"></a>
+<span class="sourceLineNo">834</span>  private void preRegistrationInitialization() {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    try {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>      initializeZooKeeper();<a name="line.836"></a>
+<span class="sourceLineNo">837</span>      setupClusterConnection();<a name="line.837"></a>
+<span class="sourceLineNo">838</span>      // Setup RPC client for master communication<a name="line.838"></a>
+<span class="sourceLineNo">839</span>      this.rpcClient = RpcClientFactory.createClient(conf, clusterId, new InetSocketAddress(<a name="line.839"></a>
+<span class="sourceLineNo">840</span>          this.rpcServices.isa.getAddress(), 0), clusterConnection.getConnectionMetrics());<a name="line.840"></a>
+<span class="sourceLineNo">841</span>    } catch (Throwable t) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>      // Call stop if error or process will stick around for ever since server<a name="line.842"></a>
+<span class="sourceLineNo">843</span>      // puts up non-daemon threads.<a name="line.843"></a>
+<span class="sourceLineNo">844</span>      this.rpcServices.stop();<a name="line.844"></a>
+<span class="sourceLineNo">845</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    }<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Bring up connection to zk ensemble and then wait until a master for this cluster and then after<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * that, wait until cluster 'up' flag has been set. This is the order in which master does things.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * &lt;p&gt;<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * Finally open long-living server short-circuit connection.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    justification="cluster Id znode read would give us correct response")<a name="line.856"></a>
+<span class="sourceLineNo">857</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>    // Nothing to do in here if no Master in the mix.<a name="line.858"></a>
+<span class="sourceLineNo">859</span>    if (this.masterless) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      return;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    }<a name="line.861"></a>
+<span class="sourceLineNo">862</span><a name="line.862"></a>
+<span class="sourceLineNo">863</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.863"></a>
+<span class="sourceLineNo">864</span>    // block until a master is available.  No point in starting up if no master<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    // running.<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.866"></a>
+<span class="sourceLineNo">867</span><a name="line.867"></a>
+<span class="sourceLineNo">868</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.868"></a>
+<span class="sourceLineNo">869</span>    // when ready.<a name="line.869"></a>
+<span class="sourceLineNo">870</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.870"></a>
+<span class="sourceLineNo">871</span><a name="line.871"></a>
+<span class="sourceLineNo">872</span>    // If we are HMaster then the cluster id should have already been set.<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    if (clusterId == null) {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      // Retrieve clusterId<a name="line.874"></a>
+<span class="sourceLineNo">875</span>      // Since cluster status is now up<a name="line.875"></a>
+<span class="sourceLineNo">876</span>      // ID should have already been set by HMaster<a name="line.876"></a>
+<span class="sourceLineNo">877</span>      try {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        if (clusterId == null) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>          this.abort("Cluster ID has not been set");<a name="line.880"></a>
+<span class="sourceLineNo">881</span>        }<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        LOG.info("ClusterId : " + clusterId);<a name="line.882"></a>
+<span class="sourceLineNo">883</span>      } catch (KeeperException e) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        this.abort("Failed to retrieve Cluster ID", e);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>      }<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>    waitForMasterActive();<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    if (isStopped() || isAborted()) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>      return; // No need for further initialization<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    }<a name="line.891"></a>
+<span class="sourceLineNo">892</span><a name="line.892"></a>
+<span class="sourceLineNo">893</span>    // watch for snapshots and other procedures<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    try {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.895"></a>
+<span class="sourceLineNo">896</span>      rspmHost.loadProcedures(conf);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>      rspmHost.initialize(this);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    } catch (KeeperException e) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>  }<a name="line.901"></a>
+<span class="sourceLineNo">902</span><a name="line.902"></a>
+<span class="sourceLineNo">903</span>  /**<a name="line.903"></a>
+<span class="sourceLineNo">904</span>   * Utilty method to wait indefinitely on a znode availability while checking<a name="line.904"></a>
+<span class="sourceLineNo">905</span>   * if the region server is shut down<a name="line.905"></a>
+<span class="sourceLineNo">906</span>   * @param tracker znode tracker to use<a name="line.906"></a>
+<span class="sourceLineNo">907</span>   * @throws IOException any IO exception, plus if the RS is stopped<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * @throws InterruptedException<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   */<a name="line.909"></a>
+<span class="sourceLineNo">910</span>  private void blockAndCheckIfStopped(ZKNodeTracker tracker)<a name="line.910"></a>
+<span class="sourceLineNo">911</span>      throws IOException, InterruptedException {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>    while (tracker.blockUntilAvailable(this.msgInterval, false) == null) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>      if (this.stopped) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>        throw new IOException("Received the shutdown message while waiting.");<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>  }<a name="line.917"></a>
+<span class="sourceLineNo">918</span><a name="line.918"></a>
+<span class="sourceLineNo">919</span>  /**<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   * @return True if the cluster is up.<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   */<a name="line.921"></a>
+<span class="sourceLineNo">922</span>  @Override<a name="line.922"></a>
+<span class="sourceLineNo">923</span>  public boolean isClusterUp() {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>    return this.masterless ||<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        (this.clusterStatusTracker != null &amp;&amp; this.clusterStatusTracker.isClusterUp());<a name="line.925"></a>
+<span class="sourceLineNo">926</span>  }<a name="line.926"></a>
+<span class="sourceLineNo">927</span><a name="line.927"></a>
+<span class="sourceLineNo">928</span>  /**<a name="line.928"></a>
+<span class="sourceLineNo">929</span>   * The HRegionServer sticks in this loop until closed.<a name="line.929"></a>
+<span class="sourceLineNo">930</span>   */<a name="line.930"></a>
+<span class="sourceLineNo">931</span>  @Override<a name="line.931"></a>
+<span class="sourceLineNo">932</span>  public void run() {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    try {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      // Do pre-registration initializations; zookeeper, lease threads, etc.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>      preRegistrationInitialization();<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    } catch (Throwable e) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>      abort("Fatal exception during initialization", e);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>    }<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>    try {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>        ShutdownHook.install(conf, fs, this, Thread.currentThread());<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        // Initialize the RegionServerCoprocessorHost now that our ephemeral<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        // node was created, in case any coprocessors want to use ZooKeeper<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        this.rsHost = new RegionServerCoprocessorHost(this, this.conf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      }<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>      // Try and register with the Master; tell it we are here.  Break if server is stopped or the<a name="line.948"></a>
+<span class="sourceLineNo">949</span>      // clusterup flag is down or hdfs went wacky. Once registered successfully, go ahead and start<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      // up all Services. Use RetryCounter to get backoff in case Master is struggling to come up.<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      RetryCounterFactory rcf = new RetryCounterFactory(Integer.MAX_VALUE,<a name="line.951"></a>
+<span class="sourceLineNo">952</span>          this.sleeper.getPeriod(), 1000 * 60 * 5);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      RetryCounter rc = rcf.create();<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      while (keepLooping()) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>        RegionServerStartupResponse w = reportForDuty();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        if (w == null) {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>          long sleepTime = rc.getBackoffTimeAndIncrementAttempts();<a name="line.957"></a>
+<span class="sourceLineNo">958</span>          LOG.warn("reportForDuty failed; sleeping {} ms and then retrying.", sleepTime);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>          this.sleeper.sleep(sleepTime);<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>          handleReportForDutyResponse(w);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>          break;<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        }<a name="line.963"></a>
+<span class="sourceLineNo">964</span>      }<a name="line.964"></a>
+<span class="sourceLineNo">965</span><a name="line.965"></a>
+<span class="sourceLineNo">966</span>      if (!isStopped() &amp;&amp; isHealthy()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>        // start the snapshot handler and other procedure handlers,<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        // since the server is ready to run<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        if (this.rspmHost != null) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>          this.rspmHost.start();<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        // Start the Quota Manager<a name="line.972"></a>
+<span class="sourceLineNo">973</span>        if (this.rsQuotaManager != null) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>          rsQuotaManager.start(getRpcServer().getScheduler());<a name="line.974"></a>
 <span class="sourceLineNo">975</span>        }<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      }<a name="line.976"></a>
-<span class="sourceLineNo">977</span><a name="line.977"></a>
-<span class="sourceLineNo">978</span>      // We registered with the Master.  Go into run mode.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>      long lastMsg = System.currentTimeMillis();<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      long oldRequestCount = -1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // The main run loop.<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      while (!isStopped() &amp;&amp; isHealthy()) {<a name="line.982"></a>
-<span class="sourceLineNo">983</span>        if (!isClusterUp()) {<a name="line.983"></a>
-<span class="sourceLineNo">984</span>          if (isOnlineRegionsEmpty()) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>            stop("Exiting; cluster shutdown set and not carrying any regions");<a name="line.985"></a>
-<span class="sourceLineNo">986</span>          } else if (!this.stopping) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            this.stopping = true;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>            LOG.info("Closing user regions");<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            closeUserRegions(this.abortRequested);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>          } else if (this.stopping) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>            boolean allUserRegionsOffline = areAllUserRegionsOffline();<a name="line.991"></a>
-<span class="sourceLineNo">992</span>            if (allUserRegionsOffline) {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>              // Set stopped if no more write requests tp meta tables<a name="line.993"></a>
-<span class="sourceLineNo">994</span>              // since last time we went around the loop.  Any open<a name="line.994"></a>
-<span class="sourceLineNo">995</span>              // meta regions will be closed on our way out.<a name="line.995"></a>
-<span class="sourceLineNo">996</span>              if (oldRequestCount == getWriteRequestCount()) {<a name="line.996"></a>
-<span class="sourceLineNo">997</span>                stop("Stopped; only catalog regions remaining online");<a name="line.997"></a>
-<span class="sourceLineNo">998</span>                break;<a name="line.998"></a>
-<span class="sourceLineNo">999</span>              }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>              oldRequestCount = getWriteRequestCount();<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>            } else {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>              // Make sure all regions have been closed -- some regions may<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>              // have not got it because we were splitting at the time of<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>              // the call to closeUserRegions.<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>              closeUserRegions(this.abortRequested);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>            }<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>            LOG.debug("Waiting on " + getOnlineRegionsAsPrintableString());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>          }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>        long now = System.currentTimeMillis();<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>        if ((now - lastMsg) &gt;= msgInterval) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>          tryRegionServerReport(lastMsg, now);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>          lastMsg = System.currentTimeMillis();<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>        }<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>        if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>          this.sleeper.sleep();<a name="line.1016"></a>
+<span class="sourceLineNo">976</span>        if (this.rsSpaceQuotaManager != null) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          this.rsSpaceQuotaManager.start();<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        }<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span><a name="line.980"></a>
+<span class="sourceLineNo">981</span>      // We registered with the Master.  Go into run mode.<a name="line.981"></a>
+<span class="sourceLineNo">982</span>      long lastMsg = System.currentTimeMillis();<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      long oldRequestCount = -1;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // The main run loop.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      while (!isStopped() &amp;&amp; isHealthy()) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>        if (!isClusterUp()) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>          if (isOnlineRegionsEmpty()) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            stop("Exiting; cluster shutdown set and not carrying any regions");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          } else if (!this.stopping) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>            this.stopping = true;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>            LOG.info("Closing user regions");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>            closeUserRegions(this.abortRequested);<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          } else if (this.stopping) {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>            boolean allUserRegionsOffline = areAllUserRegionsOffline();<a name="line.994"></a>
+<span class="sourceLineNo">995</span>            if (allUserRegionsOffline) {<a name="line.995"></a>
+<span class="sourceLineNo">996</span>              // Set stopped if no more write requests tp meta tables<a name="line.996"></a>
+<span class="sourceLineNo">997</span>              // since last time we went around the loop.  Any open<a name="line.997"></a>
+<span class="sourceLineNo">998</span>              // meta regions will be closed on our way out.<a name="line.998"></a>
+<span class="sourceLineNo">999</span>              if (oldRequestCount == getWriteRequestCount()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                stop("Stopped; only catalog regions remaining online");<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                break;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>              }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>              oldRequestCount = getWriteRequestCount();<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>            } else {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>              // Make sure all regions have been closed -- some regions may<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>              // have not got it because we were splitting at the time of<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>              // the call to closeUserRegions.<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>              closeUserRegions(this.abortRequested);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>            }<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>            LOG.debug("Waiting on " + getOnlineRegionsAsPrintableString());<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>          }<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        long now = System.currentTimeMillis();<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        if ((now - lastMsg) &gt;= msgInterval) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>          tryRegionServerReport(lastMsg, now);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>          lastMsg = System.currentTimeMillis();<a name="line.1016"></a>
 <span class="sourceLineNo">1017</span>        }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      } // for<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    } catch (Throwable t) {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      if (!rpcServices.checkOOME(t)) {<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>        String prefix = t instanceof YouAreDeadException? "": "Unhandled: ";<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>        abort(prefix + t.getMessage(), t);<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (this.leases != null) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      this.leases.closeAfterLeasesExpire();<a name="line.1026"></a>
+<span class="sourceLineNo">1018</span>        if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>          this.sleeper.sleep();<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>        }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      } // for<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    } catch (Throwable t) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      if (!rpcServices.checkOOME(t)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        String prefix = t instanceof YouAreDeadException? "": "Unhandled: ";<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        abort(prefix + t.getMessage(), t);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      }<a name="line.1026"></a>
 <span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (this.splitLogWorker != null) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      splitLogWorker.stop();<a name="line.1029"></a>
+<span class="sourceLineNo">1028</span>    if (this.leases != null) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      this.leases.closeAfterLeasesExpire();<a name="line.1029"></a>
 <span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>    if (this.infoServer != null) {<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      LOG.info("Stopping infoServer");<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>      try {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>        this.infoServer.stop();<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      } catch (Exception e) {<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        LOG.error("Failed to stop infoServer", e);<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    // Send cache a shutdown.<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    if (cacheConfig != null &amp;&amp; cacheConfig.isBlockCacheEnabled()) {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>      cacheConfig.getBlock

<TRUNCATED>

[11/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html
new file mode 100644
index 0000000..96d3651
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestCloneSnapshotFromClientError (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestCloneSnapshotFromClientError (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestCloneSnapshotFromClientError.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientError.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class TestCloneSnapshotFromClientError" class="title">Class TestCloneSnapshotFromClientError</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientErrorTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientError</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#line.34">TestCloneSnapshotFromClientError</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientErrorTestBase</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#numReplicas">numReplicas</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#TestCloneSnapshotFromClientError--">TestCloneSnapshotFromClientError</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#getNumReplicas--">getNumReplicas</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#params--">params</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientErrorTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientErrorTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html#testCloneNonExistentSnapshot--">testCloneNonExistentSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html#testCloneOnMissingNamespace--">testCloneOnMissingNamespace</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setupConfiguration--">setupConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneS
 napshotFromClientTestBase.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="CLASS_RULE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#line.37">CLASS_RULE</a></pre>
+</li>
+</ul>
+<a name="numReplicas">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>numReplicas</h4>
+<pre>public&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#line.41">numReplicas</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestCloneSnapshotFromClientError--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestCloneSnapshotFromClientError</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#line.34">TestCloneSnapshotFromClientError</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="params--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>params</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#line.44">params</a>()</pre>
+</li>
+</ul>
+<a name="getNumReplicas--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getNumReplicas</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#line.49">getNumReplicas</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestCloneSnapshotFromClientError.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientError.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html
new file mode 100644
index 0000000..f89f449
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestCloneSnapshotFromClientNormal (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestCloneSnapshotFromClientNormal (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestCloneSnapshotFromClientNormal.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientNormal.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class TestCloneSnapshotFromClientNormal" class="title">Class TestCloneSnapshotFromClientNormal</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientNormalTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientNormal</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#line.34">TestCloneSnapshotFromClientNormal</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientNormalTestBase</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#numReplicas">numReplicas</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#TestCloneSnapshotFromClientNormal--">TestCloneSnapshotFromClientNormal</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#getNumReplicas--">getNumReplicas</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#params--">params</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientNormalTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientNormalTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#testCloneSnapshot--">testCloneSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#testCloneSnapshotCrossNamespace--">testCloneSnapshotCrossNamespace</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setupConfiguration--">setupConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneS
 napshotFromClientTestBase.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="CLASS_RULE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#line.37">CLASS_RULE</a></pre>
+</li>
+</ul>
+<a name="numReplicas">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>numReplicas</h4>
+<pre>public&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#line.41">numReplicas</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestCloneSnapshotFromClientNormal--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestCloneSnapshotFromClientNormal</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#line.34">TestCloneSnapshotFromClientNormal</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="params--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>params</h4>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#line.44">params</a>()</pre>
+</li>
+</ul>
+<a name="getNumReplicas--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getNumReplicas</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#line.49">getNumReplicas</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestCloneSnapshotFromClientNormal.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" target="_top">Frames</a></li>
+<li><a href="TestCloneSnapshotFromClientNormal.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html
deleted file mode 100644
index 246fbce..0000000
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html
+++ /dev/null
@@ -1,331 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>TestCloneSnapshotFromClientWithRegionReplicas (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TestCloneSnapshotFromClientWithRegionReplicas (Apache HBase 3.0.0-SNAPSHOT Test API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-var methods = {"i0":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
-var altColor = "altColor";
-var rowColor = "rowColor";
-var tableTab = "tableTab";
-var activeTableTab = "activeTableTab";
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestCloneSnapshotFromClientWithRegionReplicas.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" target="_top">Frames</a></li>
-<li><a href="TestCloneSnapshotFromClientWithRegionReplicas.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<div class="subTitle">org.apache.hadoop.hbase.client</div>
-<h2 title="Class TestCloneSnapshotFromClientWithRegionReplicas" class="title">Class TestCloneSnapshotFromClientWithRegionReplicas</h2>
-</div>
-<div class="contentContainer">
-<ul class="inheritance">
-<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
-<li>
-<ul class="inheritance">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.TestCloneSnapshotFromClient</a></li>
-<li>
-<ul class="inheritance">
-<li>org.apache.hadoop.hbase.client.TestCloneSnapshotFromClientWithRegionReplicas</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<hr>
-<br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html#line.27">TestCloneSnapshotFromClientWithRegionReplicas</a>
-extends <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></pre>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- =========== FIELD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.summary">
-<!--   -->
-</a>
-<h3>Field Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
-<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.TestCloneSnapshotFromClient">
-<!--   -->
-</a>
-<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#name">name</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestClon
 eSnapshotFromClient.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#TEST_UTIL">TEST_UTIL</a></code></li>
-</ul>
-</li>
-</ul>
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
-<!--   -->
-</a>
-<h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
-<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Constructor and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html#TestCloneSnapshotFromClientWithRegionReplicas--">TestCloneSnapshotFromClientWithRegionReplicas</a></span>()</code>&nbsp;</td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- ========== METHOD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.summary">
-<!--   -->
-</a>
-<h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tr id="i0" class="altColor">
-<td class="colFirst"><code>protected int</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html#getNumReplicas--">getNumReplicas</a></span>()</code>&nbsp;</td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.TestCloneSnapshotFromClient">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#createTableAndSnapshots--">createTableAndSnapshots</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#setupConfiguration--">setupConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#splitRegion-org.apache.hadoop.hbase.client.RegionInfo-">splitRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSn
 apshotFromClient.html#testCloneLinksAfterDelete--">testCloneLinksAfterDelete</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneNonExistentSnapshot--">testCloneNonExistentSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneOnMissingNamespace--">testCloneOnMissingNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneSnapshot--">testCloneSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneSnapshotAfterSplittingRegion--">testCloneSnapshotAfterSplittingRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneSnapshotCrossNamespace--">testCloneSnapshotCrossNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#verifyReplicasCameOnline-org.apache.hadoop.hbase.TableNam
 e-">verifyReplicasCameOnline</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code></li>
-</ul>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ============ FIELD DETAIL =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.detail">
-<!--   -->
-</a>
-<h3>Field Detail</h3>
-<a name="CLASS_RULE">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html#line.31">CLASS_RULE</a></pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
-<!--   -->
-</a>
-<h3>Constructor Detail</h3>
-<a name="TestCloneSnapshotFromClientWithRegionReplicas--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>TestCloneSnapshotFromClientWithRegionReplicas</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html#line.27">TestCloneSnapshotFromClientWithRegionReplicas</a>()</pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.detail">
-<!--   -->
-</a>
-<h3>Method Detail</h3>
-<a name="getNumReplicas--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>getNumReplicas</h4>
-<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html#line.35">getNumReplicas</a>()</pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#getNumReplicas--">getNumReplicas</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></code></dd>
-</dl>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestCloneSnapshotFromClientWithRegionReplicas.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" target="_top">Frames</a></li>
-<li><a href="TestCloneSnapshotFromClientWithRegionReplicas.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html
index cc564a4..7d97272 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TestCompleteResultScanResultCache.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -361,7 +361,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TestCompleteResultScanResultCache.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestMetricsConnection.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestMetricsConnection.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestMetricsConnection.html
index 2f105c5..e610f7e 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestMetricsConnection.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestMetricsConnection.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaWithReplicas.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMetricsConnection.html" target="_top">Frames</a></li>
@@ -320,7 +320,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaWithReplicas.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMetricsConnection.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html
deleted file mode 100644
index 96c0868..0000000
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html
+++ /dev/null
@@ -1,366 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>TestMobCloneSnapshotFromClient.DelayFlushCoprocessor (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TestMobCloneSnapshotFromClient.DelayFlushCoprocessor (Apache HBase 3.0.0-SNAPSHOT Test API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-var methods = {"i0":10,"i1":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
-var altColor = "altColor";
-var rowColor = "rowColor";
-var tableTab = "tableTab";
-var activeTableTab = "activeTableTab";
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" target="_top">Frames</a></li>
-<li><a href="TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<div class="subTitle">org.apache.hadoop.hbase.client</div>
-<h2 title="Class TestMobCloneSnapshotFromClient.DelayFlushCoprocessor" class="title">Class TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</h2>
-</div>
-<div class="contentContainer">
-<ul class="inheritance">
-<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
-<li>
-<ul class="inheritance">
-<li>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</li>
-</ul>
-</li>
-</ul>
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<dl>
-<dt>All Implemented Interfaces:</dt>
-<dd>org.apache.hadoop.hbase.Coprocessor, org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver</dd>
-</dl>
-<dl>
-<dt>Enclosing class:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient</a></dd>
-</dl>
-<hr>
-<br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#line.148">TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</a>
-extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
-implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver</pre>
-<div class="block">This coprocessor is used to delay the flush.</div>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="nested.class.summary">
-<!--   -->
-</a>
-<h3>Nested Class Summary</h3>
-<ul class="blockList">
-<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.Coprocessor">
-<!--   -->
-</a>
-<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.hadoop.hbase.Coprocessor</h3>
-<code>org.apache.hadoop.hbase.Coprocessor.State</code></li>
-</ul>
-<ul class="blockList">
-<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">
-<!--   -->
-</a>
-<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.RegionObserver</h3>
-<code>org.apache.hadoop.hbase.coprocessor.RegionObserver.MutationType</code></li>
-</ul>
-</li>
-</ul>
-<!-- =========== FIELD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.summary">
-<!--   -->
-</a>
-<h3>Field Summary</h3>
-<ul class="blockList">
-<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.Coprocessor">
-<!--   -->
-</a>
-<h3>Fields inherited from interface&nbsp;org.apache.hadoop.hbase.Coprocessor</h3>
-<code>PRIORITY_HIGHEST, PRIORITY_LOWEST, PRIORITY_SYSTEM, PRIORITY_USER, VERSION</code></li>
-</ul>
-</li>
-</ul>
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
-<!--   -->
-</a>
-<h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
-<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Constructor and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html#DelayFlushCoprocessor--">DelayFlushCoprocessor</a></span>()</code>&nbsp;</td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- ========== METHOD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.summary">
-<!--   -->
-</a>
-<h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</tr>
-<tr id="i0" class="altColor">
-<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.RegionObserver&gt;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html#getRegionObserver--">getRegionObserver</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html#preFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">preFlush</a></span>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
-        org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker&nbsp;tracker)</code>&nbsp;</td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
-</ul>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionCoprocessor">
-<!--   -->
-</a>
-<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.RegionCoprocessor</h3>
-<code>getBulkLoadObserver, getEndpointObserver</code></li>
-</ul>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.Coprocessor">
-<!--   -->
-</a>
-<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.Coprocessor</h3>
-<code>getServices, start, stop</code></li>
-</ul>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">
-<!--   -->
-</a>
-<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.RegionObserver</h3>
-<code>postAppend, postBatchMutate, postBatchMutateIndispensably, postBulkLoadHFile, postCheckAndDelete, postCheckAndPut, postClose, postCloseRegionOperation, postCommitStoreFile, postCompact, postCompactSelection, postDelete, postExists, postFlush, postFlush, postGetOp, postIncrement, postInstantiateDeleteTracker, postMemStoreCompaction, postMutationBeforeWAL, postOpen, postPut, postReplayWALs, postScannerClose, postScannerFilterRow, postScannerNext, postScannerOpen, postStartRegionOperation, postStoreFileReaderOpen, postWALRestore, preAppend, preAppendAfterRowLock, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preClose, preCommitStoreFile, preCompact, preCompactScannerOpen, preCompactSelection, preDelete, preExists, preFlush, preFlushScannerOpen, preGetOp, preIncrement, preIncrementAfterRowLock, preMemStoreCompaction, preMemStoreCompactionCompact, preMemStoreCompactionCompactScannerOpen, preOpen, preP
 repareTimeStampForDeleteVersion, prePut, preReplayWALs, preScannerClose, preScannerNext, preScannerOpen, preStoreFileReaderOpen, preStoreScannerOpen, preWALRestore</code></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
-<!--   -->
-</a>
-<h3>Constructor Detail</h3>
-<a name="DelayFlushCoprocessor--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>DelayFlushCoprocessor</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html#line.148">DelayFlushCoprocessor</a>()</pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.detail">
-<!--   -->
-</a>
-<h3>Method Detail</h3>
-<a name="getRegionObserver--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>getRegionObserver</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.RegionObserver&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html#line.151">getRegionObserver</a>()</pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code>getRegionObserver</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.coprocessor.RegionCoprocessor</code></dd>
-</dl>
-</li>
-</ul>
-<a name="preFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>preFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html#line.156">preFlush</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
-                     org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker&nbsp;tracker)
-              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
-<dd><code>preFlush</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.coprocessor.RegionObserver</code></dd>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-</dl>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" target="_top">Frames</a></li>
-<li><a href="TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li>Nested&nbsp;|&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li>Field&nbsp;|&nbsp;</li>
-<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>


[04/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html
new file mode 100644
index 0000000..bc213f1
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html
@@ -0,0 +1,133 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.TableName;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.junit.Test;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>public class CloneSnapshotFromClientNormalTestBase extends CloneSnapshotFromClientTestBase {<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>  @Test<a name="line.28"></a>
+<span class="sourceLineNo">029</span>  public void testCloneSnapshot() throws IOException, InterruptedException {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>    TableName clonedTableName =<a name="line.30"></a>
+<span class="sourceLineNo">031</span>      TableName.valueOf(getValidMethodName() + "-" + System.currentTimeMillis());<a name="line.31"></a>
+<span class="sourceLineNo">032</span>    testCloneSnapshot(clonedTableName, snapshotName0, snapshot0Rows);<a name="line.32"></a>
+<span class="sourceLineNo">033</span>    testCloneSnapshot(clonedTableName, snapshotName1, snapshot1Rows);<a name="line.33"></a>
+<span class="sourceLineNo">034</span>    testCloneSnapshot(clonedTableName, emptySnapshot, 0);<a name="line.34"></a>
+<span class="sourceLineNo">035</span>  }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>  private void testCloneSnapshot(TableName tableName, byte[] snapshotName, int snapshotRows)<a name="line.37"></a>
+<span class="sourceLineNo">038</span>      throws IOException, InterruptedException {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    // create a new table from snapshot<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    admin.cloneSnapshot(snapshotName, tableName);<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    verifyRowCount(TEST_UTIL, tableName, snapshotRows);<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>    verifyReplicasCameOnline(tableName);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    TEST_UTIL.deleteTable(tableName);<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  }<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>  private void verifyReplicasCameOnline(TableName tableName) throws IOException {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    SnapshotTestingUtils.verifyReplicasCameOnline(tableName, admin, getNumReplicas());<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  }<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>  @Test<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  public void testCloneSnapshotCrossNamespace() throws IOException, InterruptedException {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    String nsName = getValidMethodName() + "_ns_" + System.currentTimeMillis();<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    admin.createNamespace(NamespaceDescriptor.create(nsName).build());<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    final TableName clonedTableName =<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      TableName.valueOf(nsName, getValidMethodName() + "-" + System.currentTimeMillis());<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    testCloneSnapshot(clonedTableName, snapshotName0, snapshot0Rows);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    testCloneSnapshot(clonedTableName, snapshotName1, snapshot1Rows);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    testCloneSnapshot(clonedTableName, emptySnapshot, 0);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  }<a name="line.60"></a>
+<span class="sourceLineNo">061</span>}<a name="line.61"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html
new file mode 100644
index 0000000..e952669
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html
@@ -0,0 +1,233 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.HConstants;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.TableName;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.master.snapshot.SnapshotManager;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.junit.After;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.junit.AfterClass;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.Before;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.BeforeClass;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.junit.Rule;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.junit.rules.TestName;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>/**<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * Base class for testing clone snapsot<a name="line.35"></a>
+<span class="sourceLineNo">036</span> */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>public class CloneSnapshotFromClientTestBase {<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>  protected final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  protected final byte[] FAMILY = Bytes.toBytes("cf");<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  protected byte[] emptySnapshot;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  protected byte[] snapshotName0;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  protected byte[] snapshotName1;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  protected byte[] snapshotName2;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  protected TableName tableName;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  protected int snapshot0Rows;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  protected int snapshot1Rows;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  protected Admin admin;<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>  @Rule<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  public TestName name = new TestName();<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  protected static void setupConfiguration() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    TEST_UTIL.getConfiguration().setBoolean(SnapshotManager.HBASE_SNAPSHOT_ENABLED, true);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    TEST_UTIL.getConfiguration().setInt("hbase.hstore.compactionThreshold", 10);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 6);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    TEST_UTIL.getConfiguration().setBoolean("hbase.master.enabletable.roundrobin", true);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  @BeforeClass<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  public static void setUpBeforeClass() throws Exception {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    setupConfiguration();<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    TEST_UTIL.startMiniCluster(3);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  }<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>  @AfterClass<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public static void tearDownAfterClass() throws Exception {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    TEST_UTIL.shutdownMiniCluster();<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>  protected final String getValidMethodName() {<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    return name.getMethodName().replaceAll("[^0-9A-Za-z_]", "_");<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>  /**<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   * Initialize the tests with a table filled with some data and two snapshots (snapshotName0,<a name="line.80"></a>
+<span class="sourceLineNo">081</span>   * snapshotName1) of different states. The tableName, snapshotNames and the number of rows in the<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   * snapshot are initialized.<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   */<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  @Before<a name="line.84"></a>
+<span class="sourceLineNo">085</span>  public void setup() throws Exception {<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    this.admin = TEST_UTIL.getAdmin();<a name="line.86"></a>
+<span class="sourceLineNo">087</span><a name="line.87"></a>
+<span class="sourceLineNo">088</span>    long tid = System.currentTimeMillis();<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    tableName = TableName.valueOf(getValidMethodName() + tid);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    emptySnapshot = Bytes.toBytes("emptySnaptb-" + tid);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    snapshotName0 = Bytes.toBytes("snaptb0-" + tid);<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    snapshotName1 = Bytes.toBytes("snaptb1-" + tid);<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    snapshotName2 = Bytes.toBytes("snaptb2-" + tid);<a name="line.93"></a>
+<span class="sourceLineNo">094</span><a name="line.94"></a>
+<span class="sourceLineNo">095</span>    createTableAndSnapshots();<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>  protected void createTable() throws IOException, InterruptedException {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>    SnapshotTestingUtils.createTable(TEST_UTIL, tableName, getNumReplicas(), FAMILY);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  }<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>  protected int numRowsToLoad() {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    return 500;<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  }<a name="line.104"></a>
+<span class="sourceLineNo">105</span><a name="line.105"></a>
+<span class="sourceLineNo">106</span>  protected int countRows(Table table) throws IOException {<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    return TEST_UTIL.countRows(table);<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>  private void createTableAndSnapshots() throws Exception {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    // create Table and disable it<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    createTable();<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    admin.disableTable(tableName);<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    // take an empty snapshot<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    admin.snapshot(emptySnapshot, tableName);<a name="line.116"></a>
+<span class="sourceLineNo">117</span><a name="line.117"></a>
+<span class="sourceLineNo">118</span>    // enable table and insert data<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    admin.enableTable(tableName);<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    SnapshotTestingUtils.loadData(TEST_UTIL, tableName, numRowsToLoad(), FAMILY);<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    try (Table table = TEST_UTIL.getConnection().getTable(tableName)) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      snapshot0Rows = countRows(table);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    admin.disableTable(tableName);<a name="line.124"></a>
+<span class="sourceLineNo">125</span><a name="line.125"></a>
+<span class="sourceLineNo">126</span>    // take a snapshot<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    admin.snapshot(snapshotName0, tableName);<a name="line.127"></a>
+<span class="sourceLineNo">128</span><a name="line.128"></a>
+<span class="sourceLineNo">129</span>    // enable table and insert more data<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    admin.enableTable(tableName);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    SnapshotTestingUtils.loadData(TEST_UTIL, tableName, numRowsToLoad(), FAMILY);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    try (Table table = TEST_UTIL.getConnection().getTable(tableName)) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      snapshot1Rows = countRows(table);<a name="line.133"></a>
+<span class="sourceLineNo">134</span>    }<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    admin.disableTable(tableName);<a name="line.135"></a>
+<span class="sourceLineNo">136</span><a name="line.136"></a>
+<span class="sourceLineNo">137</span>    // take a snapshot of the updated table<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    admin.snapshot(snapshotName1, tableName);<a name="line.138"></a>
+<span class="sourceLineNo">139</span><a name="line.139"></a>
+<span class="sourceLineNo">140</span>    // re-enable table<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    admin.enableTable(tableName);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  }<a name="line.142"></a>
+<span class="sourceLineNo">143</span><a name="line.143"></a>
+<span class="sourceLineNo">144</span>  protected int getNumReplicas() {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    return 1;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  }<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>  protected void verifyRowCount(final HBaseTestingUtility util, final TableName tableName,<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      long expectedRows) throws IOException {<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    SnapshotTestingUtils.verifyRowCount(util, tableName, expectedRows);<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  }<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>  @After<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  public void tearDown() throws Exception {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    if (admin.tableExists(tableName)) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      TEST_UTIL.deleteTable(tableName);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    }<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    SnapshotTestingUtils.deleteAllSnapshots(admin);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    SnapshotTestingUtils.deleteArchiveDirectory(TEST_UTIL);<a name="line.159"></a>
+<span class="sourceLineNo">160</span>  }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>}<a name="line.161"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html
deleted file mode 100644
index 6e66d20..0000000
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html
+++ /dev/null
@@ -1,401 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<title>Source code</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-</head>
-<body>
-<div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
-<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
-<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
-<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
-<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
-<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
-<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
-<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
-<span class="sourceLineNo">009</span> *<a name="line.9"></a>
-<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
-<span class="sourceLineNo">011</span> *<a name="line.11"></a>
-<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
-<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
-<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
-<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
-<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
-<span class="sourceLineNo">017</span> */<a name="line.17"></a>
-<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
-<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.junit.Assert.assertEquals;<a name="line.20"></a>
-<span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.util.List;<a name="line.23"></a>
-<span class="sourceLineNo">024</span><a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HConstants;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.NamespaceNotFoundException;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.TableName;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.master.RegionState;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.master.snapshot.SnapshotManager;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.snapshot.SnapshotDoesNotExistException;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.junit.After;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.junit.AfterClass;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.junit.Before;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.junit.BeforeClass;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.junit.ClassRule;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.junit.Rule;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.Test;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.junit.experimental.categories.Category;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.junit.rules.TestName;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.slf4j.Logger;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.slf4j.LoggerFactory;<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>/**<a name="line.51"></a>
-<span class="sourceLineNo">052</span> * Test clone snapshots from the client<a name="line.52"></a>
-<span class="sourceLineNo">053</span> */<a name="line.53"></a>
-<span class="sourceLineNo">054</span>@Category({LargeTests.class, ClientTests.class})<a name="line.54"></a>
-<span class="sourceLineNo">055</span>public class TestCloneSnapshotFromClient {<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  @ClassRule<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      HBaseClassTestRule.forClass(TestCloneSnapshotFromClient.class);<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  private static final Logger LOG = LoggerFactory.getLogger(TestCloneSnapshotFromClient.class);<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  protected final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  protected final byte[] FAMILY = Bytes.toBytes("cf");<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span>  protected byte[] emptySnapshot;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  protected byte[] snapshotName0;<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  protected byte[] snapshotName1;<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  protected byte[] snapshotName2;<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  protected TableName tableName;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  protected int snapshot0Rows;<a name="line.72"></a>
-<span class="sourceLineNo">073</span>  protected int snapshot1Rows;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  protected Admin admin;<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>  @Rule<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  public TestName name = new TestName();<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  protected static void setupConfiguration() {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    TEST_UTIL.getConfiguration().setBoolean(SnapshotManager.HBASE_SNAPSHOT_ENABLED, true);<a name="line.80"></a>
-<span class="sourceLineNo">081</span>    TEST_UTIL.getConfiguration().setInt("hbase.hstore.compactionThreshold", 10);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 6);<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    TEST_UTIL.getConfiguration().setBoolean(<a name="line.85"></a>
-<span class="sourceLineNo">086</span>        "hbase.master.enabletable.roundrobin", true);<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  }<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  @BeforeClass<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  public static void setUpBeforeClass() throws Exception {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    setupConfiguration();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    TEST_UTIL.startMiniCluster(3);<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>  @AfterClass<a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public static void tearDownAfterClass() throws Exception {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    TEST_UTIL.shutdownMiniCluster();<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>  /**<a name="line.100"></a>
-<span class="sourceLineNo">101</span>   * Initialize the tests with a table filled with some data<a name="line.101"></a>
-<span class="sourceLineNo">102</span>   * and two snapshots (snapshotName0, snapshotName1) of different states.<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * The tableName, snapshotNames and the number of rows in the snapshot are initialized.<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   */<a name="line.104"></a>
-<span class="sourceLineNo">105</span>  @Before<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  public void setup() throws Exception {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    this.admin = TEST_UTIL.getAdmin();<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>    long tid = System.currentTimeMillis();<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    tableName = TableName.valueOf(name.getMethodName() + tid);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    emptySnapshot = Bytes.toBytes("emptySnaptb-" + tid);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    snapshotName0 = Bytes.toBytes("snaptb0-" + tid);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    snapshotName1 = Bytes.toBytes("snaptb1-" + tid);<a name="line.113"></a>
-<span class="sourceLineNo">114</span>    snapshotName2 = Bytes.toBytes("snaptb2-" + tid);<a name="line.114"></a>
-<span class="sourceLineNo">115</span><a name="line.115"></a>
-<span class="sourceLineNo">116</span>    createTableAndSnapshots();<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>  protected void createTableAndSnapshots() throws Exception {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    // create Table and disable it<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    SnapshotTestingUtils.createTable(TEST_UTIL, tableName, getNumReplicas(), FAMILY);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    admin.disableTable(tableName);<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>    // take an empty snapshot<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    admin.snapshot(emptySnapshot, tableName);<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>    // enable table and insert data<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    admin.enableTable(tableName);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    SnapshotTestingUtils.loadData(TEST_UTIL, tableName, 500, FAMILY);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    try (Table table = TEST_UTIL.getConnection().getTable(tableName)){<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      snapshot0Rows = TEST_UTIL.countRows(table);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    }<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    admin.disableTable(tableName);<a name="line.133"></a>
-<span class="sourceLineNo">134</span><a name="line.134"></a>
-<span class="sourceLineNo">135</span>    // take a snapshot<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    admin.snapshot(snapshotName0, tableName);<a name="line.136"></a>
-<span class="sourceLineNo">137</span><a name="line.137"></a>
-<span class="sourceLineNo">138</span>    // enable table and insert more data<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    admin.enableTable(tableName);<a name="line.139"></a>
-<span class="sourceLineNo">140</span>    SnapshotTestingUtils.loadData(TEST_UTIL, tableName, 500, FAMILY);<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    try (Table table = TEST_UTIL.getConnection().getTable(tableName)){<a name="line.141"></a>
-<span class="sourceLineNo">142</span>      snapshot1Rows = TEST_UTIL.countRows(table);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    }<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    admin.disableTable(tableName);<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>    // take a snapshot of the updated table<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    admin.snapshot(snapshotName1, tableName);<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>    // re-enable table<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    admin.enableTable(tableName);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>  }<a name="line.151"></a>
-<span class="sourceLineNo">152</span><a name="line.152"></a>
-<span class="sourceLineNo">153</span>  protected int getNumReplicas() {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    return 1;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  }<a name="line.155"></a>
-<span class="sourceLineNo">156</span><a name="line.156"></a>
-<span class="sourceLineNo">157</span>  @After<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  public void tearDown() throws Exception {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    if (admin.tableExists(tableName)) {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      TEST_UTIL.deleteTable(tableName);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    SnapshotTestingUtils.deleteAllSnapshots(admin);<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    SnapshotTestingUtils.deleteArchiveDirectory(TEST_UTIL);<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>  @Test(expected=SnapshotDoesNotExistException.class)<a name="line.166"></a>
-<span class="sourceLineNo">167</span>  public void testCloneNonExistentSnapshot() throws IOException, InterruptedException {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    String snapshotName = "random-snapshot-" + System.currentTimeMillis();<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    final TableName tableName = TableName.valueOf(name.getMethodName() + "-"<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      + System.currentTimeMillis());<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    admin.cloneSnapshot(snapshotName, tableName);<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  }<a name="line.172"></a>
-<span class="sourceLineNo">173</span><a name="line.173"></a>
-<span class="sourceLineNo">174</span>  @Test(expected = NamespaceNotFoundException.class)<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public void testCloneOnMissingNamespace() throws IOException, InterruptedException {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    final TableName clonedTableName = TableName.valueOf("unknownNS:" + name.getMethodName());<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    admin.cloneSnapshot(snapshotName1, clonedTableName);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  @Test<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  public void testCloneSnapshot() throws IOException, InterruptedException {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    final TableName clonedTableName = TableName.valueOf(name.getMethodName() + "-"<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      + System.currentTimeMillis());<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    testCloneSnapshot(clonedTableName, snapshotName0, snapshot0Rows);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    testCloneSnapshot(clonedTableName, snapshotName1, snapshot1Rows);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    testCloneSnapshot(clonedTableName, emptySnapshot, 0);<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  }<a name="line.187"></a>
-<span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  private void testCloneSnapshot(final TableName tableName, final byte[] snapshotName,<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      int snapshotRows) throws IOException, InterruptedException {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    // create a new table from snapshot<a name="line.191"></a>
-<span class="sourceLineNo">192</span>    admin.cloneSnapshot(snapshotName, tableName);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    verifyRowCount(TEST_UTIL, tableName, snapshotRows);<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>    verifyReplicasCameOnline(tableName);<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    TEST_UTIL.deleteTable(tableName);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>  }<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  protected void verifyReplicasCameOnline(TableName tableName) throws IOException {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>    SnapshotTestingUtils.verifyReplicasCameOnline(tableName, admin, getNumReplicas());<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>  @Test<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  public void testCloneSnapshotCrossNamespace() throws IOException, InterruptedException {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    String nsName = "testCloneSnapshotCrossNamespace";<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    admin.createNamespace(NamespaceDescriptor.create(nsName).build());<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    final TableName clonedTableName = TableName.valueOf(nsName, name.getMethodName()<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      + "-" + System.currentTimeMillis());<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    testCloneSnapshot(clonedTableName, snapshotName0, snapshot0Rows);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    testCloneSnapshot(clonedTableName, snapshotName1, snapshot1Rows);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    testCloneSnapshot(clonedTableName, emptySnapshot, 0);<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>   * Verify that tables created from the snapshot are still alive after source table deletion.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  @Test<a name="line.217"></a>
-<span class="sourceLineNo">218</span>  public void testCloneLinksAfterDelete() throws IOException, InterruptedException {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    // Clone a table from the first snapshot<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    final TableName clonedTableName = TableName.valueOf(name.getMethodName() + "1-"<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      + System.currentTimeMillis());<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    admin.cloneSnapshot(snapshotName0, clonedTableName);<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    verifyRowCount(TEST_UTIL, clonedTableName, snapshot0Rows);<a name="line.223"></a>
-<span class="sourceLineNo">224</span><a name="line.224"></a>
-<span class="sourceLineNo">225</span>    // Take a snapshot of this cloned table.<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    admin.disableTable(clonedTableName);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    admin.snapshot(snapshotName2, clonedTableName);<a name="line.227"></a>
-<span class="sourceLineNo">228</span><a name="line.228"></a>
-<span class="sourceLineNo">229</span>    // Clone the snapshot of the cloned table<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    final TableName clonedTableName2 = TableName.valueOf(name.getMethodName() + "2-"<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      + System.currentTimeMillis());<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    admin.cloneSnapshot(snapshotName2, clonedTableName2);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    verifyRowCount(TEST_UTIL, clonedTableName2, snapshot0Rows);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    admin.disableTable(clonedTableName2);<a name="line.234"></a>
-<span class="sourceLineNo">235</span><a name="line.235"></a>
-<span class="sourceLineNo">236</span>    // Remove the original table<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    TEST_UTIL.deleteTable(tableName);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    waitCleanerRun();<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>    // Verify the first cloned table<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    admin.enableTable(clonedTableName);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    verifyRowCount(TEST_UTIL, clonedTableName, snapshot0Rows);<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    // Verify the second cloned table<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    admin.enableTable(clonedTableName2);<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    verifyRowCount(TEST_UTIL, clonedTableName2, snapshot0Rows);<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    admin.disableTable(clonedTableName2);<a name="line.247"></a>
-<span class="sourceLineNo">248</span><a name="line.248"></a>
-<span class="sourceLineNo">249</span>    // Delete the first cloned table<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    TEST_UTIL.deleteTable(clonedTableName);<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    waitCleanerRun();<a name="line.251"></a>
-<span class="sourceLineNo">252</span><a name="line.252"></a>
-<span class="sourceLineNo">253</span>    // Verify the second cloned table<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    admin.enableTable(clonedTableName2);<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    verifyRowCount(TEST_UTIL, clonedTableName2, snapshot0Rows);<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    // Clone a new table from cloned<a name="line.257"></a>
-<span class="sourceLineNo">258</span>    final TableName clonedTableName3 = TableName.valueOf(name.getMethodName() + "3-"<a name="line.258"></a>
-<span class="sourceLineNo">259</span>      + System.currentTimeMillis());<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    admin.cloneSnapshot(snapshotName2, clonedTableName3);<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    verifyRowCount(TEST_UTIL, clonedTableName3, snapshot0Rows);<a name="line.261"></a>
-<span class="sourceLineNo">262</span><a name="line.262"></a>
-<span class="sourceLineNo">263</span>    // Delete the cloned tables<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    TEST_UTIL.deleteTable(clonedTableName2);<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    TEST_UTIL.deleteTable(clonedTableName3);<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    admin.deleteSnapshot(snapshotName2);<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  @Test<a name="line.269"></a>
-<span class="sourceLineNo">270</span>  public void testCloneSnapshotAfterSplittingRegion() throws IOException, InterruptedException {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>    // Turn off the CatalogJanitor<a name="line.271"></a>
-<span class="sourceLineNo">272</span>    admin.catalogJanitorSwitch(false);<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>    try {<a name="line.274"></a>
-<span class="sourceLineNo">275</span>      List&lt;RegionInfo&gt; regionInfos = admin.getRegions(tableName);<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      RegionReplicaUtil.removeNonDefaultRegions(regionInfos);<a name="line.276"></a>
-<span class="sourceLineNo">277</span><a name="line.277"></a>
-<span class="sourceLineNo">278</span>      // Split the first region<a name="line.278"></a>
-<span class="sourceLineNo">279</span>      splitRegion(regionInfos.get(0));<a name="line.279"></a>
-<span class="sourceLineNo">280</span><a name="line.280"></a>
-<span class="sourceLineNo">281</span>      // Take a snapshot<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      admin.snapshot(snapshotName2, tableName);<a name="line.282"></a>
-<span class="sourceLineNo">283</span><a name="line.283"></a>
-<span class="sourceLineNo">284</span>      // Clone the snapshot to another table<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      TableName clonedTableName = TableName.valueOf(name.getMethodName() + "-"<a name="line.285"></a>
-<span class="sourceLineNo">286</span>        + System.currentTimeMillis());<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      admin.cloneSnapshot(snapshotName2, clonedTableName);<a name="line.287"></a>
-<span class="sourceLineNo">288</span>      SnapshotTestingUtils.waitForTableToBeOnline(TEST_UTIL, clonedTableName);<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>      RegionStates regionStates =<a name="line.290"></a>
-<span class="sourceLineNo">291</span>        TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager().getRegionStates();<a name="line.291"></a>
-<span class="sourceLineNo">292</span><a name="line.292"></a>
-<span class="sourceLineNo">293</span>      // The region count of the cloned table should be the same as the one of the original table<a name="line.293"></a>
-<span class="sourceLineNo">294</span>      int openRegionCountOfOriginalTable =<a name="line.294"></a>
-<span class="sourceLineNo">295</span>        regionStates.getRegionByStateOfTable(tableName).get(RegionState.State.OPEN).size();<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      int openRegionCountOfClonedTable =<a name="line.296"></a>
-<span class="sourceLineNo">297</span>        regionStates.getRegionByStateOfTable(clonedTableName).get(RegionState.State.OPEN).size();<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      assertEquals(openRegionCountOfOriginalTable, openRegionCountOfClonedTable);<a name="line.298"></a>
-<span class="sourceLineNo">299</span><a name="line.299"></a>
-<span class="sourceLineNo">300</span>      int splitRegionCountOfOriginalTable =<a name="line.300"></a>
-<span class="sourceLineNo">301</span>        regionStates.getRegionByStateOfTable(tableName).get(RegionState.State.SPLIT).size();<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      int splitRegionCountOfClonedTable =<a name="line.302"></a>
-<span class="sourceLineNo">303</span>        regionStates.getRegionByStateOfTable(clonedTableName).get(RegionState.State.SPLIT).size();<a name="line.303"></a>
-<span class="sourceLineNo">304</span>      assertEquals(splitRegionCountOfOriginalTable, splitRegionCountOfClonedTable);<a name="line.304"></a>
-<span class="sourceLineNo">305</span><a name="line.305"></a>
-<span class="sourceLineNo">306</span>      TEST_UTIL.deleteTable(clonedTableName);<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    } finally {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      admin.catalogJanitorSwitch(true);<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    }<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  }<a name="line.310"></a>
-<span class="sourceLineNo">311</span><a name="line.311"></a>
-<span class="sourceLineNo">312</span>  // ==========================================================================<a name="line.312"></a>
-<span class="sourceLineNo">313</span>  //  Helpers<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 waitCleanerRun() throws InterruptedException {<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    TEST_UTIL.getMiniHBaseCluster().getMaster().getHFileCleaner().choreForTesting();<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>  protected void verifyRowCount(final HBaseTestingUtility util, final TableName tableName,<a name="line.320"></a>
-<span class="sourceLineNo">321</span>      long expectedRows) throws IOException {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    SnapshotTestingUtils.verifyRowCount(util, tableName, expectedRows);<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>  protected void splitRegion(final RegionInfo regionInfo) throws IOException {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    byte[][] splitPoints = Bytes.split(regionInfo.getStartKey(), regionInfo.getEndKey(), 1);<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    admin.split(regionInfo.getTable(), splitPoints[1]);<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>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html
new file mode 100644
index 0000000..7902821
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Arrays;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.List;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.junit.ClassRule;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.junit.experimental.categories.Category;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.junit.runner.RunWith;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.junit.runners.Parameterized;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.runners.Parameterized.Parameter;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.runners.Parameterized.Parameters;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>@RunWith(Parameterized.class)<a name="line.32"></a>
+<span class="sourceLineNo">033</span>@Category({ LargeTests.class, ClientTests.class })<a name="line.33"></a>
+<span class="sourceLineNo">034</span>public class TestCloneSnapshotFromClientAfterSplittingRegion<a name="line.34"></a>
+<span class="sourceLineNo">035</span>    extends CloneSnapshotFromClientAfterSplittingRegionTestBase {<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>  @ClassRule<a name="line.37"></a>
+<span class="sourceLineNo">038</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    HBaseClassTestRule.forClass(TestCloneSnapshotFromClientAfterSplittingRegion.class);<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  @Parameter<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  public int numReplicas;<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  @Parameters(name = "{index}: regionReplication={0}")<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  public static List&lt;Object[]&gt; params() {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    return Arrays.asList(new Object[] { 1 }, new Object[] { 3 });<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>  @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  protected int getNumReplicas() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    return numReplicas;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  }<a name="line.52"></a>
+<span class="sourceLineNo">053</span>}<a name="line.53"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html
new file mode 100644
index 0000000..88de3a3
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html
@@ -0,0 +1,126 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Arrays;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.List;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.junit.ClassRule;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.junit.experimental.categories.Category;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.junit.runner.RunWith;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.junit.runners.Parameterized;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.runners.Parameterized.Parameter;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.runners.Parameterized.Parameters;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>@RunWith(Parameterized.class)<a name="line.32"></a>
+<span class="sourceLineNo">033</span>@Category({ LargeTests.class, ClientTests.class })<a name="line.33"></a>
+<span class="sourceLineNo">034</span>public class TestCloneSnapshotFromClientCloneLinksAfterDelete<a name="line.34"></a>
+<span class="sourceLineNo">035</span>    extends CloneSnapshotFromClientCloneLinksAfterDeleteTestBase {<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>  @ClassRule<a name="line.37"></a>
+<span class="sourceLineNo">038</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    HBaseClassTestRule.forClass(TestCloneSnapshotFromClientCloneLinksAfterDelete.class);<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  @Parameter<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  public int numReplicas;<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  @Parameters(name = "{index}: regionReplication={0}")<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  public static List&lt;Object[]&gt; params() {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    return Arrays.asList(new Object[] { 1 }, new Object[] { 3 });<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  }<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>  @Override<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  protected int getNumReplicas() {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    return numReplicas;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>}<a name="line.54"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html
new file mode 100644
index 0000000..550e952
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html
@@ -0,0 +1,124 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Arrays;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.List;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.junit.ClassRule;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.junit.experimental.categories.Category;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.junit.runner.RunWith;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.junit.runners.Parameterized;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.runners.Parameterized.Parameter;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.runners.Parameterized.Parameters;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>@RunWith(Parameterized.class)<a name="line.32"></a>
+<span class="sourceLineNo">033</span>@Category({ LargeTests.class, ClientTests.class })<a name="line.33"></a>
+<span class="sourceLineNo">034</span>public class TestCloneSnapshotFromClientError extends CloneSnapshotFromClientErrorTestBase {<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  @ClassRule<a name="line.36"></a>
+<span class="sourceLineNo">037</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    HBaseClassTestRule.forClass(TestCloneSnapshotFromClientError.class);<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  @Parameter<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public int numReplicas;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  @Parameters(name = "{index}: regionReplication={0}")<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  public static List&lt;Object[]&gt; params() {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    return Arrays.asList(new Object[] { 1 }, new Object[] { 3 });<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>  @Override<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  protected int getNumReplicas() {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    return numReplicas;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>}<a name="line.52"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html
new file mode 100644
index 0000000..5399a19
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html
@@ -0,0 +1,124 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.util.Arrays;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.util.List;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.junit.ClassRule;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.junit.experimental.categories.Category;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.junit.runner.RunWith;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.junit.runners.Parameterized;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.runners.Parameterized.Parameter;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.runners.Parameterized.Parameters;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>@RunWith(Parameterized.class)<a name="line.32"></a>
+<span class="sourceLineNo">033</span>@Category({ LargeTests.class, ClientTests.class })<a name="line.33"></a>
+<span class="sourceLineNo">034</span>public class TestCloneSnapshotFromClientNormal extends CloneSnapshotFromClientNormalTestBase {<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  @ClassRule<a name="line.36"></a>
+<span class="sourceLineNo">037</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    HBaseClassTestRule.forClass(TestCloneSnapshotFromClientNormal.class);<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  @Parameter<a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public int numReplicas;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>  @Parameters(name = "{index}: regionReplication={0}")<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  public static List&lt;Object[]&gt; params() {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    return Arrays.asList(new Object[] { 1 }, new Object[] { 3 });<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>  @Override<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  protected int getNumReplicas() {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    return numReplicas;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>}<a name="line.52"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html
deleted file mode 100644
index 7b4473e..0000000
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html
+++ /dev/null
@@ -1,110 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<title>Source code</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-</head>
-<body>
-<div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
-<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
-<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
-<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
-<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
-<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
-<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
-<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
-<span class="sourceLineNo">009</span> *<a name="line.9"></a>
-<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
-<span class="sourceLineNo">011</span> *<a name="line.11"></a>
-<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
-<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
-<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
-<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
-<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
-<span class="sourceLineNo">017</span> */<a name="line.17"></a>
-<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
-<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.junit.ClassRule;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.junit.experimental.categories.Category;<a name="line.24"></a>
-<span class="sourceLineNo">025</span><a name="line.25"></a>
-<span class="sourceLineNo">026</span>@Category({LargeTests.class, ClientTests.class})<a name="line.26"></a>
-<span class="sourceLineNo">027</span>public class TestCloneSnapshotFromClientWithRegionReplicas extends<a name="line.27"></a>
-<span class="sourceLineNo">028</span>    TestCloneSnapshotFromClient {<a name="line.28"></a>
-<span class="sourceLineNo">029</span><a name="line.29"></a>
-<span class="sourceLineNo">030</span>  @ClassRule<a name="line.30"></a>
-<span class="sourceLineNo">031</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.31"></a>
-<span class="sourceLineNo">032</span>      HBaseClassTestRule.forClass(TestCloneSnapshotFromClientWithRegionReplicas.class);<a name="line.32"></a>
-<span class="sourceLineNo">033</span><a name="line.33"></a>
-<span class="sourceLineNo">034</span>  @Override<a name="line.34"></a>
-<span class="sourceLineNo">035</span>  protected int getNumReplicas() {<a name="line.35"></a>
-<span class="sourceLineNo">036</span>    return 3;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>  }<a name="line.37"></a>
-<span class="sourceLineNo">038</span>}<a name="line.38"></a>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</div>
-</body>
-</html>


[02/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html
new file mode 100644
index 0000000..3da7419
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html
@@ -0,0 +1,146 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.TableName;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.snapshot.MobSnapshotTestingUtils;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.BeforeClass;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.junit.ClassRule;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.junit.experimental.categories.Category;<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>@Category({ LargeTests.class, ClientTests.class })<a name="line.34"></a>
+<span class="sourceLineNo">035</span>public class TestMobCloneSnapshotFromClientNormal extends CloneSnapshotFromClientNormalTestBase {<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>  @ClassRule<a name="line.37"></a>
+<span class="sourceLineNo">038</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    HBaseClassTestRule.forClass(TestMobCloneSnapshotFromClientNormal.class);<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  protected static void setupConfiguration() {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    CloneSnapshotFromClientTestBase.setupConfiguration();<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    TEST_UTIL.getConfiguration().setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, 0);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    TEST_UTIL.getConfiguration().setInt(MobConstants.MOB_FILE_CACHE_SIZE_KEY, 0);<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  }<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>  @BeforeClass<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  public static void setUpBeforeClass() throws Exception {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    setupConfiguration();<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    TEST_UTIL.startMiniCluster(3);<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  }<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  @Override<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  protected void createTable() throws IOException, InterruptedException {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    MobSnapshotTestingUtils.createMobTable(TEST_UTIL, tableName,<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      SnapshotTestingUtils.getSplitKeys(), getNumReplicas(), FAMILY);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  }<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>  @Override<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  protected int numRowsToLoad() {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    return 20;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  @Override<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  protected int countRows(Table table) throws IOException {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    return MobSnapshotTestingUtils.countMobRows(table);<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 void verifyRowCount(final HBaseTestingUtility util, final TableName tableName,<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      long expectedRows) throws IOException {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    MobSnapshotTestingUtils.verifyMobRowCount(util, tableName, expectedRows);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
+<span class="sourceLineNo">074</span>}<a name="line.74"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestMaster.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestMaster.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestMaster.html
index 387de47..0b93098 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestMaster.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/TestMaster.html
@@ -28,251 +28,258 @@
 <span class="sourceLineNo">020</span>import static org.junit.Assert.assertArrayEquals;<a name="line.20"></a>
 <span class="sourceLineNo">021</span>import static org.junit.Assert.assertEquals;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import static org.junit.Assert.assertFalse;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import static org.junit.Assert.assertTrue;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import static org.junit.Assert.fail;<a name="line.24"></a>
-<span class="sourceLineNo">025</span><a name="line.25"></a>
-<span class="sourceLineNo">026</span>import java.io.IOException;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import java.util.List;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import java.util.Map;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.conf.Configuration;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.fs.FileSystem;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.fs.Path;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HConstants;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.MiniHBaseCluster;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.PleaseHoldException;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.ServerName;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.TableName;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.RegionInfoBuilder;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.Table;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.48"></a>
-<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.49"></a>
-<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.util.HBaseFsck;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>import org.apache.hadoop.util.StringUtils;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>import org.junit.AfterClass;<a name="line.55"></a>
-<span class="sourceLineNo">056</span>import org.junit.BeforeClass;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>import org.junit.ClassRule;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>import org.junit.Rule;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>import org.junit.Test;<a name="line.59"></a>
-<span class="sourceLineNo">060</span>import org.junit.experimental.categories.Category;<a name="line.60"></a>
-<span class="sourceLineNo">061</span>import org.junit.rules.TestName;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>import org.slf4j.Logger;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>import org.slf4j.LoggerFactory;<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span>@Category({MasterTests.class, MediumTests.class})<a name="line.67"></a>
-<span class="sourceLineNo">068</span>public class TestMaster {<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>  @ClassRule<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.71"></a>
-<span class="sourceLineNo">072</span>      HBaseClassTestRule.forClass(TestMaster.class);<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  private static final Logger LOG = LoggerFactory.getLogger(TestMaster.class);<a name="line.75"></a>
-<span class="sourceLineNo">076</span>  private static final TableName TABLENAME =<a name="line.76"></a>
-<span class="sourceLineNo">077</span>      TableName.valueOf("TestMaster");<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  private static final byte[] FAMILYNAME = Bytes.toBytes("fam");<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  private static Admin admin;<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>  @Rule<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  public TestName name = new TestName();<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>  @BeforeClass<a name="line.84"></a>
-<span class="sourceLineNo">085</span>  public static void beforeAllTests() throws Exception {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    // we will retry operations when PleaseHoldException is thrown<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 3);<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    // Start a cluster of two regionservers.<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    TEST_UTIL.startMiniCluster(2);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    admin = TEST_UTIL.getAdmin();<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>  @AfterClass<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  public static void afterAllTests() throws Exception {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    TEST_UTIL.shutdownMiniCluster();<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>  @Test<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  @SuppressWarnings("deprecation")<a name="line.99"></a>
-<span class="sourceLineNo">100</span>  public void testMasterOpsWhileSplitting() throws Exception {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    MiniHBaseCluster cluster = TEST_UTIL.getHBaseCluster();<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    HMaster m = cluster.getMaster();<a name="line.102"></a>
-<span class="sourceLineNo">103</span><a name="line.103"></a>
-<span class="sourceLineNo">104</span>    try (Table ht = TEST_UTIL.createTable(TABLENAME, FAMILYNAME)) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>      assertTrue(m.getTableStateManager().isTableState(TABLENAME, TableState.State.ENABLED));<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      TEST_UTIL.loadTable(ht, FAMILYNAME, false);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>    List&lt;Pair&lt;RegionInfo, ServerName&gt;&gt; tableRegions = MetaTableAccessor.getTableRegionsAndLocations(<a name="line.109"></a>
-<span class="sourceLineNo">110</span>        m.getConnection(), TABLENAME);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    LOG.info("Regions after load: " + Joiner.on(',').join(tableRegions));<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    assertEquals(1, tableRegions.size());<a name="line.112"></a>
-<span class="sourceLineNo">113</span>    assertArrayEquals(HConstants.EMPTY_START_ROW,<a name="line.113"></a>
-<span class="sourceLineNo">114</span>        tableRegions.get(0).getFirst().getStartKey());<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    assertArrayEquals(HConstants.EMPTY_END_ROW,<a name="line.115"></a>
-<span class="sourceLineNo">116</span>        tableRegions.get(0).getFirst().getEndKey());<a name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    // Now trigger a split and stop when the split is in progress<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    LOG.info("Splitting table");<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    TEST_UTIL.getAdmin().split(TABLENAME);<a name="line.120"></a>
-<span class="sourceLineNo">121</span><a name="line.121"></a>
-<span class="sourceLineNo">122</span>    LOG.info("Making sure we can call getTableRegions while opening");<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    while (tableRegions.size() &lt; 3) {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>      tableRegions = MetaTableAccessor.getTableRegionsAndLocations(m.getConnection(),<a name="line.124"></a>
-<span class="sourceLineNo">125</span>          TABLENAME, false);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      Thread.sleep(100);<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    }<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    LOG.info("Regions: " + Joiner.on(',').join(tableRegions));<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    // We have three regions because one is split-in-progress<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    assertEquals(3, tableRegions.size());<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    LOG.info("Making sure we can call getTableRegionClosest while opening");<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    Pair&lt;RegionInfo, ServerName&gt; pair =<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        m.getTableRegionForRow(TABLENAME, Bytes.toBytes("cde"));<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    LOG.info("Result is: " + pair);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    Pair&lt;RegionInfo, ServerName&gt; tableRegionFromName =<a name="line.135"></a>
-<span class="sourceLineNo">136</span>        MetaTableAccessor.getRegion(m.getConnection(),<a name="line.136"></a>
-<span class="sourceLineNo">137</span>          pair.getFirst().getRegionName());<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    assertTrue(RegionInfo.COMPARATOR.compare(tableRegionFromName.getFirst(), pair.getFirst()) == 0);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>  @Test<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  public void testMoveRegionWhenNotInitialized() {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>    MiniHBaseCluster cluster = TEST_UTIL.getHBaseCluster();<a name="line.143"></a>
-<span class="sourceLineNo">144</span>    HMaster m = cluster.getMaster();<a name="line.144"></a>
-<span class="sourceLineNo">145</span>    try {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      m.setInitialized(false); // fake it, set back later<a name="line.146"></a>
-<span class="sourceLineNo">147</span>      RegionInfo meta = RegionInfoBuilder.FIRST_META_REGIONINFO;<a name="line.147"></a>
-<span class="sourceLineNo">148</span>      m.move(meta.getEncodedNameAsBytes(), null);<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      fail("Region should not be moved since master is not initialized");<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    } catch (IOException ioe) {<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      assertTrue(ioe instanceof PleaseHoldException);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    } finally {<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      m.setInitialized(true);<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><a name="line.156"></a>
-<span class="sourceLineNo">157</span>  @Test<a name="line.157"></a>
-<span class="sourceLineNo">158</span>  public void testMoveThrowsUnknownRegionException() throws IOException {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    HTableDescriptor htd = new HTableDescriptor(tableName);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    HColumnDescriptor hcd = new HColumnDescriptor("value");<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    htd.addFamily(hcd);<a name="line.162"></a>
-<span class="sourceLineNo">163</span><a name="line.163"></a>
-<span class="sourceLineNo">164</span>    admin.createTable(htd, null);<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    try {<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      RegionInfo hri = RegionInfoBuilder.newBuilder(tableName)<a name="line.166"></a>
-<span class="sourceLineNo">167</span>          .setStartKey(Bytes.toBytes("A"))<a name="line.167"></a>
-<span class="sourceLineNo">168</span>          .setEndKey(Bytes.toBytes("Z"))<a name="line.168"></a>
-<span class="sourceLineNo">169</span>          .build();<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      admin.move(hri.getEncodedNameAsBytes(), null);<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      fail("Region should not be moved since it is fake");<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    } catch (IOException ioe) {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      assertTrue(ioe instanceof UnknownRegionException);<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    } finally {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      TEST_UTIL.deleteTable(tableName);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  }<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  @Test<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  public void testMoveThrowsPleaseHoldException() throws IOException {<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    HMaster master = TEST_UTIL.getMiniHBaseCluster().getMaster();<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    HTableDescriptor htd = new HTableDescriptor(tableName);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    HColumnDescriptor hcd = new HColumnDescriptor("value");<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    htd.addFamily(hcd);<a name="line.185"></a>
-<span class="sourceLineNo">186</span><a name="line.186"></a>
-<span class="sourceLineNo">187</span>    admin.createTable(htd, null);<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    try {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>      List&lt;RegionInfo&gt; tableRegions = admin.getRegions(tableName);<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>      master.setInitialized(false); // fake it, set back later<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      admin.move(tableRegions.get(0).getEncodedNameAsBytes(), null);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>      fail("Region should not be moved since master is not initialized");<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    } catch (IOException ioe) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      assertTrue(StringUtils.stringifyException(ioe).contains("PleaseHoldException"));<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    } finally {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      master.setInitialized(true);<a name="line.197"></a>
-<span class="sourceLineNo">198</span>      TEST_UTIL.deleteTable(tableName);<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><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  @Test<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  public void testFlushedSequenceIdPersistLoad() throws Exception {<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    Configuration conf = TEST_UTIL.getConfiguration();<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    int msgInterval = conf.getInt("hbase.regionserver.msginterval", 100);<a name="line.205"></a>
-<span class="sourceLineNo">206</span>    // insert some data into META<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    TableName tableName = TableName.valueOf("testFlushSeqId");<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    desc.addFamily(new HColumnDescriptor(Bytes.toBytes("cf")));<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    Table table = TEST_UTIL.createTable(desc, null);<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    // flush META region<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    TEST_UTIL.flush(TableName.META_TABLE_NAME);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    // wait for regionserver report<a name="line.213"></a>
-<span class="sourceLineNo">214</span>    Threads.sleep(msgInterval * 2);<a name="line.214"></a>
-<span class="sourceLineNo">215</span>    // record flush seqid before cluster shutdown<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    Map&lt;byte[], Long&gt; regionMapBefore =<a name="line.216"></a>
-<span class="sourceLineNo">217</span>        TEST_UTIL.getHBaseCluster().getMaster().getServerManager()<a name="line.217"></a>
-<span class="sourceLineNo">218</span>            .getFlushedSequenceIdByRegion();<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    // restart hbase cluster which will cause flushed sequence id persist and reload<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    TEST_UTIL.getMiniHBaseCluster().shutdown();<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    TEST_UTIL.restartHBaseCluster(2);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>    TEST_UTIL.waitUntilNoRegionsInTransition();<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    // check equality after reloading flushed sequence id map<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    Map&lt;byte[], Long&gt; regionMapAfter =<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        TEST_UTIL.getHBaseCluster().getMaster().getServerManager()<a name="line.225"></a>
-<span class="sourceLineNo">226</span>            .getFlushedSequenceIdByRegion();<a name="line.226"></a>
-<span class="sourceLineNo">227</span>    assertTrue(regionMapBefore.equals(regionMapAfter));<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  }<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>  @Test<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  public void testBlockingHbkc1WithLockFile() throws IOException {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    // This is how the patch to the lock file is created inside in HBaseFsck. Too hard to use its<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    // actual method without disturbing HBaseFsck... Do the below mimic instead.<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    Path hbckLockPath = new Path(HBaseFsck.getTmpDir(TEST_UTIL.getConfiguration()),<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        HBaseFsck.HBCK_LOCK_FILE);<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    FileSystem fs = TEST_UTIL.getTestFileSystem();<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    assertTrue(fs.exists(hbckLockPath));<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    TEST_UTIL.getMiniHBaseCluster().<a name="line.238"></a>
-<span class="sourceLineNo">239</span>        killMaster(TEST_UTIL.getMiniHBaseCluster().getMaster().getServerName());<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    assertTrue(fs.exists(hbckLockPath));<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    TEST_UTIL.getMiniHBaseCluster().startMaster();<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    TEST_UTIL.waitFor(30000, () -&gt; TEST_UTIL.getMiniHBaseCluster().getMaster() != null &amp;&amp;<a name="line.242"></a>
-<span class="sourceLineNo">243</span>        TEST_UTIL.getMiniHBaseCluster().getMaster().isInitialized());<a name="line.243"></a>
-<span class="sourceLineNo">244</span>    assertTrue(fs.exists(hbckLockPath));<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    // Start a second Master. Should be fine.<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    TEST_UTIL.getMiniHBaseCluster().startMaster();<a name="line.246"></a>
-<span class="sourceLineNo">247</span>    assertTrue(fs.exists(hbckLockPath));<a name="line.247"></a>
-<span class="sourceLineNo">248</span>    fs.delete(hbckLockPath, true);<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    assertFalse(fs.exists(hbckLockPath));<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    // Kill all Masters.<a name="line.250"></a>
-<span class="sourceLineNo">251</span>    TEST_UTIL.getMiniHBaseCluster().getLiveMasterThreads().stream().<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        map(sn -&gt; sn.getMaster().getServerName()).forEach(sn -&gt; {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>          try {<a name="line.253"></a>
-<span class="sourceLineNo">254</span>            TEST_UTIL.getMiniHBaseCluster().killMaster(sn);<a name="line.254"></a>
-<span class="sourceLineNo">255</span>          } catch (IOException e) {<a name="line.255"></a>
-<span class="sourceLineNo">256</span>            e.printStackTrace();<a name="line.256"></a>
-<span class="sourceLineNo">257</span>          }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        });<a name="line.258"></a>
-<span class="sourceLineNo">259</span>    // Start a new one.<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    TEST_UTIL.getMiniHBaseCluster().startMaster();<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    TEST_UTIL.waitFor(30000, () -&gt; TEST_UTIL.getMiniHBaseCluster().getMaster() != null &amp;&amp;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>        TEST_UTIL.getMiniHBaseCluster().getMaster().isInitialized());<a name="line.262"></a>
-<span class="sourceLineNo">263</span>    // Assert lock gets put in place again.<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    assertTrue(fs.exists(hbckLockPath));<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">023</span>import static org.junit.Assert.assertNull;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import static org.junit.Assert.assertTrue;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import static org.junit.Assert.fail;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>import java.io.IOException;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import java.util.List;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import java.util.Map;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.conf.Configuration;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.fs.FileSystem;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.fs.Path;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.HConstants;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.MetaTableAccessor;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.MiniHBaseCluster;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.PleaseHoldException;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.ServerName;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.TableName;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.apache.hadoop.hbase.UnknownRegionException;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.apache.hadoop.hbase.client.Admin;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.apache.hadoop.hbase.client.RegionInfo;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>import org.apache.hadoop.hbase.client.RegionInfoBuilder;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>import org.apache.hadoop.hbase.client.Table;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>import org.apache.hadoop.hbase.client.TableState;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>import org.apache.hadoop.hbase.testclassification.MasterTests;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>import org.apache.hadoop.hbase.util.HBaseFsck;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>import org.apache.hadoop.hbase.util.Pair;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>import org.apache.hadoop.hbase.util.Threads;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>import org.apache.hadoop.util.StringUtils;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>import org.junit.AfterClass;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>import org.junit.BeforeClass;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>import org.junit.ClassRule;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>import org.junit.Rule;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>import org.junit.Test;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>import org.junit.experimental.categories.Category;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>import org.junit.rules.TestName;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>import org.slf4j.Logger;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>import org.slf4j.LoggerFactory;<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>import org.apache.hbase.thirdparty.com.google.common.base.Joiner;<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>@Category({MasterTests.class, MediumTests.class})<a name="line.68"></a>
+<span class="sourceLineNo">069</span>public class TestMaster {<a name="line.69"></a>
+<span class="sourceLineNo">070</span><a name="line.70"></a>
+<span class="sourceLineNo">071</span>  @ClassRule<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      HBaseClassTestRule.forClass(TestMaster.class);<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>  private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  private static final Logger LOG = LoggerFactory.getLogger(TestMaster.class);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>  private static final TableName TABLENAME =<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      TableName.valueOf("TestMaster");<a name="line.78"></a>
+<span class="sourceLineNo">079</span>  private static final byte[] FAMILYNAME = Bytes.toBytes("fam");<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  private static Admin admin;<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  @Rule<a name="line.82"></a>
+<span class="sourceLineNo">083</span>  public TestName name = new TestName();<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  @BeforeClass<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public static void beforeAllTests() throws Exception {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    // we will retry operations when PleaseHoldException is thrown<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 3);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>    // Start a cluster of two regionservers.<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    TEST_UTIL.startMiniCluster(2);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    admin = TEST_UTIL.getAdmin();<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>  @AfterClass<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public static void afterAllTests() throws Exception {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    TEST_UTIL.shutdownMiniCluster();<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>  @Test<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  @SuppressWarnings("deprecation")<a name="line.100"></a>
+<span class="sourceLineNo">101</span>  public void testMasterOpsWhileSplitting() throws Exception {<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    MiniHBaseCluster cluster = TEST_UTIL.getHBaseCluster();<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    HMaster m = cluster.getMaster();<a name="line.103"></a>
+<span class="sourceLineNo">104</span><a name="line.104"></a>
+<span class="sourceLineNo">105</span>    try (Table ht = TEST_UTIL.createTable(TABLENAME, FAMILYNAME)) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      assertTrue(m.getTableStateManager().isTableState(TABLENAME, TableState.State.ENABLED));<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      TEST_UTIL.loadTable(ht, FAMILYNAME, false);<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>    List&lt;Pair&lt;RegionInfo, ServerName&gt;&gt; tableRegions = MetaTableAccessor.getTableRegionsAndLocations(<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        m.getConnection(), TABLENAME);<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    LOG.info("Regions after load: " + Joiner.on(',').join(tableRegions));<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    assertEquals(1, tableRegions.size());<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    assertArrayEquals(HConstants.EMPTY_START_ROW,<a name="line.114"></a>
+<span class="sourceLineNo">115</span>        tableRegions.get(0).getFirst().getStartKey());<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    assertArrayEquals(HConstants.EMPTY_END_ROW,<a name="line.116"></a>
+<span class="sourceLineNo">117</span>        tableRegions.get(0).getFirst().getEndKey());<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>    // Now trigger a split and stop when the split is in progress<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    LOG.info("Splitting table");<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    TEST_UTIL.getAdmin().split(TABLENAME);<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>    LOG.info("Making sure we can call getTableRegions while opening");<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    while (tableRegions.size() &lt; 3) {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      tableRegions = MetaTableAccessor.getTableRegionsAndLocations(m.getConnection(),<a name="line.125"></a>
+<span class="sourceLineNo">126</span>          TABLENAME, false);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      Thread.sleep(100);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    }<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    LOG.info("Regions: " + Joiner.on(',').join(tableRegions));<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // We have three regions because one is split-in-progress<a name="line.130"></a>
+<span class="sourceLineNo">131</span>    assertEquals(3, tableRegions.size());<a name="line.131"></a>
+<span class="sourceLineNo">132</span>    LOG.info("Making sure we can call getTableRegionClosest while opening");<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    Pair&lt;RegionInfo, ServerName&gt; pair =<a name="line.133"></a>
+<span class="sourceLineNo">134</span>        m.getTableRegionForRow(TABLENAME, Bytes.toBytes("cde"));<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    LOG.info("Result is: " + pair);<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    Pair&lt;RegionInfo, ServerName&gt; tableRegionFromName =<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        MetaTableAccessor.getRegion(m.getConnection(),<a name="line.137"></a>
+<span class="sourceLineNo">138</span>          pair.getFirst().getRegionName());<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    assertTrue(RegionInfo.COMPARATOR.compare(tableRegionFromName.getFirst(), pair.getFirst()) == 0);<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>  @Test<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  public void testMoveRegionWhenNotInitialized() {<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    MiniHBaseCluster cluster = TEST_UTIL.getHBaseCluster();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    HMaster m = cluster.getMaster();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    try {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>      m.setInitialized(false); // fake it, set back later<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      RegionInfo meta = RegionInfoBuilder.FIRST_META_REGIONINFO;<a name="line.148"></a>
+<span class="sourceLineNo">149</span>      m.move(meta.getEncodedNameAsBytes(), null);<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      fail("Region should not be moved since master is not initialized");<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    } catch (IOException ioe) {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>      assertTrue(ioe instanceof PleaseHoldException);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    } finally {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      m.setInitialized(true);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<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>
+<span class="sourceLineNo">158</span>  @Test<a name="line.158"></a>
+<span class="sourceLineNo">159</span>  public void testMoveThrowsUnknownRegionException() throws IOException {<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    HTableDescriptor htd = new HTableDescriptor(tableName);<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    HColumnDescriptor hcd = new HColumnDescriptor("value");<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    htd.addFamily(hcd);<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>    admin.createTable(htd, null);<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    try {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      RegionInfo hri = RegionInfoBuilder.newBuilder(tableName)<a name="line.167"></a>
+<span class="sourceLineNo">168</span>          .setStartKey(Bytes.toBytes("A"))<a name="line.168"></a>
+<span class="sourceLineNo">169</span>          .setEndKey(Bytes.toBytes("Z"))<a name="line.169"></a>
+<span class="sourceLineNo">170</span>          .build();<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      admin.move(hri.getEncodedNameAsBytes(), null);<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      fail("Region should not be moved since it is fake");<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    } catch (IOException ioe) {<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      assertTrue(ioe instanceof UnknownRegionException);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>    } finally {<a name="line.175"></a>
+<span class="sourceLineNo">176</span>      TEST_UTIL.deleteTable(tableName);<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>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>  @Test<a name="line.180"></a>
+<span class="sourceLineNo">181</span>  public void testMoveThrowsPleaseHoldException() throws IOException {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    final TableName tableName = TableName.valueOf(name.getMethodName());<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    HMaster master = TEST_UTIL.getMiniHBaseCluster().getMaster();<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    HTableDescriptor htd = new HTableDescriptor(tableName);<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    HColumnDescriptor hcd = new HColumnDescriptor("value");<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    htd.addFamily(hcd);<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>    admin.createTable(htd, null);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    try {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      List&lt;RegionInfo&gt; tableRegions = admin.getRegions(tableName);<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>      master.setInitialized(false); // fake it, set back later<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      admin.move(tableRegions.get(0).getEncodedNameAsBytes(), null);<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      fail("Region should not be moved since master is not initialized");<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    } catch (IOException ioe) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      assertTrue(StringUtils.stringifyException(ioe).contains("PleaseHoldException"));<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    } finally {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      master.setInitialized(true);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      TEST_UTIL.deleteTable(tableName);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  @Test<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  public void testFlushedSequenceIdPersistLoad() throws Exception {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    Configuration conf = TEST_UTIL.getConfiguration();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    int msgInterval = conf.getInt("hbase.regionserver.msginterval", 100);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    // insert some data into META<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    TableName tableName = TableName.valueOf("testFlushSeqId");<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    HTableDescriptor desc = new HTableDescriptor(tableName);<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    desc.addFamily(new HColumnDescriptor(Bytes.toBytes("cf")));<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    Table table = TEST_UTIL.createTable(desc, null);<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    // flush META region<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    TEST_UTIL.flush(TableName.META_TABLE_NAME);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    // wait for regionserver report<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    Threads.sleep(msgInterval * 2);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>    // record flush seqid before cluster shutdown<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    Map&lt;byte[], Long&gt; regionMapBefore =<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        TEST_UTIL.getHBaseCluster().getMaster().getServerManager()<a name="line.218"></a>
+<span class="sourceLineNo">219</span>            .getFlushedSequenceIdByRegion();<a name="line.219"></a>
+<span class="sourceLineNo">220</span>    // restart hbase cluster which will cause flushed sequence id persist and reload<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    TEST_UTIL.getMiniHBaseCluster().shutdown();<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    TEST_UTIL.restartHBaseCluster(2);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>    TEST_UTIL.waitUntilNoRegionsInTransition();<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    // check equality after reloading flushed sequence id map<a name="line.224"></a>
+<span class="sourceLineNo">225</span>    Map&lt;byte[], Long&gt; regionMapAfter =<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        TEST_UTIL.getHBaseCluster().getMaster().getServerManager()<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            .getFlushedSequenceIdByRegion();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    assertTrue(regionMapBefore.equals(regionMapAfter));<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  }<a name="line.229"></a>
+<span class="sourceLineNo">230</span><a name="line.230"></a>
+<span class="sourceLineNo">231</span>  @Test<a name="line.231"></a>
+<span class="sourceLineNo">232</span>  public void testBlockingHbkc1WithLockFile() throws IOException {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    // This is how the patch to the lock file is created inside in HBaseFsck. Too hard to use its<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    // actual method without disturbing HBaseFsck... Do the below mimic instead.<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    Path hbckLockPath = new Path(HBaseFsck.getTmpDir(TEST_UTIL.getConfiguration()),<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        HBaseFsck.HBCK_LOCK_FILE);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    FileSystem fs = TEST_UTIL.getTestFileSystem();<a name="line.237"></a>
+<span class="sourceLineNo">238</span>    assertTrue(fs.exists(hbckLockPath));<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    TEST_UTIL.getMiniHBaseCluster().<a name="line.239"></a>
+<span class="sourceLineNo">240</span>        killMaster(TEST_UTIL.getMiniHBaseCluster().getMaster().getServerName());<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    assertTrue(fs.exists(hbckLockPath));<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    TEST_UTIL.getMiniHBaseCluster().startMaster();<a name="line.242"></a>
+<span class="sourceLineNo">243</span>    TEST_UTIL.waitFor(30000, () -&gt; TEST_UTIL.getMiniHBaseCluster().getMaster() != null &amp;&amp;<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        TEST_UTIL.getMiniHBaseCluster().getMaster().isInitialized());<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    assertTrue(fs.exists(hbckLockPath));<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    // Start a second Master. Should be fine.<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    TEST_UTIL.getMiniHBaseCluster().startMaster();<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    assertTrue(fs.exists(hbckLockPath));<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    fs.delete(hbckLockPath, true);<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    assertFalse(fs.exists(hbckLockPath));<a name="line.250"></a>
+<span class="sourceLineNo">251</span>    // Kill all Masters.<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    TEST_UTIL.getMiniHBaseCluster().getLiveMasterThreads().stream().<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        map(sn -&gt; sn.getMaster().getServerName()).forEach(sn -&gt; {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>          try {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>            TEST_UTIL.getMiniHBaseCluster().killMaster(sn);<a name="line.255"></a>
+<span class="sourceLineNo">256</span>          } catch (IOException e) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>            e.printStackTrace();<a name="line.257"></a>
+<span class="sourceLineNo">258</span>          }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        });<a name="line.259"></a>
+<span class="sourceLineNo">260</span>    // Start a new one.<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    TEST_UTIL.getMiniHBaseCluster().startMaster();<a name="line.261"></a>
+<span class="sourceLineNo">262</span>    TEST_UTIL.waitFor(30000, () -&gt; TEST_UTIL.getMiniHBaseCluster().getMaster() != null &amp;&amp;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>        TEST_UTIL.getMiniHBaseCluster().getMaster().isInitialized());<a name="line.263"></a>
+<span class="sourceLineNo">264</span>    // Assert lock gets put in place again.<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    assertTrue(fs.exists(hbckLockPath));<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>  @Test<a name="line.268"></a>
+<span class="sourceLineNo">269</span>  public void testMasterBlockCache() {<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    // Master not carry table in default, so no need to instantiate block cache, too.<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    assertNull(TEST_UTIL.getMiniHBaseCluster().getMaster().getCacheConfig().getBlockCache());<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>}<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html
index a699233..0c06fae 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html
@@ -28,23 +28,23 @@
 <span class="sourceLineNo">020</span>import static org.junit.Assert.assertEquals;<a name="line.20"></a>
 <span class="sourceLineNo">021</span><a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">023</span>import org.apache.commons.lang3.StringUtils;<a name="line.23"></a>
 <span class="sourceLineNo">024</span>import org.apache.hadoop.conf.Configuration;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import org.apache.hadoop.fs.FileSystem;<a name="line.25"></a>
 <span class="sourceLineNo">026</span>import org.apache.hadoop.fs.Path;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.client.Result;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.Table;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.Cell;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.CellUtil;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.regionserver.BloomType;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.TableName;<a name="line.39"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.Cell;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.CellUtil;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.TableName;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.client.ConnectionFactory;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.client.Result;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.client.ResultScanner;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.client.Scan;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.client.Table;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.client.TableDescriptor;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.client.TableDescriptorBuilder;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.regionserver.BloomType;<a name="line.39"></a>
 <span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.40"></a>
 <span class="sourceLineNo">041</span>import org.junit.Assert;<a name="line.41"></a>
 <span class="sourceLineNo">042</span><a name="line.42"></a>
@@ -67,108 +67,113 @@
 <span class="sourceLineNo">059</span>      1, families);<a name="line.59"></a>
 <span class="sourceLineNo">060</span>  }<a name="line.60"></a>
 <span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>  private static void createMobTable(final HBaseTestingUtility util,<a name="line.62"></a>
-<span class="sourceLineNo">063</span>      final TableName tableName, final byte[][] splitKeys, int regionReplication,<a name="line.63"></a>
-<span class="sourceLineNo">064</span>      final byte[]... families) throws IOException, InterruptedException {<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    TableDescriptorBuilder builder<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      = TableDescriptorBuilder.newBuilder(tableName)<a name="line.66"></a>
-<span class="sourceLineNo">067</span>            .setRegionReplication(regionReplication);<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    for (byte[] family : families) {<a name="line.68"></a>
-<span class="sourceLineNo">069</span>      builder.setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.69"></a>
-<span class="sourceLineNo">070</span>          .newBuilder(family)<a name="line.70"></a>
-<span class="sourceLineNo">071</span>          .setMobEnabled(true)<a name="line.71"></a>
-<span class="sourceLineNo">072</span>          .setMobThreshold(0L)<a name="line.72"></a>
-<span class="sourceLineNo">073</span>          .build());<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    }<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    util.getAdmin().createTable(builder.build(), splitKeys);<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    SnapshotTestingUtils.waitForTableToBeOnline(util, tableName);<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    assertEquals((splitKeys.length + 1) * regionReplication, util<a name="line.77"></a>
-<span class="sourceLineNo">078</span>        .getAdmin().getTableRegions(tableName).size());<a name="line.78"></a>
-<span class="sourceLineNo">079</span>  }<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>  /**<a name="line.81"></a>
-<span class="sourceLineNo">082</span>   * Create a Mob table.<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   *<a name="line.83"></a>
-<span class="sourceLineNo">084</span>   * @param util<a name="line.84"></a>
-<span class="sourceLineNo">085</span>   * @param tableName<a name="line.85"></a>
-<span class="sourceLineNo">086</span>   * @param families<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * @return An Table instance for the created table.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   * @throws IOException<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   */<a name="line.89"></a>
-<span class="sourceLineNo">090</span>  public static Table createMobTable(final HBaseTestingUtility util,<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      final TableName tableName, final byte[]... families) throws IOException {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableName);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    for (byte[] family : families) {<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      // Disable blooms (they are on by default as of 0.95) but we disable them<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      // here because<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      // tests have hard coded counts of what to expect in block cache, etc.,<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      // and blooms being<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      // on is interfering.<a name="line.98"></a>
-<span class="sourceLineNo">099</span>      builder.setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(family)<a name="line.99"></a>
-<span class="sourceLineNo">100</span>              .setBloomFilterType(BloomType.NONE)<a name="line.100"></a>
-<span class="sourceLineNo">101</span>              .setMobEnabled(true)<a name="line.101"></a>
-<span class="sourceLineNo">102</span>              .setMobThreshold(0L)<a name="line.102"></a>
-<span class="sourceLineNo">103</span>              .build());<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    util.getAdmin().createTable(builder.build());<a name="line.105"></a>
-<span class="sourceLineNo">106</span>    // HBaseAdmin only waits for regions to appear in hbase:meta we should wait<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    // until they are assigned<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    util.waitUntilAllRegionsAssigned(tableName);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    return ConnectionFactory.createConnection(util.getConfiguration()).getTable(tableName);<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>  /**<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * Return the number of rows in the given table.<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   */<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  public static int countMobRows(final Table table, final byte[]... families) throws IOException {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    Scan scan = new Scan();<a name="line.116"></a>
-<span class="sourceLineNo">117</span>    for (byte[] family : families) {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      scan.addFamily(family);<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    }<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    try (ResultScanner results = table.getScanner(scan)) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>      int count = 0;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      for (Result res; (res = results.next()) != null;) {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>        count++;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        for (Cell cell : res.listCells()) {<a name="line.124"></a>
-<span class="sourceLineNo">125</span>          // Verify the value<a name="line.125"></a>
-<span class="sourceLineNo">126</span>          Assert.assertTrue(CellUtil.cloneValue(cell).length &gt; 0);<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        }<a name="line.127"></a>
-<span class="sourceLineNo">128</span>      }<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      return count;<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  public static void verifyMobRowCount(final HBaseTestingUtility util,<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      final TableName tableName, long expectedRows) throws IOException {<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
-<span class="sourceLineNo">136</span>    Table table = ConnectionFactory.createConnection(util.getConfiguration()).getTable(tableName);<a name="line.136"></a>
-<span class="sourceLineNo">137</span>    try {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      assertEquals(expectedRows, countMobRows(table));<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    } finally {<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      table.close();<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    }<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  }<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  // ==========================================================================<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  // Snapshot Mock<a name="line.145"></a>
-<span class="sourceLineNo">146</span>  // ==========================================================================<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  public static class SnapshotMock extends SnapshotTestingUtils.SnapshotMock {<a name="line.147"></a>
-<span class="sourceLineNo">148</span>    public SnapshotMock(final Configuration conf, final FileSystem fs, final Path rootDir) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      super(conf, fs, rootDir);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    }<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span>    @Override<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    public TableDescriptor createHtd(final String tableName) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      return TableDescriptorBuilder.newBuilder(TableName.valueOf(tableName))<a name="line.154"></a>
-<span class="sourceLineNo">155</span>              .setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.155"></a>
-<span class="sourceLineNo">156</span>                  .newBuilder(Bytes.toBytes(TEST_FAMILY))<a name="line.156"></a>
-<span class="sourceLineNo">157</span>                  .setMobEnabled(true)<a name="line.157"></a>
-<span class="sourceLineNo">158</span>                  .setMobThreshold(0L)<a name="line.158"></a>
-<span class="sourceLineNo">159</span>                  .build())<a name="line.159"></a>
-<span class="sourceLineNo">160</span>              .build();<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>}<a name="line.163"></a>
+<span class="sourceLineNo">062</span>  public static void createMobTable(final HBaseTestingUtility util, final TableName tableName,<a name="line.62"></a>
+<span class="sourceLineNo">063</span>      final byte[][] splitKeys, int regionReplication, final byte[]... families)<a name="line.63"></a>
+<span class="sourceLineNo">064</span>      throws IOException, InterruptedException {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    createMobTable(util, tableName, splitKeys, regionReplication, null, families);<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>  public static void createMobTable(HBaseTestingUtility util, TableName tableName,<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      byte[][] splitKeys, int regionReplication, String cpClassName, byte[]... families)<a name="line.69"></a>
+<span class="sourceLineNo">070</span>      throws IOException, InterruptedException {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    TableDescriptorBuilder builder =<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      TableDescriptorBuilder.newBuilder(tableName).setRegionReplication(regionReplication);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    for (byte[] family : families) {<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      builder.setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(family).setMobEnabled(true)<a name="line.74"></a>
+<span class="sourceLineNo">075</span>        .setMobThreshold(0L).build());<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    }<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    if (!StringUtils.isBlank(cpClassName)) {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      builder.setCoprocessor(cpClassName);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    util.getAdmin().createTable(builder.build(), splitKeys);<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    SnapshotTestingUtils.waitForTableToBeOnline(util, tableName);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    assertEquals((splitKeys.length + 1) * regionReplication,<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      util.getAdmin().getRegions(tableName).size());<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  }<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  /**<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * Create a Mob table.<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   *<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * @param util<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * @param tableName<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   * @param families<a name="line.91"></a>
+<span class="sourceLineNo">092</span>   * @return An Table instance for the created table.<a name="line.92"></a>
+<span class="sourceLineNo">093</span>   * @throws IOException<a name="line.93"></a>
+<span class="sourceLineNo">094</span>   */<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  public static Table createMobTable(final HBaseTestingUtility util,<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      final TableName tableName, final byte[]... families) throws IOException {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableName);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    for (byte[] family : families) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      // Disable blooms (they are on by default as of 0.95) but we disable them<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      // here because<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      // tests have hard coded counts of what to expect in block cache, etc.,<a name="line.101"></a>
+<span class="sourceLineNo">102</span>      // and blooms being<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      // on is interfering.<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      builder.setColumnFamily(ColumnFamilyDescriptorBuilder.newBuilder(family)<a name="line.104"></a>
+<span class="sourceLineNo">105</span>              .setBloomFilterType(BloomType.NONE)<a name="line.105"></a>
+<span class="sourceLineNo">106</span>              .setMobEnabled(true)<a name="line.106"></a>
+<span class="sourceLineNo">107</span>              .setMobThreshold(0L)<a name="line.107"></a>
+<span class="sourceLineNo">108</span>              .build());<a name="line.108"></a>
+<span class="sourceLineNo">109</span>    }<a name="line.109"></a>
+<span class="sourceLineNo">110</span>    util.getAdmin().createTable(builder.build());<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    // HBaseAdmin only waits for regions to appear in hbase:meta we should wait<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    // until they are assigned<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    util.waitUntilAllRegionsAssigned(tableName);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    return ConnectionFactory.createConnection(util.getConfiguration()).getTable(tableName);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  }<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>  /**<a name="line.117"></a>
+<span class="sourceLineNo">118</span>   * Return the number of rows in the given table.<a name="line.118"></a>
+<span class="sourceLineNo">119</span>   */<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  public static int countMobRows(final Table table, final byte[]... families) throws IOException {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    Scan scan = new Scan();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>    for (byte[] family : families) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      scan.addFamily(family);<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    try (ResultScanner results = table.getScanner(scan)) {<a name="line.125"></a>
+<span class="sourceLineNo">126</span>      int count = 0;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      for (Result res; (res = results.next()) != null;) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        count++;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        for (Cell cell : res.listCells()) {<a name="line.129"></a>
+<span class="sourceLineNo">130</span>          // Verify the value<a name="line.130"></a>
+<span class="sourceLineNo">131</span>          Assert.assertTrue(CellUtil.cloneValue(cell).length &gt; 0);<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        }<a name="line.132"></a>
+<span class="sourceLineNo">133</span>      }<a name="line.133"></a>
+<span class="sourceLineNo">134</span>      return count;<a name="line.134"></a>
+<span class="sourceLineNo">135</span>    }<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  }<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>  public static void verifyMobRowCount(final HBaseTestingUtility util,<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      final TableName tableName, long expectedRows) throws IOException {<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>    Table table = ConnectionFactory.createConnection(util.getConfiguration()).getTable(tableName);<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    try {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      assertEquals(expectedRows, countMobRows(table));<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    } finally {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>      table.close();<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    }<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>  // ==========================================================================<a name="line.149"></a>
+<span class="sourceLineNo">150</span>  // Snapshot Mock<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  // ==========================================================================<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public static class SnapshotMock extends SnapshotTestingUtils.SnapshotMock {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    public SnapshotMock(final Configuration conf, final FileSystem fs, final Path rootDir) {<a name="line.153"></a>
+<span class="sourceLineNo">154</span>      super(conf, fs, rootDir);<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    }<a name="line.155"></a>
+<span class="sourceLineNo">156</span><a name="line.156"></a>
+<span class="sourceLineNo">157</span>    @Override<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    public TableDescriptor createHtd(final String tableName) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      return TableDescriptorBuilder.newBuilder(TableName.valueOf(tableName))<a name="line.159"></a>
+<span class="sourceLineNo">160</span>              .setColumnFamily(ColumnFamilyDescriptorBuilder<a name="line.160"></a>
+<span class="sourceLineNo">161</span>                  .newBuilder(Bytes.toBytes(TEST_FAMILY))<a name="line.161"></a>
+<span class="sourceLineNo">162</span>                  .setMobEnabled(true)<a name="line.162"></a>
+<span class="sourceLineNo">163</span>                  .setMobThreshold(0L)<a name="line.163"></a>
+<span class="sourceLineNo">164</span>                  .build())<a name="line.164"></a>
+<span class="sourceLineNo">165</span>              .build();<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>}<a name="line.168"></a>
 
 
 


[09/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html
new file mode 100644
index 0000000..25ec67d
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html
@@ -0,0 +1,469 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestMobCloneSnapshotFromClientCloneLinksAfterDelete (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestMobCloneSnapshotFromClientCloneLinksAfterDelete (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9,"i5":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";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class TestMobCloneSnapshotFromClientCloneLinksAfterDelete" class="title">Class TestMobCloneSnapshotFromClientCloneLinksAfterDelete</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientCloneLinksAfterDelete</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#line.44">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</a></span></code>
+<div class="block">This coprocessor is used to delay the flush.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#delayFlush">delayFlush</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#TestMobCloneSnapshotFromClientCloneLinksAfterDelete--">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a></span>(org.apache.hadoop.hbase.client.Table&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#createTable--">createTable</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#numRowsToLoad--">numRowsToLoad</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#setupConfiguration--">setupConfiguration</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#testCloneLinksAfterDelete--">testCloneLinksAfterDelete</a></span>()</code>
+<div class="block">Verify that tables created from the snapshot are still alive after source table deletion.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="CLASS_RULE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#line.48">CLASS_RULE</a></pre>
+</li>
+</ul>
+<a name="delayFlush">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>delayFlush</h4>
+<pre>private static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#line.51">delayFlush</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestMobCloneSnapshotFromClientCloneLinksAfterDelete--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestMobCloneSnapshotFromClientCloneLinksAfterDelete</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#line.44">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setupConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setupConfiguration</h4>
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#line.79">setupConfiguration</a>()</pre>
+</li>
+</ul>
+<a name="setUpBeforeClass--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUpBeforeClass</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#line.86">setUpBeforeClass</a>()
+                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createTable--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTable</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#line.92">createTable</a>()
+                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="numRowsToLoad--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>numRowsToLoad</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#line.99">numRowsToLoad</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="countRows-org.apache.hadoop.hbase.client.Table-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>countRows</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#line.104">countRows</a>(org.apache.hadoop.hbase.client.Table&nbsp;table)
+                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testCloneLinksAfterDelete--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testCloneLinksAfterDelete</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#line.110">testCloneLinksAfterDelete</a>()
+                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html#testCloneLinksAfterDelete--">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></code></span></div>
+<div class="block">Verify that tables created from the snapshot are still alive after source table deletion.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html#testCloneLinksAfterDelete--">testCloneLinksAfterDelete</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html
new file mode 100644
index 0000000..0e9d892
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html
@@ -0,0 +1,416 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestMobCloneSnapshotFromClientError (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestMobCloneSnapshotFromClientError (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestMobCloneSnapshotFromClientError.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientError.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class TestMobCloneSnapshotFromClientError" class="title">Class TestMobCloneSnapshotFromClientError</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientErrorTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientError</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#line.33">TestMobCloneSnapshotFromClientError</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientErrorTestBase</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#TestMobCloneSnapshotFromClientError--">TestMobCloneSnapshotFromClientError</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a></span>(org.apache.hadoop.hbase.client.Table&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#createTable--">createTable</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#numRowsToLoad--">numRowsToLoad</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#setupConfiguration--">setupConfiguration</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientErrorTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientErrorTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html#testCloneNonExistentSnapshot--">testCloneNonExistentSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html#testCloneOnMissingNamespace--">testCloneOnMissingNamespace</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="CLASS_RULE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#line.36">CLASS_RULE</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestMobCloneSnapshotFromClientError--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestMobCloneSnapshotFromClientError</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#line.33">TestMobCloneSnapshotFromClientError</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setupConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setupConfiguration</h4>
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#line.39">setupConfiguration</a>()</pre>
+</li>
+</ul>
+<a name="setUpBeforeClass--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUpBeforeClass</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#line.46">setUpBeforeClass</a>()
+                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createTable--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTable</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#line.52">createTable</a>()
+                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="numRowsToLoad--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>numRowsToLoad</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#line.58">numRowsToLoad</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="countRows-org.apache.hadoop.hbase.client.Table-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>countRows</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#line.63">countRows</a>(org.apache.hadoop.hbase.client.Table&nbsp;table)
+                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestMobCloneSnapshotFromClientError.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientError.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html
new file mode 100644
index 0000000..7458b58
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html
@@ -0,0 +1,440 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestMobCloneSnapshotFromClientNormal (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestMobCloneSnapshotFromClientNormal (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9,"i5":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";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestMobCloneSnapshotFromClientNormal.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientNormal.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class TestMobCloneSnapshotFromClientNormal" class="title">Class TestMobCloneSnapshotFromClientNormal</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientNormalTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientNormal</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#line.35">TestMobCloneSnapshotFromClientNormal</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientNormalTestBase</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#TestMobCloneSnapshotFromClientNormal--">TestMobCloneSnapshotFromClientNormal</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a></span>(org.apache.hadoop.hbase.client.Table&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#createTable--">createTable</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#numRowsToLoad--">numRowsToLoad</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#setupConfiguration--">setupConfiguration</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
+              org.apache.hadoop.hbase.TableName&nbsp;tableName,
+              long&nbsp;expectedRows)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientNormalTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientNormalTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#testCloneSnapshot--">testCloneSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#testCloneSnapshotCrossNamespace--">testCloneSnapshotCrossNamespace</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDownAfterClass--">tearDownAfterClass</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="CLASS_RULE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#line.38">CLASS_RULE</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestMobCloneSnapshotFromClientNormal--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestMobCloneSnapshotFromClientNormal</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#line.35">TestMobCloneSnapshotFromClientNormal</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setupConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setupConfiguration</h4>
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#line.41">setupConfiguration</a>()</pre>
+</li>
+</ul>
+<a name="setUpBeforeClass--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUpBeforeClass</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#line.48">setUpBeforeClass</a>()
+                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createTable--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTable</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#line.54">createTable</a>()
+                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="numRowsToLoad--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>numRowsToLoad</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#line.60">numRowsToLoad</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="countRows-org.apache.hadoop.hbase.client.Table-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>countRows</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#line.65">countRows</a>(org.apache.hadoop.hbase.client.Table&nbsp;table)
+                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>verifyRowCount</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#line.70">verifyRowCount</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
+                              org.apache.hadoop.hbase.TableName&nbsp;tableName,
+                              long&nbsp;expectedRows)
+                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestMobCloneSnapshotFromClientNormal.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientNormal.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html
index aed5eea..03841b5 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobSnapshotCloneIndependence.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -383,7 +383,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapsh
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobSnapshotCloneIndependence.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">


[32/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 9ccc52a..f12c72e 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
@@ -2424,7 +2424,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>movedRegions</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../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.3437">movedRegions</a></pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../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.3440">movedRegions</a></pre>
 </li>
 </ul>
 <a name="TIMEOUT_REGION_MOVED">
@@ -2433,7 +2433,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <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.3441">TIMEOUT_REGION_MOVED</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3444">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>
@@ -2477,7 +2477,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getUseThisHostnameInstead</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.649">getUseThisHostnameInstead</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.652">getUseThisHostnameInstead</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)
                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2491,7 +2491,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>setupWindows</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.668">setupWindows</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.671">setupWindows</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                  <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;cm)</pre>
 <div class="block">If running on Windows, do windows-specific setup.</div>
 </li>
@@ -2502,7 +2502,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>setupNetty</h4>
-<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/NettyEventLoopGroupConfig.html" title="class in org.apache.hadoop.hbase.util">NettyEventLoopGroupConfig</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.680">setupNetty</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/NettyEventLoopGroupConfig.html" title="class in org.apache.hadoop.hbase.util">NettyEventLoopGroupConfig</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.683">setupNetty</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
 <a name="initializeFileSystem--">
@@ -2511,7 +2511,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <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.689">initializeFileSystem</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.692">initializeFileSystem</a>()
                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2525,7 +2525,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <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.705">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.708">getFsTableDescriptors</a>()
                                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2539,7 +2539,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaTableObserver</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a>,<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.710">getMetaTableObserver</a>()</pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Function.html?is-external=true" title="class or interface in java.util.function">Function</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a>,<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.713">getMetaTableObserver</a>()</pre>
 </li>
 </ul>
 <a name="login-org.apache.hadoop.hbase.security.UserProvider-java.lang.String-">
@@ -2548,7 +2548,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <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.714">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.717">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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;host)
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2563,7 +2563,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <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.724">waitForMasterActive</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.727">waitForMasterActive</a>()</pre>
 <div class="block">Wait for an active Master.
  See override in Master superclass for how it is used.</div>
 </li>
@@ -2574,7 +2574,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcessName</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.726">getProcessName</a>()</pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.729">getProcessName</a>()</pre>
 </li>
 </ul>
 <a name="canCreateBaseZNode--">
@@ -2583,7 +2583,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <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.730">canCreateBaseZNode</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.733">canCreateBaseZNode</a>()</pre>
 </li>
 </ul>
 <a name="canUpdateTableDescriptor--">
@@ -2592,7 +2592,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <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.734">canUpdateTableDescriptor</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.737">canUpdateTableDescriptor</a>()</pre>
 </li>
 </ul>
 <a name="createRpcServices--">
@@ -2601,7 +2601,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>createRpcServices</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.738">createRpcServices</a>()
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.741">createRpcServices</a>()
                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2615,7 +2615,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>configureInfoServer</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.742">configureInfoServer</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.745">configureInfoServer</a>()</pre>
 </li>
 </ul>
 <a name="getDumpServlet--">
@@ -2624,7 +2624,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getDumpServlet</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends javax.servlet.http.HttpServlet&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.747">getDumpServlet</a>()</pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends javax.servlet.http.HttpServlet&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.750">getDumpServlet</a>()</pre>
 </li>
 </ul>
 <a name="registerService-com.google.protobuf.Service-">
@@ -2633,7 +2633,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>registerService</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.752">registerService</a>(com.google.protobuf.Service&nbsp;instance)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.755">registerService</a>(com.google.protobuf.Service&nbsp;instance)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#registerService-com.google.protobuf.Service-">RegionServerServices</a></code></span></div>
 <div class="block">Registers a new protocol buffer <code>Service</code> subclass as a coprocessor endpoint to be
  available for handling</div>
@@ -2653,7 +2653,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>createClusterConnection</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.779">createClusterConnection</a>()
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.782">createClusterConnection</a>()
                                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to
  the local server; i.e. a short-circuit Connection. Safe to use going to local or remote
@@ -2670,7 +2670,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>checkCodecs</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.799">checkCodecs</a>(org.apache.hadoop.conf.Configuration&nbsp;c)
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.802">checkCodecs</a>(org.apache.hadoop.conf.Configuration&nbsp;c)
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Run test on configured codecs to make sure supporting libs are in place.</div>
 <dl>
@@ -2687,7 +2687,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterId</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.811">getClusterId</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.814">getClusterId</a>()</pre>
 </li>
 </ul>
 <a name="setupClusterConnection--">
@@ -2696,7 +2696,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>setupClusterConnection</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.819">setupClusterConnection</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.822">setupClusterConnection</a>()
                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Setup our cluster connection if not already initialized.</div>
 <dl>
@@ -2711,7 +2711,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>preRegistrationInitialization</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.831">preRegistrationInitialization</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.834">preRegistrationInitialization</a>()</pre>
 <div class="block">All initialization needed before we go register with Master.<br>
  Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.<br>
  In here we just put up the RpcServer, setup Connection, and ZooKeeper.</div>
@@ -2723,7 +2723,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeZooKeeper</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.854">initializeZooKeeper</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.857">initializeZooKeeper</a>()
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Bring up connection to zk ensemble and then wait until a master for this cluster and then after
@@ -2743,7 +2743,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>blockAndCheckIfStopped</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.907">blockAndCheckIfStopped</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKNodeTracker</a>&nbsp;tracker)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.910">blockAndCheckIfStopped</a>(<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKNodeTracker</a>&nbsp;tracker)
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                     <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <div class="block">Utilty method to wait indefinitely on a znode availability while checking
@@ -2763,7 +2763,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>isClusterUp</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.920">isClusterUp</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.923">isClusterUp</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#isClusterUp--">isClusterUp</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a></code></dd>
@@ -2778,7 +2778,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.929">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.932">run</a>()</pre>
 <div class="block">The HRegionServer sticks in this loop until closed.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -2794,7 +2794,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>containsMetaTableRegions</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1157">containsMetaTableRegions</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1160">containsMetaTableRegions</a>()</pre>
 </li>
 </ul>
 <a name="areAllUserRegionsOffline--">
@@ -2803,7 +2803,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>areAllUserRegionsOffline</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1161">areAllUserRegionsOffline</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1164">areAllUserRegionsOffline</a>()</pre>
 </li>
 </ul>
 <a name="getWriteRequestCount--">
@@ -2812,7 +2812,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriteRequestCount</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1176">getWriteRequestCount</a>()</pre>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1179">getWriteRequestCount</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Current write count for all online regions.</dd>
@@ -2825,7 +2825,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>tryRegionServerReport</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1185">tryRegionServerReport</a>(long&nbsp;reportStartTime,
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1188">tryRegionServerReport</a>(long&nbsp;reportStartTime,
                                      long&nbsp;reportEndTime)
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2840,7 +2840,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>reportRegionSizesForQuotas</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1219">reportRegionSizesForQuotas</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</a>&nbsp;regionSizeStore)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1222">reportRegionSizesForQuotas</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</a>&nbsp;regionSizeStore)</pre>
 <div class="block">Reports the given map of Regions and their size on the filesystem to the active Master.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -2858,7 +2858,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>buildReportAndSend</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1262">buildReportAndSend</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService.BlockingInterface&nbsp;rss,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1265">buildReportAndSend</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStatusService.BlockingInterface&nbsp;rss,
                         <a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</a>&nbsp;regionSizeStore)
                  throws org.apache.hbase.thirdparty.com.google.protobuf.ServiceException</pre>
 <div class="block">Builds the region size report and sends it to the master. Upon successful sending of the
@@ -2878,7 +2878,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>buildRegionSpaceUseReportRequest</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportRequest&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1279">buildRegionSpaceUseReportRequest</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</a>&nbsp;regionSizes)</pre>
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportRequest&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1282">buildRegionSpaceUseReportRequest</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</a>&nbsp;regionSizes)</pre>
 <div class="block">Builds a <code>RegionServerStatusProtos.RegionSpaceUseReportRequest</code> protobuf message from the region size map.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -2894,7 +2894,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>convertRegionSize</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1295">convertRegionSize</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1298">convertRegionSize</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                                                                                                             <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;sizeInBytes)</pre>
 <div class="block">Converts a pair of <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client"><code>RegionInfo</code></a> and <code>long</code> into a <code>RegionServerStatusProtos.RegionSpaceUse</code>
  protobuf message.</div>
@@ -2913,7 +2913,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>buildServerLoad</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1302">buildServerLoad</a>(long&nbsp;reportStartTime,
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1305">buildServerLoad</a>(long&nbsp;reportStartTime,
                                                                                                  long&nbsp;reportEndTime)
                                                                                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2928,7 +2928,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineRegionsAsPrintableString</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1373">getOnlineRegionsAsPrintableString</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1376">getOnlineRegionsAsPrintableString</a>()</pre>
 </li>
 </ul>
 <a name="waitOnAllRegionsToClose-boolean-">
@@ -2937,7 +2937,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>waitOnAllRegionsToClose</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1385">waitOnAllRegionsToClose</a>(boolean&nbsp;abort)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1388">waitOnAllRegionsToClose</a>(boolean&nbsp;abort)</pre>
 <div class="block">Wait on regions close.</div>
 </li>
 </ul>
@@ -2947,7 +2947,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>sleep</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1439">sleep</a>(long&nbsp;millis)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1442">sleep</a>(long&nbsp;millis)</pre>
 </li>
 </ul>
 <a name="shutdownWAL-boolean-">
@@ -2956,7 +2956,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdownWAL</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1450">shutdownWAL</a>(boolean&nbsp;close)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1453">shutdownWAL</a>(boolean&nbsp;close)</pre>
 </li>
 </ul>
 <a name="handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">
@@ -2965,7 +2965,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>handleReportForDutyResponse</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1471">handleReportForDutyResponse</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse&nbsp;c)
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1474">handleReportForDutyResponse</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse&nbsp;c)
                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2979,7 +2979,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeMemStoreChunkCreator</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1565">initializeMemStoreChunkCreator</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1568">initializeMemStoreChunkCreator</a>()</pre>
 </li>
 </ul>
 <a name="startHeapMemoryManager--">
@@ -2988,7 +2988,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>startHeapMemoryManager</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1586">startHeapMemoryManager</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1589">startHeapMemoryManager</a>()</pre>
 </li>
 </ul>
 <a name="createMyEphemeralNode--">
@@ -2997,7 +2997,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>createMyEphemeralNode</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1594">createMyEphemeralNode</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1597">createMyEphemeralNode</a>()
                             throws org.apache.zookeeper.KeeperException,
                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -3013,7 +3013,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteMyEphemeralNode</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1602">deleteMyEphemeralNode</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1605">deleteMyEphemeralNode</a>()
                             throws org.apache.zookeeper.KeeperException</pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3027,7 +3027,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerAccounting</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1607">getRegionServerAccounting</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1610">getRegionServerAccounting</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getRegionServerAccounting--">getRegionServerAccounting</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a></code></dd>
@@ -3042,7 +3042,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>createRegionLoad</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1619">createRegionLoad</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;r,
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1622">createRegionLoad</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;r,
                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder&nbsp;regionLoadBldr,
                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier.Builder&nbsp;regionSpecifier)
                                                                                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3058,7 +3058,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>createRegionLoad</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1688">createRegionLoad</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedRegionName)
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1691">createRegionLoad</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedRegionName)
                                                                                                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3076,7 +3076,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>isOnline</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1802">isOnline</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1805">isOnline</a>()</pre>
 <div class="block">Report the status of the server. A server is online once all the startup is
  completed (setting up filesystem, starting executorService threads, etc.). This
  method is designed mostly to be useful in tests.</div>
@@ -3092,7 +3092,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>setupWALAndReplication</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1810">setupWALAndReplication</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1813">setupWALAndReplication</a>()
                              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Setup WAL log and replication if enabled. Replication setup is done in here because it wants to
  be hooked up to WAL.</div>
@@ -3108,7 +3108,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>startReplicationService</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1842">startReplicationService</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1845">startReplicationService</a>()
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Start up replication source and sink handlers.</div>
 <dl>
@@ -3123,7 +3123,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1857">getRegionServerMetrics</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1860">getRegionServerMetrics</a>()</pre>
 </li>
 </ul>
 <a name="getMasterAddressTracker--">
@@ -3132,7 +3132,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterAddressTracker</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterAddressTracker</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1864">getMasterAddressTracker</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterAddressTracker</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1867">getMasterAddressTracker</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Master address tracker instance.</dd>
@@ -3145,7 +3145,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>startServices</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1882">startServices</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1885">startServices</a>()
                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3159,7 +3159,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeThreads</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1984">initializeThreads</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1987">initializeThreads</a>()
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3173,7 +3173,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>registerConfigurationObservers</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2031">registerConfigurationObservers</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2034">registerConfigurationObservers</a>()</pre>
 </li>
 </ul>
 <a name="putUpWebUI--">
@@ -3182,7 +3182,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>putUpWebUI</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2043">putUpWebUI</a>()
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2046">putUpWebUI</a>()
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Puts up the webui.</div>
 <dl>
@@ -3199,7 +3199,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>isHealthy</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2097">isHealthy</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2100">isHealthy</a>()</pre>
 </li>
 </ul>
 <a name="getWALs--">
@@ -3208,7 +3208,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getWALs</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2115">getWALs</a>()
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2118">getWALs</a>()
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -3227,7 +3227,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <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/HRegionServer.html#line.2120">getWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)
+<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/HRegionServer.html#line.2123">getWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -3246,7 +3246,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getWalRoller</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2128">getWalRoller</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2131">getWalRoller</a>()</pre>
 </li>
 </ul>
 <a name="getConnection--">
@@ -3255,7 +3255,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getConnection</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2133">getConnection</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2136">getConnection</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getConnection--">Server</a></code></span></div>
 <div class="block">Returns a reference to the servers' connection.
 
@@ -3273,7 +3273,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterConnection</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2138">getClusterConnection</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2141">getClusterConnection</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getClusterConnection--">Server</a></code></span></div>
 <div class="block">Returns a reference to the servers' cluster connection. Prefer <a href="../../../../../org/apache/hadoop/hbase/Server.html#getConnection--"><code>Server.getConnection()</code></a>.
 
@@ -3291,7 +3291,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaTableLocator</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html" title="class in org.apache.hadoop.hbase.zookeeper">MetaTableLocator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2143">getMetaTableLocator</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html" title="class in org.apache.hadoop.hbase.zookeeper">MetaTableLocator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2146">getMetaTableLocator</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getMetaTableLocator--">Server</a></code></span></div>
 <div class="block">Returns instance of <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html" title="class in org.apache.hadoop.hbase.zookeeper"><code>MetaTableLocator</code></a>
  running inside this server. This MetaServerLocator is started and stopped by server, clients
@@ -3310,7 +3310,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2148">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2151">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</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>
@@ -3328,7 +3328,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2158">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2161">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg,
                  boolean&nbsp;force,
                  <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</pre>
 <div class="block">Stops the regionserver.</div>
@@ -3346,7 +3346,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForServerOnline</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2180">waitForServerOnline</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2183">waitForServerOnline</a>()</pre>
 </li>
 </ul>
 <a name="postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">
@@ -3355,7 +3355,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>postOpenDeployTasks</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2194">postOpenDeployTasks</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.PostOpenDeployContext</a>&nbsp;context)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2197">postOpenDeployTasks</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.PostOpenDeployContext</a>&nbsp;context)
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">RegionServerServices</a></code></span></div>
 <div class="block">Tasks to perform after region open to complete deploy of region on regionserver</div>
@@ -3375,7 +3375,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>reportRegionStateTransition</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2226">reportRegionStateTransition</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.RegionStateTransitionContext</a>&nbsp;context)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2229">reportRegionStateTransition</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.RegionStateTransitionContext</a>&nbsp;context)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">RegionServerServices</a></code></span></div>
 <div class="block">Notify master that a handler requests to change a region state</div>
 <dl>
@@ -3390,7 +3390,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>triggerFlushInPrimaryRegion</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2325">triggerFlushInPrimaryRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2328">triggerFlushInPrimaryRegion</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">Trigger a flush in the primary region replica if this region is a secondary replica. Does not
  block this thread. See RegionReplicaFlushHandler for details.</div>
 </li>
@@ -3401,7 +3401,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getRpcServer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2347">getRpcServer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2350">getRpcServer</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getRpcServer--">RegionServerServices</a></code></span></div>
 <div class="block">Returns a reference to the region server's RPC server</div>
 <dl>
@@ -3416,7 +3416,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSRpcServices</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2352">getRSRpcServices</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2355">getRSRpcServices</a>()</pre>
 </li>
 </ul>
 <a name="abort-java.lang.String-java.lang.Throwable-">
@@ -3425,7 +3425,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2367">abort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;reason,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2370">abort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;reason,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
 <div class="block">Cause the server to exit without closing the regions it is serving, the log
  it is using and without notifying the master. Used unit testing and on
@@ -3445,7 +3445,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2410">abort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;reason)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2413">abort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;reason)</pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-java.lang.Throwable-"><code>abort(String, Throwable)</code></a></dd>
@@ -3458,7 +3458,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>isAborted</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2415">isAborted</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2418">isAborted</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Abortable.html#isAborted--">Abortable</a></code></span></div>
 <div class="block">Check if the server or client was aborted.</div>
 <dl>
@@ -3475,7 +3475,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>kill</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2425">kill</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2428">kill</a>()</pre>
 </li>
 </ul>
 <a name="sendShutdownInterrupt--">
@@ -3484,7 +3484,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>sendShutdownInterrupt</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2433">sendShutdownInterrupt</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2436">sendShutdownInterrupt</a>()</pre>
 <div class="block">Called on stop/abort before closing the cluster connection and meta locator.</div>
 </li>
 </ul>
@@ -3494,7 +3494,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>stopServiceThreads</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2440">stopServiceThreads</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2443">stopServiceThreads</a>()</pre>
 <div class="block">Wait on all threads to finish. Presumption is that all closes and stops
  have already been called.</div>
 </li>
@@ -3505,7 +3505,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationSourceService</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2486">getReplicationSourceService</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2489">getReplicationSourceService</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getReplicationSourceService--">getReplicationSourceService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a></code></dd>
@@ -3521,7 +3521,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationSinkService</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2493">getReplicationSinkService</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2496">getReplicationSinkService</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Return the object that implements the replication sink executorService.</dd>
@@ -3534,7 +3534,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>createRegionServerStatusStub</h4>
-<pre>protected&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.html#line.2506">createRegionServerStatusStub</a>()</pre>
+<pre>protected&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.html#line.2509">createRegionServerStatusStub</a>()</pre>
 <div class="block">Get the current master from ZooKeeper and open the RPC connection to it.
  To get a fresh connection, the current rssStub must be null.
  Method will block until a master is available. You can break from this
@@ -3551,7 +3551,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>createRegionServerStatusStub</h4>
-<pre>protected&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.html#line.2519">createRegionServerStatusStub</a>(boolean&nbsp;refresh)</pre>
+<pre>protected&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.html#line.2522">createRegionServerStatusStub</a>(boolean&nbsp;refresh)</pre>
 <div class="block">Get the current master from ZooKeeper and open the RPC connection to it. To get a fresh
  connection, the current rssStub must be null. Method will block until a master is available.
  You can break from this block by requesting the server stop.</div>
@@ -3569,7 +3569,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>keepLooping</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2591">keepLooping</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2594">keepLooping</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if we should break loop because cluster is going down or
@@ -3583,7 +3583,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>reportForDuty</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2602">reportForDuty</a>()
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2605">reportForDuty</a>()
                                                                                                                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3597,7 +3597,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastSequenceId</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionStoreSequenceIds&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2643">getLastSequenceId</a>(byte[]&nbsp;encodedRegionName)</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionStoreSequenceIds&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2646">getLastSequenceId</a>(byte[]&nbsp;encodedRegionName)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/LastSequenceId.html#getLastSequenceId-byte:A-">getLastSequenceId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/LastSequenceId.html" title="interface in org.apache.hadoop.hbase.regionserver">LastSequenceId</a></code></dd>
@@ -3615,7 +3615,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>closeAllRegions</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2674">closeAllRegions</a>(boolean&nbsp;abort)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2677">closeAllRegions</a>(boolean&nbsp;abort)</pre>
 <div class="block">Closes all regions.  Called on our way out.
  Assumes that its not possible for new regions to be added to onlineRegions
  while this method runs.</div>
@@ -3627,7 +3627,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>closeMetaTableRegions</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2683">closeMetaTableRegions</a>(boolean&nbsp;abort)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2686">closeMetaTableRegions</a>(boolean&nbsp;abort)</pre>
 <div class="block">Close meta region if we carry it</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3641,7 +3641,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>closeUserRegions</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2706">closeUserRegions</a>(boolean&nbsp;abort)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2709">closeUserRegions</a>(boolean&nbsp;abort)</pre>
 <div class="block">Schedule closes on all user regions.
  Should be safe calling multiple times because it wont' close regions
  that are already closed or that are closing.</div>
@@ -3657,7 +3657,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getInfoServer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2722">getInfoServer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2725">getInfoServer</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the info server</dd>
@@ -3670,7 +3670,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>isStopped</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2730">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2733">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>
@@ -3685,7 +3685,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>isStopping</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2735">isStopping</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2738">isStopping</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Server.html#isStopping--">isStopping</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a></code></dd>
@@ -3700,7 +3700,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2744">getConfiguration</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2747">getConfiguration</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getConfiguration--">Server</a></code></span></div>
 <div class="block">Gets the configuration object for this server.</div>
 <dl>
@@ -3717,7 +3717,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriteLock</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.WriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock.WriteLock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2749">getWriteLock</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.WriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock.WriteLock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2752">getWriteLock</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the write lock for the server</dd>
@@ -3730,7 +3730,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumberOfOnlineRegions</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2753">getNumberOfOnlineRegions</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2756">getNumberOfOnlineRegions</a>()</pre>
 </li>
 </ul>
 <a name="isOnlineRegionsEmpty--">
@@ -3739,7 +3739,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>isOnlineRegionsEmpty</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2757">isOnlineRegionsEmpty</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2760">isOnlineRegionsEmpty</a>()</pre>
 </li>
 </ul>
 <a name="getOnlineRegionsLocalContext--">
@@ -3748,7 +3748,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineRegionsLocalContext</h4>
-<pre>public&nbsp;<a href="https://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/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2766">getOnlineRegionsLocalContext</a>()</pre>
+<pre>public&nbsp;<a href="https://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/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2769">getOnlineRegionsLocalContext</a>()</pre>
 <div class="block">For tests, web ui and metrics.
  This method will only work if HRegionServer is in the same JVM as client;
  HRegion cannot be serialized to cross an rpc.</div>
@@ -3760,7 +3760,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>addRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2772">addRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2775">addRegion</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 interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableOnlineRegions.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">MutableOnlineRegions</a></code></span></div>
 <div class="block">Add to online regions.</div>
 <dl>
@@ -3775,7 +3775,7 @@ protected static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/j
 <ul class="blockList">
 <li class="blockList">
 <h4>addRegion</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2777">addRegion</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://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/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&gt;&nbsp;sortedRegions,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2780">addRegion</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="https://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/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&gt;&nbsp;sortedRegions,
                

<TRUNCATED>

[16/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 10407bb..45ef29f 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -879,6 +879,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/chaos/actions/TestChangeSplitPolicyAction.html#admin">admin</a></span> - Variable in class org.apache.hadoop.hbase.chaos.actions.<a href="org/apache/hadoop/hbase/chaos/actions/TestChangeSplitPolicyAction.html" title="class in org.apache.hadoop.hbase.chaos.actions">TestChangeSplitPolicyAction</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/locking/TestEntityLocks.html#admin">admin</a></span> - Variable in class org.apache.hadoop.hbase.client.locking.<a href="org/apache/hadoop/hbase/client/locking/TestEntityLocks.html" title="class in org.apache.hadoop.hbase.client.locking">TestEntityLocks</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.html#admin">admin</a></span> - Static variable in class org.apache.hadoop.hbase.client.replication.<a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.html" title="class in org.apache.hadoop.hbase.client.replication">TestReplicationAdmin</a></dt>
@@ -891,8 +893,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncAdminBase.html#admin">admin</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncAdminBase.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminBase</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#admin">admin</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#admin">admin</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestServerLoadDurability.html#admin">admin</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestServerLoadDurability.html" title="class in org.apache.hadoop.hbase.client">TestServerLoadDurability</a></dt>
@@ -4369,9 +4369,13 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestClientTimeouts.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientTimeouts.html" title="class in org.apache.hadoop.hbase.client">TestClientTimeouts</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientAfterSplittingRegion</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientCloneLinksAfterDelete</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientError</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientWithRegionReplicas</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientNormal</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TestColumnFamilyDescriptorBuilder</a></dt>
 <dd>&nbsp;</dd>
@@ -4453,7 +4457,13 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMetricsConnection.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMetricsConnection.html" title="class in org.apache.hadoop.hbase.client">TestMetricsConnection</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientError</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientNormal</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobRestoreSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
@@ -7073,6 +7083,28 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/TestSnapshotClientRetries.MasterSyncObserver.html#cloneCount">cloneCount</a></span> - Variable in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/TestSnapshotClientRetries.MasterSyncObserver.html" title="class in org.apache.hadoop.hbase.snapshot">TestSnapshotClientRetries.MasterSyncObserver</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientAfterSplittingRegionTestBase</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#CloneSnapshotFromClientAfterSplittingRegionTestBase--">CloneSnapshotFromClientAfterSplittingRegionTestBase()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html#CloneSnapshotFromClientCloneLinksAfterDeleteTestBase--">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientErrorTestBase</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html#CloneSnapshotFromClientErrorTestBase--">CloneSnapshotFromClientErrorTestBase()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientErrorTestBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientNormalTestBase</span></a> - Class in <a href="org/apache/hadoop/hbase/client/package-summary.html">org.apache.hadoop.hbase.client</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#CloneSnapshotFromClientNormalTestBase--">CloneSnapshotFromClientNormalTestBase()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientNormalTestBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientTestBase</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">Base class for testing clone snapsot</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#CloneSnapshotFromClientTestBase--">CloneSnapshotFromClientTestBase()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestSnapshotCloneIndependence.html#cloneTableName">cloneTableName</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestSnapshotCloneIndependence.html" title="class in org.apache.hadoop.hbase.client">TestSnapshotCloneIndependence</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestBufferedMutatorParams.html#cloneTest-org.apache.hadoop.hbase.client.BufferedMutatorParams-org.apache.hadoop.hbase.client.BufferedMutatorParams-">cloneTest(BufferedMutatorParams, BufferedMutatorParams)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestBufferedMutatorParams.html" title="class in org.apache.hadoop.hbase.client">TestBufferedMutatorParams</a></dt>
@@ -9253,6 +9285,16 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html#countResults-org.apache.hadoop.hbase.quotas.QuotaFilter-">countResults(QuotaFilter)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/TestQuotaAdmin.html" title="class in org.apache.hadoop.hbase.quotas">TestQuotaAdmin</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows(Table)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows(Table)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows(Table)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows(Table)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientError</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows(Table)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientNormal</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html#countRows-org.apache.hadoop.hbase.client.Table-byte:A...-">countRows(Table, byte[]...)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobRestoreSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobSnapshotCloneIndependence.html#countRows-org.apache.hadoop.hbase.client.Table-byte:A...-">countRows(Table, byte[]...)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobSnapshotCloneIndependence.html" title="class in org.apache.hadoop.hbase.client">TestMobSnapshotCloneIndependence</a></dt>
@@ -9923,14 +9965,14 @@
 <dd>
 <div class="block">Create the mob store file</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-byte:A:A-int-byte:A...-">createMobTable(HBaseTestingUtility, TableName, byte[][], int, byte[]...)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-int-byte:A...-">createMobTable(HBaseTestingUtility, TableName, int, byte[]...)</a></span> - Static method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html" title="class in org.apache.hadoop.hbase.snapshot">MobSnapshotTestingUtils</a></dt>
 <dd>
 <div class="block">Create the Mob Table.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-byte:A:A-int-byte:A...-">createMobTable(HBaseTestingUtility, TableName, byte[][], int, byte[]...)</a></span> - Static method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html" title="class in org.apache.hadoop.hbase.snapshot">MobSnapshotTestingUtils</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-byte:A:A-int-java.lang.String-byte:A...-">createMobTable(HBaseTestingUtility, TableName, byte[][], int, String, byte[]...)</a></span> - Static method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html" title="class in org.apache.hadoop.hbase.snapshot">MobSnapshotTestingUtils</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-byte:A...-">createMobTable(HBaseTestingUtility, TableName, byte[]...)</a></span> - Static method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html" title="class in org.apache.hadoop.hbase.snapshot">MobSnapshotTestingUtils</a></dt>
 <dd>
 <div class="block">Create a Mob table.</div>
@@ -10412,12 +10454,22 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MockNoopMasterServices.html#createSystemTable-org.apache.hadoop.hbase.client.TableDescriptor-">createSystemTable(TableDescriptor)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MockNoopMasterServices.html" title="class in org.apache.hadoop.hbase.master">MockNoopMasterServices</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAdmin2.html#createTable-org.apache.hadoop.hbase.TableName-">createTable(TableName)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAdmin2.html" title="class in org.apache.hadoop.hbase.client">TestAdmin2</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCheckAndMutate.html#createTable--">createTable()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">TestCheckAndMutate</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestEnableTable.html#createTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.HTableDescriptor-byte:A:A-">createTable(HBaseTestingUtility, HTableDescriptor, byte[][])</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestEnableTable.html" title="class in org.apache.hadoop.hbase.client">TestEnableTable</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#createTable--">createTable()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#createTable--">createTable()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#createTable--">createTable()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientError</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#createTable--">createTable()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientNormal</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html#createTable--">createTable()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobRestoreSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobSnapshotCloneIndependence.html#createTable-org.apache.hadoop.hbase.TableName-byte:A-">createTable(TableName, byte[])</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobSnapshotCloneIndependence.html" title="class in org.apache.hadoop.hbase.client">TestMobSnapshotCloneIndependence</a></dt>
@@ -10642,9 +10694,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/TableSnapshotInputFormatTestBase.html#createTableAndSnapshot-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-java.lang.String-byte:A-byte:A-int-">createTableAndSnapshot(HBaseTestingUtility, TableName, String, byte[], byte[], int)</a></span> - Static method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TableSnapshotInputFormatTestBase.html" title="class in org.apache.hadoop.hbase.mapreduce">TableSnapshotInputFormatTestBase</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#createTableAndSnapshots--">createTableAndSnapshots()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
-<dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#createTableAndSnapshots--">createTableAndSnapshots()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTableAndSnapshots--">createTableAndSnapshots()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.html#createTableAndWait-org.apache.hadoop.hbase.TableName-byte:A-">createTableAndWait(TableName, byte[])</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.html" title="class in org.apache.hadoop.hbase.regionserver">TestSplitTransactionOnCluster</a></dt>
 <dd>&nbsp;</dd>
@@ -11738,9 +11788,9 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/TestClientOperationTimeout.DelayedRSRpcServices.html#DelayedRSRpcServices-org.apache.hadoop.hbase.regionserver.HRegionServer-">DelayedRSRpcServices(HRegionServer)</a></span> - Constructor for class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestClientOperationTimeout.DelayedRSRpcServices.html" title="class in org.apache.hadoop.hbase">TestClientOperationTimeout.DelayedRSRpcServices</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#delayFlush">delayFlush</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#delayFlush">delayFlush</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html#DelayFlushCoprocessor--">DelayFlushCoprocessor()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html#DelayFlushCoprocessor--">DelayFlushCoprocessor()</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.DelayingMultiThreadedUpdater.html#DelayingMultiThreadedUpdater-org.apache.hadoop.hbase.util.test.LoadTestDataGenerator-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.TableName-double-">DelayingMultiThreadedUpdater(LoadTestDataGenerator, Configuration, TableName, double)</a></span> - Constructor for class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/IntegrationTestRegionReplicaReplication.DelayingMultiThreadedUpdater.html" title="class in org.apache.hadoop.hbase">IntegrationTestRegionReplicaReplication.DelayingMultiThreadedUpdater</a></dt>
 <dd>&nbsp;</dd>
@@ -12949,7 +12999,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/TestRegionObserverScannerOpenHook.EmptyRegionObsever.html#EmptyRegionObsever--">EmptyRegionObsever()</a></span> - Constructor for class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/TestRegionObserverScannerOpenHook.EmptyRegionObsever.html" title="class in org.apache.hadoop.hbase.coprocessor">TestRegionObserverScannerOpenHook.EmptyRegionObsever</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#emptySnapshot">emptySnapshot</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#emptySnapshot">emptySnapshot</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
@@ -14107,6 +14157,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AbstractTestScanCursor.html#FAMILY">FAMILY</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AbstractTestScanCursor.html" title="class in org.apache.hadoop.hbase.client">AbstractTestScanCursor</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/example/TestHttpProxyExample.html#FAMILY">FAMILY</a></span> - Static variable in class org.apache.hadoop.hbase.client.example.<a href="org/apache/hadoop/hbase/client/example/TestHttpProxyExample.html" title="class in org.apache.hadoop.hbase.client.example">TestHttpProxyExample</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAppendFromClientSide.html#FAMILY">FAMILY</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAppendFromClientSide.html" title="class in org.apache.hadoop.hbase.client">TestAppendFromClientSide</a></dt>
@@ -14147,8 +14199,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html#FAMILY">FAMILY</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html" title="class in org.apache.hadoop.hbase.client">TestClientScannerRPCTimeout</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#FAMILY">FAMILY</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestDeleteTimeStamp.html#FAMILY">FAMILY</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestDeleteTimeStamp.html" title="class in org.apache.hadoop.hbase.client">TestDeleteTimeStamp</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestFastFail.html#FAMILY">FAMILY</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestFastFail.html" title="class in org.apache.hadoop.hbase.client">TestFastFail</a></dt>
@@ -17776,9 +17826,15 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/StartMiniClusterOption.html#getNumRegionServers--">getNumRegionServers()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/StartMiniClusterOption.html" title="class in org.apache.hadoop.hbase">StartMiniClusterOption</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#getNumReplicas--">getNumReplicas()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#getNumReplicas--">getNumReplicas()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientAfterSplittingRegion</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#getNumReplicas--">getNumReplicas()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientCloneLinksAfterDelete</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html#getNumReplicas--">getNumReplicas()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientWithRegionReplicas</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#getNumReplicas--">getNumReplicas()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientError</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#getNumReplicas--">getNumReplicas()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientNormal</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#getNumReplicas--">getNumReplicas()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
@@ -18166,7 +18222,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestFromClientSide3.WaitingForScanObserver.html#getRegionObserver--">getRegionObserver()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestFromClientSide3.WaitingForScanObserver.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide3.WaitingForScanObserver</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html#getRegionObserver--">getRegionObserver()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html#getRegionObserver--">getRegionObserver()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestReplicasClient.SlowMeCopro.html#getRegionObserver--">getRegionObserver()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestReplicasClient.SlowMeCopro.html" title="class in org.apache.hadoop.hbase.client">TestReplicasClient.SlowMeCopro</a></dt>
 <dd>&nbsp;</dd>
@@ -19386,6 +19442,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ResourceCheckerJUnitListener.ThreadResourceAnalyzer.html#getVal-org.apache.hadoop.hbase.ResourceChecker.Phase-">getVal(ResourceChecker.Phase)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ResourceCheckerJUnitListener.ThreadResourceAnalyzer.html" title="class in org.apache.hadoop.hbase">ResourceCheckerJUnitListener.ThreadResourceAnalyzer</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/encoding/TestChangingEncoding.html#getValue-int-int-int-">getValue(int, int, int)</a></span> - Static method in class org.apache.hadoop.hbase.io.encoding.<a href="org/apache/hadoop/hbase/io/encoding/TestChangingEncoding.html" title="class in org.apache.hadoop.hbase.io.encoding">TestChangingEncoding</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/metrics/impl/TestGauge.SimpleGauge.html#getValue--">getValue()</a></span> - Method in class org.apache.hadoop.hbase.metrics.impl.<a href="org/apache/hadoop/hbase/metrics/impl/TestGauge.SimpleGauge.html" title="class in org.apache.hadoop.hbase.metrics.impl">TestGauge.SimpleGauge</a></dt>
@@ -23549,8 +23607,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html" title="class in org.apache.hadoop.hbase.client">TestClientScannerRPCTimeout</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestConnectionImplementation.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestConnectionImplementation.html" title="class in org.apache.hadoop.hbase.client">TestConnectionImplementation</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCoprocessorDescriptor.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCoprocessorDescriptor.html" title="class in org.apache.hadoop.hbase.client">TestCoprocessorDescriptor</a></dt>
@@ -26781,6 +26837,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AbstractTestCITimeout.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AbstractTestCITimeout.html" title="class in org.apache.hadoop.hbase.client">AbstractTestCITimeout</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.client.replication.<a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.html" title="class in org.apache.hadoop.hbase.client.replication">TestReplicationAdmin</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.client.replication.<a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithClusters.html" title="class in org.apache.hadoop.hbase.client.replication">TestReplicationAdminWithClusters</a></dt>
@@ -26805,8 +26863,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html" title="class in org.apache.hadoop.hbase.client">TestClientScannerRPCTimeout</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestConnectionImplementation.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestConnectionImplementation.html" title="class in org.apache.hadoop.hbase.client">TestConnectionImplementation</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCoprocessorDescriptor.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCoprocessorDescriptor.html" title="class in org.apache.hadoop.hbase.client">TestCoprocessorDescriptor</a></dt>
@@ -26849,8 +26905,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMetaWithReplicas.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMetaWithReplicas.html" title="class in org.apache.hadoop.hbase.client">TestMetaWithReplicas</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMultipleTimestamps.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMultipleTimestamps.html" title="class in org.apache.hadoop.hbase.client">TestMultipleTimestamps</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMultiRespectsLimits.html#name">name</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMultiRespectsLimits.html" title="class in org.apache.hadoop.hbase.client">TestMultiRespectsLimits</a></dt>
@@ -28462,6 +28516,14 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/LoadTestTool.html#numRegionsPerServer">numRegionsPerServer</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/LoadTestTool.html" title="class in org.apache.hadoop.hbase.util">LoadTestTool</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#numReplicas">numReplicas</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientAfterSplittingRegion</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#numReplicas">numReplicas</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientCloneLinksAfterDelete</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#numReplicas">numReplicas</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientError</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#numReplicas">numReplicas</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientNormal</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html#numReqs">numReqs</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache.RoundRobinExceptionInjector</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/TestHFileBlockIndex.html#numRootEntries">numRootEntries</a></span> - Variable in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/TestHFileBlockIndex.html" title="class in org.apache.hadoop.hbase.io.hfile">TestHFileBlockIndex</a></dt>
@@ -28502,6 +28564,16 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.AtomicScanReader.html#numRowsScanned">numRowsScanned</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.AtomicScanReader.html" title="class in org.apache.hadoop.hbase.regionserver">TestHRegionServerBulkLoad.AtomicScanReader</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#numRowsToLoad--">numRowsToLoad()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#numRowsToLoad--">numRowsToLoad()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#numRowsToLoad--">numRowsToLoad()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientError</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#numRowsToLoad--">numRowsToLoad()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientNormal</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/AcidGuaranteesTestTool.html#numScanners">numScanners</a></span> - Variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/AcidGuaranteesTestTool.html" title="class in org.apache.hadoop.hbase">AcidGuaranteesTestTool</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.html#numScanNext">numScanNext</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerMetrics</a></dt>
@@ -29370,6 +29442,14 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncTableScanner.html#params--">params()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncTableScanner.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScanner</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#params--">params()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientAfterSplittingRegion</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#params--">params()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientCloneLinksAfterDelete</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#params--">params()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientError</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#params--">params()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientNormal</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestRawAsyncTableScan.html#params--">params()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestRawAsyncTableScan.html" title="class in org.apache.hadoop.hbase.client">TestRawAsyncTableScan</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestScannersFromClientSide2.html#params--">params()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestScannersFromClientSide2.html" title="class in org.apache.hadoop.hbase.client">TestScannersFromClientSide2</a></dt>
@@ -30751,7 +30831,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.TableInputFormatForMergeTesting.html#prefixStartKey">prefixStartKey</a></span> - Variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TestTableInputFormatBase.TableInputFormatForMergeTesting.html" title="class in org.apache.hadoop.hbase.mapreduce">TestTableInputFormatBase.TableInputFormatForMergeTesting</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html#preFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">preFlush(ObserverContext&lt;RegionCoprocessorEnvironment&gt;, FlushLifeCycleTracker)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html#preFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">preFlush(ObserverContext&lt;RegionCoprocessorEnvironment&gt;, FlushLifeCycleTracker)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.html#preFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.Store-org.apache.hadoop.hbase.regionserver.InternalScanner-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">preFlush(ObserverContext&lt;RegionCoprocessorEnvironment&gt;, Store, InternalScanner, FlushLifeCycleTracker)</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/SimpleRegionObserver.html" title="class in org.apache.hadoop.hbase.coprocessor">SimpleRegionObserver</a></dt>
 <dd>&nbsp;</dd>
@@ -36956,6 +37036,11 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AbstractTestCIRpcTimeout.html#setUp--">setUp()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AbstractTestCIRpcTimeout.html" title="class in org.apache.hadoop.hbase.client">AbstractTestCIRpcTimeout</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>
+<div class="block">Initialize the tests with a table filled with some data and two snapshots (snapshotName0,
+ snapshotName1) of different states.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/example/TestAsyncClientExample.html#setUp--">setUp()</a></span> - Static method in class org.apache.hadoop.hbase.client.example.<a href="org/apache/hadoop/hbase/client/example/TestAsyncClientExample.html" title="class in org.apache.hadoop.hbase.client.example">TestAsyncClientExample</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/example/TestHttpProxyExample.html#setUp--">setUp()</a></span> - Static method in class org.apache.hadoop.hbase.client.example.<a href="org/apache/hadoop/hbase/client/example/TestHttpProxyExample.html" title="class in org.apache.hadoop.hbase.client.example">TestHttpProxyExample</a></dt>
@@ -37020,11 +37105,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestClientScanner.html#setup--">setup()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientScanner.html" title="class in org.apache.hadoop.hbase.client">TestClientScanner</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#setup--">setup()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
-<dd>
-<div class="block">Initialize the tests with a table filled with some data
- and two snapshots (snapshotName0, snapshotName1) of different states.</div>
-</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCompleteResultScanResultCache.html#setUp--">setUp()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCompleteResultScanResultCache.html" title="class in org.apache.hadoop.hbase.client">TestCompleteResultScanResultCache</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestEnableTable.html#setUp--">setUp()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestEnableTable.html" title="class in org.apache.hadoop.hbase.client">TestEnableTable</a></dt>
@@ -37954,6 +38034,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AbstractTestShell.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AbstractTestShell.html" title="class in org.apache.hadoop.hbase.client">AbstractTestShell</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.replication.<a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdmin.html" title="class in org.apache.hadoop.hbase.client.replication">TestReplicationAdmin</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminForSyncReplication.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.replication.<a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminForSyncReplication.html" title="class in org.apache.hadoop.hbase.client.replication">TestReplicationAdminForSyncReplication</a></dt>
@@ -38008,8 +38090,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestClientTimeouts.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientTimeouts.html" title="class in org.apache.hadoop.hbase.client">TestClientTimeouts</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestConnectionImplementation.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestConnectionImplementation.html" title="class in org.apache.hadoop.hbase.client">TestConnectionImplementation</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestDropTimeoutRequest.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestDropTimeoutRequest.html" title="class in org.apache.hadoop.hbase.client">TestDropTimeoutRequest</a></dt>
@@ -38044,7 +38124,13 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMetaCache.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMetaCache.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientError</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientNormal</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMultipleTimestamps.html#setUpBeforeClass--">setUpBeforeClass()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMultipleTimestamps.html" title="class in org.apache.hadoop.hbase.client">TestMultipleTimestamps</a></dt>
 <dd>&nbsp;</dd>
@@ -38795,9 +38881,15 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.html#setupConfig-org.apache.hadoop.conf.Configuration-">setupConfig(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/TestWALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">TestWALProcedureStore</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#setupConfiguration--">setupConfiguration()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setupConfiguration--">setupConfiguration()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#setupConfiguration--">setupConfiguration()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#setupConfiguration--">setupConfiguration()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#setupConfiguration--">setupConfiguration()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#setupConfiguration--">setupConfiguration()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientError</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#setupConfiguration--">setupConfiguration()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientNormal</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/TestAssignmentManagerBase.html#setupConfiguration-org.apache.hadoop.conf.Configuration-">setupConfiguration(Configuration)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestAssignmentManagerBase.html" title="class in org.apache.hadoop.hbase.master.assignment">TestAssignmentManagerBase</a></dt>
 <dd>&nbsp;</dd>
@@ -39638,13 +39730,13 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html#snapshot-org.apache.hadoop.hbase.client.Admin-java.lang.String-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.SnapshotType-int-">snapshot(Admin, String, TableName, SnapshotType, int)</a></span> - Static method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html" title="class in org.apache.hadoop.hbase.snapshot">SnapshotTestingUtils</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshot0Rows">snapshot0Rows</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#snapshot0Rows">snapshot0Rows</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/TestRestoreFlushSnapshotFromClient.html#snapshot0Rows">snapshot0Rows</a></span> - Variable in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/TestRestoreFlushSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.snapshot">TestRestoreFlushSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshot1Rows">snapshot1Rows</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#snapshot1Rows">snapshot1Rows</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
@@ -39686,23 +39778,23 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/TestExportSnapshot.html#snapshotName">snapshotName</a></span> - Variable in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/TestExportSnapshot.html" title="class in org.apache.hadoop.hbase.snapshot">TestExportSnapshot</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshotName0">snapshotName0</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#snapshotName0">snapshotName0</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/TestRestoreFlushSnapshotFromClient.html#snapshotName0">snapshotName0</a></span> - Variable in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/TestRestoreFlushSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.snapshot">TestRestoreFlushSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html#snapshotName1">snapshotName1</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncSnapshotAdminApi</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshotName1">snapshotName1</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html#snapshotName1">snapshotName1</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncSnapshotAdminApi</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#snapshotName1">snapshotName1</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/TestRestoreFlushSnapshotFromClient.html#snapshotName1">snapshotName1</a></span> - Variable in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/TestRestoreFlushSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.snapshot">TestRestoreFlushSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html#snapshotName2">snapshotName2</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncSnapshotAdminApi</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshotName2">snapshotName2</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html#snapshotName2">snapshotName2</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncSnapshotAdminApi</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#snapshotName2">snapshotName2</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
@@ -39907,7 +39999,7 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/chaos/actions/SplitRandomRegionOfTableAction.html#SplitRandomRegionOfTableAction-int-org.apache.hadoop.hbase.TableName-">SplitRandomRegionOfTableAction(int, TableName)</a></span> - Constructor for class org.apache.hadoop.hbase.chaos.actions.<a href="org/apache/hadoop/hbase/chaos/actions/SplitRandomRegionOfTableAction.html" title="class in org.apache.hadoop.hbase.chaos.actions">SplitRandomRegionOfTableAction</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#splitRegion-org.apache.hadoop.hbase.client.RegionInfo-">splitRegion(RegionInfo)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#splitRegion-org.apache.hadoop.hbase.client.RegionInfo-">splitRegion(RegionInfo)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#splitRegion-org.apache.hadoop.hbase.client.RegionInfo-">splitRegion(RegionInfo)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestRestoreSnapshotFromClient</a></dt>
 <dd>&nbsp;</dd>
@@ -42083,6 +42175,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AbstractTestCIRpcTimeout.html#tableName">tableName</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AbstractTestCIRpcTimeout.html" title="class in org.apache.hadoop.hbase.client">AbstractTestCIRpcTimeout</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithTwoDifferentZKClusters.html#tableName">tableName</a></span> - Static variable in class org.apache.hadoop.hbase.client.replication.<a href="org/apache/hadoop/hbase/client/replication/TestReplicationAdminWithTwoDifferentZKClusters.html" title="class in org.apache.hadoop.hbase.client.replication">TestReplicationAdminWithTwoDifferentZKClusters</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestAsyncAdminBase.html#tableName">tableName</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestAsyncAdminBase.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminBase</a></dt>
@@ -42093,8 +42187,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestClientPushback.html#tableName">tableName</a></span> - Static variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientPushback.html" title="class in org.apache.hadoop.hbase.client">TestClientPushback</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#tableName">tableName</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestFlushFromClient.html#tableName">tableName</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestFlushFromClient.html" title="class in org.apache.hadoop.hbase.client">TestFlushFromClient</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestMvccConsistentScanner.html#tableName">tableName</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMvccConsistentScanner.html" title="class in org.apache.hadoop.hbase.client">TestMvccConsistentScanner</a></dt>
@@ -42453,6 +42545,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AbstractTestAsyncTableScan.html#tearDown--">tearDown()</a></span> - Static method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AbstractTestAsyncTableScan.html" title="class in org.apache.hadoop.hbase.client">AbstractTestAsyncTableScan</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDown--">tearDown()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/example/TestAsyncClientExample.html#tearDown--">tearDown()</a></span> - Static method in class org.apache.hadoop.hbase.client.example.<a href="org/apache/hadoop/hbase/client/example/TestAsyncClientExample.html" title="class in org.apache.hadoop.hbase.client.example">TestAsyncClientExample</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/example/TestHttpProxyExample.html#tearDown--">tearDown()</a></span> - Static method in class org.apache.hadoop.hbase.client.example.<a href="org/apache/hadoop/hbase/client/example/TestHttpProxyExample.html" title="class in org.apache.hadoop.hbase.client.example">TestHttpProxyExample</a></dt>
@@ -42505,8 +42599,6 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestClientScanner.html#teardown--">teardown()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientScanner.html" title="class in org.apache.hadoop.hbase.client">TestClientScanner</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#tearDown--">tearDown()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase

<TRUNCATED>

[03/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html
deleted file mode 100644
index 800c530..0000000
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html
+++ /dev/null
@@ -1,260 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<title>Source code</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-</head>
-<body>
-<div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
-<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
-<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
-<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
-<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
-<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
-<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
-<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
-<span class="sourceLineNo">009</span> *<a name="line.9"></a>
-<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
-<span class="sourceLineNo">011</span> *<a name="line.11"></a>
-<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
-<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
-<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
-<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
-<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
-<span class="sourceLineNo">017</span> */<a name="line.17"></a>
-<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
-<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.junit.Assert.assertEquals;<a name="line.20"></a>
-<span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.io.InterruptedIOException;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.Optional;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HConstants;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.TableName;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.coprocessor.RegionObserver;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.snapshot.MobSnapshotTestingUtils;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.junit.BeforeClass;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.junit.ClassRule;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.Rule;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.junit.Test;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.junit.experimental.categories.Category;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.junit.rules.TestName;<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>/**<a name="line.50"></a>
-<span class="sourceLineNo">051</span> * Test clone snapshots from the client<a name="line.51"></a>
-<span class="sourceLineNo">052</span> */<a name="line.52"></a>
-<span class="sourceLineNo">053</span>@Category({LargeTests.class, ClientTests.class})<a name="line.53"></a>
-<span class="sourceLineNo">054</span>public class TestMobCloneSnapshotFromClient extends TestCloneSnapshotFromClient {<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  @ClassRule<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      HBaseClassTestRule.forClass(TestMobCloneSnapshotFromClient.class);<a name="line.58"></a>
-<span class="sourceLineNo">059</span><a name="line.59"></a>
-<span class="sourceLineNo">060</span>  private static boolean delayFlush = false;<a name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>  @Rule<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  public TestName name = new TestName();<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  protected static void setupConfiguration() {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    TestCloneSnapshotFromClient.setupConfiguration();<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    TEST_UTIL.getConfiguration().setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, 0);<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    TEST_UTIL.getConfiguration().setInt(MobConstants.MOB_FILE_CACHE_SIZE_KEY, 0);<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  @BeforeClass<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  public static void setUpBeforeClass() throws Exception {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    setupConfiguration();<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    TEST_UTIL.startMiniCluster(3);<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  @Override<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  protected void createTableAndSnapshots() throws Exception {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    // create Table and disable it<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    createMobTable(TEST_UTIL, tableName, SnapshotTestingUtils.getSplitKeys(), getNumReplicas(),<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      FAMILY);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    delayFlush = false;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    admin.disableTable(tableName);<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>    // take an empty snapshot<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    admin.snapshot(emptySnapshot, tableName);<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>    Connection c = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    Table table = c.getTable(tableName);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    try {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      // enable table and insert data<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      admin.enableTable(tableName);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      SnapshotTestingUtils.loadData(TEST_UTIL, tableName, 20, FAMILY);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      snapshot0Rows = MobSnapshotTestingUtils.countMobRows(table);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      admin.disableTable(tableName);<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>      // take a snapshot<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      admin.snapshot(snapshotName0, tableName);<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>      // enable table and insert more data<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      admin.enableTable(tableName);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      SnapshotTestingUtils.loadData(TEST_UTIL, tableName, 20, FAMILY);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      snapshot1Rows = MobSnapshotTestingUtils.countMobRows(table);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      admin.disableTable(tableName);<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>      // take a snapshot of the updated table<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      admin.snapshot(snapshotName1, tableName);<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // re-enable table<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      admin.enableTable(tableName);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    } finally {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      table.close();<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><a name="line.115"></a>
-<span class="sourceLineNo">116</span>  @Test<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  @Override<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  public void testCloneLinksAfterDelete() throws IOException, InterruptedException {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    // delay the flush to make sure<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    delayFlush = true;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    SnapshotTestingUtils.loadData(TEST_UTIL, tableName, 20, FAMILY);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    long tid = System.currentTimeMillis();<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    byte[] snapshotName3 = Bytes.toBytes("snaptb3-" + tid);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    TableName clonedTableName3 = TableName.valueOf(name.getMethodName() + System.currentTimeMillis());<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    admin.snapshot(snapshotName3, tableName);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    delayFlush = false;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    int snapshot3Rows = -1;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    try (Table table = TEST_UTIL.getConnection().getTable(tableName)) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      snapshot3Rows = TEST_UTIL.countRows(table);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    admin.cloneSnapshot(snapshotName3, clonedTableName3);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    admin.deleteSnapshot(snapshotName3);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    super.testCloneLinksAfterDelete();<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    verifyRowCount(TEST_UTIL, clonedTableName3, snapshot3Rows);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    admin.disableTable(clonedTableName3);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    admin.deleteTable(clonedTableName3);<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 void verifyRowCount(final HBaseTestingUtility util, final TableName tableName,<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      long expectedRows) throws IOException {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    MobSnapshotTestingUtils.verifyMobRowCount(util, tableName, expectedRows);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  }<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>   * This coprocessor is used to delay the flush.<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   */<a name="line.147"></a>
-<span class="sourceLineNo">148</span>  public static class DelayFlushCoprocessor implements RegionCoprocessor, RegionObserver {<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span>    @Override<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      return Optional.of(this);<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    }<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>    @Override<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    public void preFlush(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        FlushLifeCycleTracker tracker) throws IOException {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      if (delayFlush) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        try {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>          if (Bytes.compareTo(e.getEnvironment().getRegionInfo().getStartKey(),<a name="line.160"></a>
-<span class="sourceLineNo">161</span>            HConstants.EMPTY_START_ROW) != 0) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>            Thread.sleep(100);<a name="line.162"></a>
-<span class="sourceLineNo">163</span>          }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        } catch (InterruptedException e1) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>          throw new InterruptedIOException(e1.getMessage());<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      }<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
-<span class="sourceLineNo">170</span><a name="line.170"></a>
-<span class="sourceLineNo">171</span>  private void createMobTable(final HBaseTestingUtility util, final TableName tableName,<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    final byte[][] splitKeys, int regionReplication, final byte[]... families) throws IOException,<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    InterruptedException {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    HTableDescriptor htd = new HTableDescriptor(tableName);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    htd.setRegionReplication(regionReplication);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    htd.addCoprocessor(DelayFlushCoprocessor.class.getName());<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    for (byte[] family : families) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      HColumnDescriptor hcd = new HColumnDescriptor(family);<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      hcd.setMobEnabled(true);<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      hcd.setMobThreshold(0L);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      htd.addFamily(hcd);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    util.getAdmin().createTable(htd, splitKeys);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    SnapshotTestingUtils.waitForTableToBeOnline(util, tableName);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    assertEquals((splitKeys.length + 1) * regionReplication,<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      util.getAdmin().getTableRegions(tableName).size());<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>}<a name="line.188"></a>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html
deleted file mode 100644
index 800c530..0000000
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html
+++ /dev/null
@@ -1,260 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html lang="en">
-<head>
-<title>Source code</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-</head>
-<body>
-<div class="sourceContainer">
-<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
-<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
-<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
-<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
-<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
-<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
-<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
-<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
-<span class="sourceLineNo">009</span> *<a name="line.9"></a>
-<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
-<span class="sourceLineNo">011</span> *<a name="line.11"></a>
-<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
-<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
-<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
-<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
-<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
-<span class="sourceLineNo">017</span> */<a name="line.17"></a>
-<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
-<span class="sourceLineNo">019</span><a name="line.19"></a>
-<span class="sourceLineNo">020</span>import static org.junit.Assert.assertEquals;<a name="line.20"></a>
-<span class="sourceLineNo">021</span><a name="line.21"></a>
-<span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import java.io.InterruptedIOException;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import java.util.Optional;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.HBaseTestingUtility;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HColumnDescriptor;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HConstants;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HTableDescriptor;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.TableName;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.coprocessor.RegionObserver;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import org.apache.hadoop.hbase.snapshot.MobSnapshotTestingUtils;<a name="line.38"></a>
-<span class="sourceLineNo">039</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.junit.BeforeClass;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.junit.ClassRule;<a name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.Rule;<a name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.junit.Test;<a name="line.46"></a>
-<span class="sourceLineNo">047</span>import org.junit.experimental.categories.Category;<a name="line.47"></a>
-<span class="sourceLineNo">048</span>import org.junit.rules.TestName;<a name="line.48"></a>
-<span class="sourceLineNo">049</span><a name="line.49"></a>
-<span class="sourceLineNo">050</span>/**<a name="line.50"></a>
-<span class="sourceLineNo">051</span> * Test clone snapshots from the client<a name="line.51"></a>
-<span class="sourceLineNo">052</span> */<a name="line.52"></a>
-<span class="sourceLineNo">053</span>@Category({LargeTests.class, ClientTests.class})<a name="line.53"></a>
-<span class="sourceLineNo">054</span>public class TestMobCloneSnapshotFromClient extends TestCloneSnapshotFromClient {<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  @ClassRule<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      HBaseClassTestRule.forClass(TestMobCloneSnapshotFromClient.class);<a name="line.58"></a>
-<span class="sourceLineNo">059</span><a name="line.59"></a>
-<span class="sourceLineNo">060</span>  private static boolean delayFlush = false;<a name="line.60"></a>
-<span class="sourceLineNo">061</span><a name="line.61"></a>
-<span class="sourceLineNo">062</span>  @Rule<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  public TestName name = new TestName();<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  protected static void setupConfiguration() {<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    TestCloneSnapshotFromClient.setupConfiguration();<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    TEST_UTIL.getConfiguration().setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, 0);<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    TEST_UTIL.getConfiguration().setInt(MobConstants.MOB_FILE_CACHE_SIZE_KEY, 0);<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  @BeforeClass<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  public static void setUpBeforeClass() throws Exception {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    setupConfiguration();<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    TEST_UTIL.startMiniCluster(3);<a name="line.74"></a>
-<span class="sourceLineNo">075</span>  }<a name="line.75"></a>
-<span class="sourceLineNo">076</span><a name="line.76"></a>
-<span class="sourceLineNo">077</span>  @Override<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  protected void createTableAndSnapshots() throws Exception {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    // create Table and disable it<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    createMobTable(TEST_UTIL, tableName, SnapshotTestingUtils.getSplitKeys(), getNumReplicas(),<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      FAMILY);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    delayFlush = false;<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    admin.disableTable(tableName);<a name="line.83"></a>
-<span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>    // take an empty snapshot<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    admin.snapshot(emptySnapshot, tableName);<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>    Connection c = ConnectionFactory.createConnection(TEST_UTIL.getConfiguration());<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    Table table = c.getTable(tableName);<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    try {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      // enable table and insert data<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      admin.enableTable(tableName);<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      SnapshotTestingUtils.loadData(TEST_UTIL, tableName, 20, FAMILY);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      snapshot0Rows = MobSnapshotTestingUtils.countMobRows(table);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      admin.disableTable(tableName);<a name="line.95"></a>
-<span class="sourceLineNo">096</span><a name="line.96"></a>
-<span class="sourceLineNo">097</span>      // take a snapshot<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      admin.snapshot(snapshotName0, tableName);<a name="line.98"></a>
-<span class="sourceLineNo">099</span><a name="line.99"></a>
-<span class="sourceLineNo">100</span>      // enable table and insert more data<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      admin.enableTable(tableName);<a name="line.101"></a>
-<span class="sourceLineNo">102</span>      SnapshotTestingUtils.loadData(TEST_UTIL, tableName, 20, FAMILY);<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      snapshot1Rows = MobSnapshotTestingUtils.countMobRows(table);<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      admin.disableTable(tableName);<a name="line.104"></a>
-<span class="sourceLineNo">105</span><a name="line.105"></a>
-<span class="sourceLineNo">106</span>      // take a snapshot of the updated table<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      admin.snapshot(snapshotName1, tableName);<a name="line.107"></a>
-<span class="sourceLineNo">108</span><a name="line.108"></a>
-<span class="sourceLineNo">109</span>      // re-enable table<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      admin.enableTable(tableName);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>    } finally {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>      table.close();<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><a name="line.115"></a>
-<span class="sourceLineNo">116</span>  @Test<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  @Override<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  public void testCloneLinksAfterDelete() throws IOException, InterruptedException {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    // delay the flush to make sure<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    delayFlush = true;<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    SnapshotTestingUtils.loadData(TEST_UTIL, tableName, 20, FAMILY);<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    long tid = System.currentTimeMillis();<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    byte[] snapshotName3 = Bytes.toBytes("snaptb3-" + tid);<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    TableName clonedTableName3 = TableName.valueOf(name.getMethodName() + System.currentTimeMillis());<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    admin.snapshot(snapshotName3, tableName);<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    delayFlush = false;<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    int snapshot3Rows = -1;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    try (Table table = TEST_UTIL.getConnection().getTable(tableName)) {<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      snapshot3Rows = TEST_UTIL.countRows(table);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    }<a name="line.130"></a>
-<span class="sourceLineNo">131</span>    admin.cloneSnapshot(snapshotName3, clonedTableName3);<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    admin.deleteSnapshot(snapshotName3);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>    super.testCloneLinksAfterDelete();<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    verifyRowCount(TEST_UTIL, clonedTableName3, snapshot3Rows);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    admin.disableTable(clonedTableName3);<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    admin.deleteTable(clonedTableName3);<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 void verifyRowCount(final HBaseTestingUtility util, final TableName tableName,<a name="line.140"></a>
-<span class="sourceLineNo">141</span>      long expectedRows) throws IOException {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    MobSnapshotTestingUtils.verifyMobRowCount(util, tableName, expectedRows);<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  }<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>   * This coprocessor is used to delay the flush.<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   */<a name="line.147"></a>
-<span class="sourceLineNo">148</span>  public static class DelayFlushCoprocessor implements RegionCoprocessor, RegionObserver {<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span>    @Override<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      return Optional.of(this);<a name="line.152"></a>
-<span class="sourceLineNo">153</span>    }<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>    @Override<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    public void preFlush(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        FlushLifeCycleTracker tracker) throws IOException {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      if (delayFlush) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        try {<a name="line.159"></a>
-<span class="sourceLineNo">160</span>          if (Bytes.compareTo(e.getEnvironment().getRegionInfo().getStartKey(),<a name="line.160"></a>
-<span class="sourceLineNo">161</span>            HConstants.EMPTY_START_ROW) != 0) {<a name="line.161"></a>
-<span class="sourceLineNo">162</span>            Thread.sleep(100);<a name="line.162"></a>
-<span class="sourceLineNo">163</span>          }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>        } catch (InterruptedException e1) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>          throw new InterruptedIOException(e1.getMessage());<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        }<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      }<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
-<span class="sourceLineNo">170</span><a name="line.170"></a>
-<span class="sourceLineNo">171</span>  private void createMobTable(final HBaseTestingUtility util, final TableName tableName,<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    final byte[][] splitKeys, int regionReplication, final byte[]... families) throws IOException,<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    InterruptedException {<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    HTableDescriptor htd = new HTableDescriptor(tableName);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    htd.setRegionReplication(regionReplication);<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    htd.addCoprocessor(DelayFlushCoprocessor.class.getName());<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    for (byte[] family : families) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      HColumnDescriptor hcd = new HColumnDescriptor(family);<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      hcd.setMobEnabled(true);<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      hcd.setMobThreshold(0L);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      htd.addFamily(hcd);<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
-<span class="sourceLineNo">183</span>    util.getAdmin().createTable(htd, splitKeys);<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    SnapshotTestingUtils.waitForTableToBeOnline(util, tableName);<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    assertEquals((splitKeys.length + 1) * regionReplication,<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      util.getAdmin().getTableRegions(tableName).size());<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>}<a name="line.188"></a>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-</pre>
-</div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html
new file mode 100644
index 0000000..b9bd024
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.snapshot.MobSnapshotTestingUtils;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.junit.BeforeClass;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.ClassRule;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.experimental.categories.Category;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>@Category({ LargeTests.class, ClientTests.class })<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public class TestMobCloneSnapshotFromClientAfterSplittingRegion<a name="line.33"></a>
+<span class="sourceLineNo">034</span>    extends CloneSnapshotFromClientAfterSplittingRegionTestBase {<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  @ClassRule<a name="line.36"></a>
+<span class="sourceLineNo">037</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    HBaseClassTestRule.forClass(TestMobCloneSnapshotFromClientAfterSplittingRegion.class);<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  protected static void setupConfiguration() {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    CloneSnapshotFromClientTestBase.setupConfiguration();<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    TEST_UTIL.getConfiguration().setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, 0);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    TEST_UTIL.getConfiguration().setInt(MobConstants.MOB_FILE_CACHE_SIZE_KEY, 0);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  }<a name="line.44"></a>
+<span class="sourceLineNo">045</span><a name="line.45"></a>
+<span class="sourceLineNo">046</span>  @BeforeClass<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  public static void setUpBeforeClass() throws Exception {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    setupConfiguration();<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    TEST_UTIL.startMiniCluster(3);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  }<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>  @Override<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  protected void createTable() throws IOException, InterruptedException {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    MobSnapshotTestingUtils.createMobTable(TEST_UTIL, tableName,<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      SnapshotTestingUtils.getSplitKeys(), getNumReplicas(), FAMILY);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  }<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  @Override<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  protected int numRowsToLoad() {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    return 20;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>  @Override<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  protected int countRows(Table table) throws IOException {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    return MobSnapshotTestingUtils.countMobRows(table);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html
new file mode 100644
index 0000000..d926864
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.io.InterruptedIOException;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.Optional;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.HConstants;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.TableName;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.coprocessor.RegionObserver;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.snapshot.MobSnapshotTestingUtils;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.junit.BeforeClass;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.junit.ClassRule;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.junit.Test;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.junit.experimental.categories.Category;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>@Category({ LargeTests.class, ClientTests.class })<a name="line.43"></a>
+<span class="sourceLineNo">044</span>public class TestMobCloneSnapshotFromClientCloneLinksAfterDelete<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    extends CloneSnapshotFromClientCloneLinksAfterDeleteTestBase {<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>  @ClassRule<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    HBaseClassTestRule.forClass(TestMobCloneSnapshotFromClientCloneLinksAfterDelete.class);<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>  private static boolean delayFlush = false;<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   * This coprocessor is used to delay the flush.<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  public static class DelayFlushCoprocessor implements RegionCoprocessor, RegionObserver {<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>    @Override<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      return Optional.of(this);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>    @Override<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    public void preFlush(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        FlushLifeCycleTracker tracker) throws IOException {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>      if (delayFlush) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        try {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>          if (Bytes.compareTo(e.getEnvironment().getRegionInfo().getStartKey(),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>            HConstants.EMPTY_START_ROW) != 0) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>            Thread.sleep(100);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>          }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        } catch (InterruptedException e1) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>          throw new InterruptedIOException(e1.getMessage());<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>    }<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>  protected static void setupConfiguration() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    CloneSnapshotFromClientTestBase.setupConfiguration();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    TEST_UTIL.getConfiguration().setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, 0);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    TEST_UTIL.getConfiguration().setInt(MobConstants.MOB_FILE_CACHE_SIZE_KEY, 0);<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>  @BeforeClass<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public static void setUpBeforeClass() throws Exception {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    setupConfiguration();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    TEST_UTIL.startMiniCluster(3);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Override<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  protected void createTable() throws IOException, InterruptedException {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    MobSnapshotTestingUtils.createMobTable(TEST_UTIL, tableName,<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      SnapshotTestingUtils.getSplitKeys(), getNumReplicas(), DelayFlushCoprocessor.class.getName(),<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      FAMILY);<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>  @Override<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  protected int numRowsToLoad() {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    return 20;<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>  @Override<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  protected int countRows(Table table) throws IOException {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    return MobSnapshotTestingUtils.countMobRows(table);<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>  @Test<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  @Override<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public void testCloneLinksAfterDelete() throws IOException, InterruptedException {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    // delay the flush to make sure<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    delayFlush = true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    SnapshotTestingUtils.loadData(TEST_UTIL, tableName, 20, FAMILY);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    long tid = System.currentTimeMillis();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    byte[] snapshotName3 = Bytes.toBytes("snaptb3-" + tid);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    TableName clonedTableName3 =<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      TableName.valueOf(name.getMethodName() + System.currentTimeMillis());<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    admin.snapshot(snapshotName3, tableName);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    delayFlush = false;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    int snapshot3Rows = -1;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    try (Table table = TEST_UTIL.getConnection().getTable(tableName)) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      snapshot3Rows = TEST_UTIL.countRows(table);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    admin.cloneSnapshot(snapshotName3, clonedTableName3);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    admin.deleteSnapshot(snapshotName3);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    super.testCloneLinksAfterDelete();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    verifyRowCount(TEST_UTIL, clonedTableName3, snapshot3Rows);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    admin.disableTable(clonedTableName3);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    admin.deleteTable(clonedTableName3);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html
new file mode 100644
index 0000000..d926864
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html
@@ -0,0 +1,203 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import java.io.InterruptedIOException;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.util.Optional;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.HConstants;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.TableName;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.coprocessor.ObserverContext;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessor;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.coprocessor.RegionObserver;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import org.apache.hadoop.hbase.snapshot.MobSnapshotTestingUtils;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.37"></a>
+<span class="sourceLineNo">038</span>import org.junit.BeforeClass;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import org.junit.ClassRule;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import org.junit.Test;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.junit.experimental.categories.Category;<a name="line.41"></a>
+<span class="sourceLineNo">042</span><a name="line.42"></a>
+<span class="sourceLineNo">043</span>@Category({ LargeTests.class, ClientTests.class })<a name="line.43"></a>
+<span class="sourceLineNo">044</span>public class TestMobCloneSnapshotFromClientCloneLinksAfterDelete<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    extends CloneSnapshotFromClientCloneLinksAfterDeleteTestBase {<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>  @ClassRule<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    HBaseClassTestRule.forClass(TestMobCloneSnapshotFromClientCloneLinksAfterDelete.class);<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>  private static boolean delayFlush = false;<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   * This coprocessor is used to delay the flush.<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   */<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  public static class DelayFlushCoprocessor implements RegionCoprocessor, RegionObserver {<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>    @Override<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      return Optional.of(this);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    }<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>    @Override<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    public void preFlush(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        FlushLifeCycleTracker tracker) throws IOException {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>      if (delayFlush) {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        try {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>          if (Bytes.compareTo(e.getEnvironment().getRegionInfo().getStartKey(),<a name="line.68"></a>
+<span class="sourceLineNo">069</span>            HConstants.EMPTY_START_ROW) != 0) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>            Thread.sleep(100);<a name="line.70"></a>
+<span class="sourceLineNo">071</span>          }<a name="line.71"></a>
+<span class="sourceLineNo">072</span>        } catch (InterruptedException e1) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>          throw new InterruptedIOException(e1.getMessage());<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>    }<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>  protected static void setupConfiguration() {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>    CloneSnapshotFromClientTestBase.setupConfiguration();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    TEST_UTIL.getConfiguration().setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, 0);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    TEST_UTIL.getConfiguration().setInt(MobConstants.MOB_FILE_CACHE_SIZE_KEY, 0);<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>  @BeforeClass<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public static void setUpBeforeClass() throws Exception {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    setupConfiguration();<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    TEST_UTIL.startMiniCluster(3);<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  }<a name="line.89"></a>
+<span class="sourceLineNo">090</span><a name="line.90"></a>
+<span class="sourceLineNo">091</span>  @Override<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  protected void createTable() throws IOException, InterruptedException {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    MobSnapshotTestingUtils.createMobTable(TEST_UTIL, tableName,<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      SnapshotTestingUtils.getSplitKeys(), getNumReplicas(), DelayFlushCoprocessor.class.getName(),<a name="line.94"></a>
+<span class="sourceLineNo">095</span>      FAMILY);<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>  @Override<a name="line.98"></a>
+<span class="sourceLineNo">099</span>  protected int numRowsToLoad() {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    return 20;<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>  @Override<a name="line.103"></a>
+<span class="sourceLineNo">104</span>  protected int countRows(Table table) throws IOException {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    return MobSnapshotTestingUtils.countMobRows(table);<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>  @Test<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  @Override<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public void testCloneLinksAfterDelete() throws IOException, InterruptedException {<a name="line.110"></a>
+<span class="sourceLineNo">111</span>    // delay the flush to make sure<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    delayFlush = true;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    SnapshotTestingUtils.loadData(TEST_UTIL, tableName, 20, FAMILY);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    long tid = System.currentTimeMillis();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    byte[] snapshotName3 = Bytes.toBytes("snaptb3-" + tid);<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    TableName clonedTableName3 =<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      TableName.valueOf(name.getMethodName() + System.currentTimeMillis());<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    admin.snapshot(snapshotName3, tableName);<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    delayFlush = false;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    int snapshot3Rows = -1;<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    try (Table table = TEST_UTIL.getConnection().getTable(tableName)) {<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      snapshot3Rows = TEST_UTIL.countRows(table);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    admin.cloneSnapshot(snapshotName3, clonedTableName3);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    admin.deleteSnapshot(snapshotName3);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    super.testCloneLinksAfterDelete();<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    verifyRowCount(TEST_UTIL, clonedTableName3, snapshot3Rows);<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    admin.disableTable(clonedTableName3);<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    admin.deleteTable(clonedTableName3);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html
new file mode 100644
index 0000000..aaaf043
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html
@@ -0,0 +1,138 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.master.cleaner.TimeToLiveHFileCleaner;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.mob.MobConstants;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.snapshot.MobSnapshotTestingUtils;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.testclassification.ClientTests;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.junit.BeforeClass;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.ClassRule;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.experimental.categories.Category;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>@Category({ LargeTests.class, ClientTests.class })<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public class TestMobCloneSnapshotFromClientError extends CloneSnapshotFromClientErrorTestBase {<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>  @ClassRule<a name="line.35"></a>
+<span class="sourceLineNo">036</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.36"></a>
+<span class="sourceLineNo">037</span>    HBaseClassTestRule.forClass(TestMobCloneSnapshotFromClientError.class);<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>  protected static void setupConfiguration() {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    CloneSnapshotFromClientTestBase.setupConfiguration();<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    TEST_UTIL.getConfiguration().setLong(TimeToLiveHFileCleaner.TTL_CONF_KEY, 0);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    TEST_UTIL.getConfiguration().setInt(MobConstants.MOB_FILE_CACHE_SIZE_KEY, 0);<a name="line.42"></a>
+<span class="sourceLineNo">043</span>  }<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>  @BeforeClass<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  public static void setUpBeforeClass() throws Exception {<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    setupConfiguration();<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    TEST_UTIL.startMiniCluster(3);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  }<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 createTable() throws IOException, InterruptedException {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    MobSnapshotTestingUtils.createMobTable(TEST_UTIL, tableName,<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      SnapshotTestingUtils.getSplitKeys(), getNumReplicas(), FAMILY);<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  }<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>  @Override<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  protected int numRowsToLoad() {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    return 20;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  }<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  @Override<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  protected int countRows(Table table) throws IOException {<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    return MobSnapshotTestingUtils.countMobRows(table);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>


[23/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html b/devapidocs/src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html
index 2a53ba8..c51039f 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html
@@ -50,26 +50,31 @@
 <span class="sourceLineNo">042</span>    instantiateMobFileCache(conf);<a name="line.42"></a>
 <span class="sourceLineNo">043</span>  }<a name="line.43"></a>
 <span class="sourceLineNo">044</span><a name="line.44"></a>
-<span class="sourceLineNo">045</span>  /**<a name="line.45"></a>
-<span class="sourceLineNo">046</span>   * Instantiates the MobFileCache.<a name="line.46"></a>
-<span class="sourceLineNo">047</span>   * @param conf The current configuration.<a name="line.47"></a>
-<span class="sourceLineNo">048</span>   * @return The current instance of MobFileCache.<a name="line.48"></a>
-<span class="sourceLineNo">049</span>   */<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  public static synchronized MobFileCache instantiateMobFileCache(Configuration conf) {<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    if (mobFileCache == null) {<a name="line.51"></a>
-<span class="sourceLineNo">052</span>      mobFileCache = new MobFileCache(conf);<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    }<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    return mobFileCache;<a name="line.54"></a>
-<span class="sourceLineNo">055</span>  }<a name="line.55"></a>
-<span class="sourceLineNo">056</span><a name="line.56"></a>
-<span class="sourceLineNo">057</span>  /**<a name="line.57"></a>
-<span class="sourceLineNo">058</span>   * Gets the MobFileCache.<a name="line.58"></a>
-<span class="sourceLineNo">059</span>   * @return The MobFileCache.<a name="line.59"></a>
-<span class="sourceLineNo">060</span>   */<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  public MobFileCache getMobFileCache() {<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    return mobFileCache;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  }<a name="line.63"></a>
-<span class="sourceLineNo">064</span>}<a name="line.64"></a>
+<span class="sourceLineNo">045</span>  public MobCacheConfig(Configuration conf, boolean needBlockCache) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    super(conf, needBlockCache);<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    instantiateMobFileCache(conf);<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  }<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>  /**<a name="line.50"></a>
+<span class="sourceLineNo">051</span>   * Instantiates the MobFileCache.<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   * @param conf The current configuration.<a name="line.52"></a>
+<span class="sourceLineNo">053</span>   * @return The current instance of MobFileCache.<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   */<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  public static synchronized MobFileCache instantiateMobFileCache(Configuration conf) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    if (mobFileCache == null) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      mobFileCache = new MobFileCache(conf);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    }<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    return mobFileCache;<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  }<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>   * Gets the MobFileCache.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   * @return The MobFileCache.<a name="line.64"></a>
+<span class="sourceLineNo">065</span>   */<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  public MobFileCache getMobFileCache() {<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    return mobFileCache;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  }<a name="line.68"></a>
+<span class="sourceLineNo">069</span>}<a name="line.69"></a>
 
 
 


[31/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 60a8fa3..7c84dbc 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -710,20 +710,20 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/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/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/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/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/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 23060c2..2731576 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -130,9 +130,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
index feee307..7eedc5c 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -247,8 +247,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
index 3c7146a..f8e4b11 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
@@ -160,8 +160,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.PeerState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeer.PeerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">SyncReplicationState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.PeerState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeer.PeerState</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 cd3870f..30c4e73 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -207,8 +207,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 8051208..eec8680 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -142,9 +142,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/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/9c64af45/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 dfa02b5..6ef281d 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -191,9 +191,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/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>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
index 2853d09..81a90a9 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -199,9 +199,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 1069aae..632d13d 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="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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.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/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/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/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/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/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/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/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/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/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/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/9c64af45/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 7a8c74a..7e8927b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -18,9 +18,9 @@
 <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 = "";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Sun Oct 14 14:43:26 UTC 2018";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Mon Oct 15 14:44:12 UTC 2018";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://jenkins-websites1.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "50457414874b3c76a0b57496f86b207e";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "935f1423f9eca8b471ab74f3b32de6b8";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 


[07/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClient.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClient.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClient.html
deleted file mode 100644
index 26b39ff..0000000
--- a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClient.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient (Apache HBase 3.0.0-SNAPSHOT Test API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClient.html" target="_top">Frames</a></li>
-<li><a href="TestMobCloneSnapshotFromClient.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<div class="header">
-<h2 title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient</h2>
-</div>
-<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient</div>
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../../overview-summary.html">Overview</a></li>
-<li><a href="../package-summary.html">Package</a></li>
-<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
-<li class="navBarCell1Rev">Use</li>
-<li><a href="../../../../../../overview-tree.html">Tree</a></li>
-<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li>Prev</li>
-<li>Next</li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClient.html" target="_top">Frames</a></li>
-<li><a href="TestMobCloneSnapshotFromClient.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientAfterSplittingRegion.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientAfterSplittingRegion.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientAfterSplittingRegion.html
new file mode 100644
index 0000000..344706a
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientAfterSplittingRegion.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientAfterSplittingRegion (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientAfterSplittingRegion (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientAfterSplittingRegion" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientAfterSplittingRegion</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientAfterSplittingRegion</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html
new file mode 100644
index 0000000..1480156
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html
new file mode 100644
index 0000000..5d94713
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientCloneLinksAfterDelete (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientCloneLinksAfterDelete (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientCloneLinksAfterDelete" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientCloneLinksAfterDelete</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientCloneLinksAfterDelete</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientError.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientError.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientError.html
new file mode 100644
index 0000000..c1efa2d
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientError.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientError (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientError (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientError.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientError.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientError" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientError</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientError</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientError.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientError.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientNormal.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientNormal.html b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientNormal.html
new file mode 100644
index 0000000..15a59a2
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientNormal.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientNormal (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientNormal (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientNormal.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientNormal.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientNormal" class="title">Uses of Class<br>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientNormal</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientNormal</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/client/class-use/TestMobCloneSnapshotFromClientNormal.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientNormal.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/package-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/package-frame.html b/testdevapidocs/org/apache/hadoop/hbase/client/package-frame.html
index 599a687..0476565 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/package-frame.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/package-frame.html
@@ -30,6 +30,11 @@
 <li><a href="AbstractTestScanCursor.SparseFilter.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">AbstractTestScanCursor.SparseFilter</a></li>
 <li><a href="AbstractTestShell.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">AbstractTestShell</a></li>
 <li><a href="BufferingScanResultConsumer.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">BufferingScanResultConsumer</a></li>
+<li><a href="CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">CloneSnapshotFromClientAfterSplittingRegionTestBase</a></li>
+<li><a href="CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></li>
+<li><a href="CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">CloneSnapshotFromClientErrorTestBase</a></li>
+<li><a href="CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">CloneSnapshotFromClientNormalTestBase</a></li>
+<li><a href="CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">CloneSnapshotFromClientTestBase</a></li>
 <li><a href="ColumnCountOnRowFilter.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">ColumnCountOnRowFilter</a></li>
 <li><a href="DoNothingAsyncRegistry.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">DoNothingAsyncRegistry</a></li>
 <li><a href="HConnectionTestingUtility.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">HConnectionTestingUtility</a></li>
@@ -148,8 +153,10 @@
 <li><a href="TestClientTimeouts.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestClientTimeouts</a></li>
 <li><a href="TestClientTimeouts.RandomTimeoutBlockingRpcChannel.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestClientTimeouts.RandomTimeoutBlockingRpcChannel</a></li>
 <li><a href="TestClientTimeouts.RandomTimeoutRpcClient.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestClientTimeouts.RandomTimeoutRpcClient</a></li>
-<li><a href="TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestCloneSnapshotFromClient</a></li>
-<li><a href="TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestCloneSnapshotFromClientWithRegionReplicas</a></li>
+<li><a href="TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestCloneSnapshotFromClientAfterSplittingRegion</a></li>
+<li><a href="TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestCloneSnapshotFromClientCloneLinksAfterDelete</a></li>
+<li><a href="TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestCloneSnapshotFromClientError</a></li>
+<li><a href="TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestCloneSnapshotFromClientNormal</a></li>
 <li><a href="TestColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestColumnFamilyDescriptorBuilder</a></li>
 <li><a href="TestCompleteResultScanResultCache.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestCompleteResultScanResultCache</a></li>
 <li><a href="TestConnectionImplementation.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestConnectionImplementation</a></li>
@@ -207,8 +214,11 @@
 <li><a href="TestMetaCache.RoundRobinExceptionInjector.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMetaCache.RoundRobinExceptionInjector</a></li>
 <li><a href="TestMetaWithReplicas.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMetaWithReplicas</a></li>
 <li><a href="TestMetricsConnection.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMetricsConnection</a></li>
-<li><a href="TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClient</a></li>
-<li><a href="TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</a></li>
+<li><a href="TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></li>
+<li><a href="TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></li>
+<li><a href="TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</a></li>
+<li><a href="TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClientError</a></li>
+<li><a href="TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClientNormal</a></li>
 <li><a href="TestMobRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobRestoreSnapshotFromClient</a></li>
 <li><a href="TestMobSnapshotCloneIndependence.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobSnapshotCloneIndependence</a></li>
 <li><a href="TestMobSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobSnapshotFromClient</a></li>


[34/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
index a6969be..35a020a 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/HMaster.html
@@ -2892,7 +2892,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionNormalizer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1743">getRegionNormalizer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1750">getRegionNormalizer</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getRegionNormalizer--">getRegionNormalizer</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2907,7 +2907,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>normalizeRegions</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1754">normalizeRegions</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1761">normalizeRegions</a>()
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Perform normalization of cluster (invoked by <a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizerChore.html" title="class in org.apache.hadoop.hbase.master.normalizer"><code>RegionNormalizerChore</code></a>).</div>
 <dl>
@@ -2926,7 +2926,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getClientIdAuditPrefix</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1812">getClientIdAuditPrefix</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1819">getClientIdAuditPrefix</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getClientIdAuditPrefix--">getClientIdAuditPrefix</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -2941,7 +2941,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>setCatalogJanitorEnabled</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1823">setCatalogJanitorEnabled</a>(boolean&nbsp;b)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1830">setCatalogJanitorEnabled</a>(boolean&nbsp;b)</pre>
 <div class="block">Switch for the background CatalogJanitor thread.
  Used for testing.  The thread will continue to run.  It will just be a noop
  if disabled.</div>
@@ -2957,7 +2957,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>mergeRegions</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1828">mergeRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1835">mergeRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;regionsToMerge,
                          boolean&nbsp;forcible,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
@@ -2985,7 +2985,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>splitRegion</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1876">splitRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1883">splitRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                         byte[]&nbsp;splitRow,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
@@ -3013,7 +3013,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>move</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1902">move</a>(byte[]&nbsp;encodedRegionName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1909">move</a>(byte[]&nbsp;encodedRegionName,
                  byte[]&nbsp;destServerName)
           throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <dl>
@@ -3028,7 +3028,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1992">createTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1999">createTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor,
                         byte[][]&nbsp;splitKeys,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
@@ -3053,7 +3053,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createSystemTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2034">createSystemTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor)
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2041">createSystemTable</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;tableDescriptor)
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#createSystemTable-org.apache.hadoop.hbase.client.TableDescriptor-">MasterServices</a></code></span></div>
 <div class="block">Create a system table using the given table definition.</div>
@@ -3074,7 +3074,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>sanityCheckTableDescriptor</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2062">sanityCheckTableDescriptor</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2069">sanityCheckTableDescriptor</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Checks whether the table conforms to some sane limits, and configured
  values (compression, etc) work. Throws an exception if something is wrong.</div>
@@ -3090,7 +3090,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkReplicationScope</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2179">checkReplicationScope</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;hcd)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2186">checkReplicationScope</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;hcd)
                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3104,7 +3104,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkCompactionPolicy</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2191">checkCompactionPolicy</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2198">checkCompactionPolicy</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                    <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -3119,7 +3119,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkBloomFilterType</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2248">checkBloomFilterType</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;cfd)
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2255">checkBloomFilterType</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;cfd)
                                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3133,7 +3133,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>warnOrThrowExceptionForFailure</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2259">warnOrThrowExceptionForFailure</a>(boolean&nbsp;logWarn,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2266">warnOrThrowExceptionForFailure</a>(boolean&nbsp;logWarn,
                                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;confKey,
                                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
                                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a>&nbsp;cause)
@@ -3150,7 +3150,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>startActiveMasterManager</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2268">startActiveMasterManager</a>(int&nbsp;infoPort)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2275">startActiveMasterManager</a>(int&nbsp;infoPort)
                                throws org.apache.zookeeper.KeeperException</pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3164,7 +3164,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkCompression</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2321">checkCompression</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2328">checkCompression</a>(<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3178,7 +3178,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkCompression</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2329">checkCompression</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;hcd)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2336">checkCompression</a>(<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;hcd)
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3192,7 +3192,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkEncryption</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2336">checkEncryption</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2343">checkEncryption</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                              <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -3207,7 +3207,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkEncryption</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2344">checkEncryption</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2351">checkEncryption</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                              <a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;hcd)
                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -3222,7 +3222,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkClassLoading</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2350">checkClassLoading</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2357">checkClassLoading</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                <a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;htd)
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -3237,7 +3237,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isCatalogTable</h4>
-<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2356">isCatalogTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>private static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2363">isCatalogTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 </li>
 </ul>
 <a name="deleteTable-org.apache.hadoop.hbase.TableName-long-long-">
@@ -3246,7 +3246,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2361">deleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2368">deleteTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3268,7 +3268,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>truncateTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2395">truncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2402">truncateTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                           boolean&nbsp;preserveSplits,
                           long&nbsp;nonceGroup,
                           long&nbsp;nonce)
@@ -3292,7 +3292,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>addColumn</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2425">addColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2432">addColumn</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/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;column,
                       long&nbsp;nonceGroup,
                       long&nbsp;nonce)
@@ -3316,7 +3316,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyColumn</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2453">modifyColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2460">modifyColumn</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/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;descriptor,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
@@ -3340,7 +3340,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteColumn</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2473">deleteColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2480">deleteColumn</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          byte[]&nbsp;columnName,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
@@ -3364,7 +3364,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>enableTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2498">enableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2505">enableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3386,7 +3386,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>disableTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2551">disableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2558">disableTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
                   throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3408,7 +3408,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableRegionForRow</h4>
-<pre><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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<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/master/HMaster.html#line.2593">getTableRegionForRow</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre><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/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<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/master/HMaster.html#line.2600">getTableRegionForRow</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                                  byte[]&nbsp;rowKey)
                                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Return the region and current deployment for the region containing
@@ -3427,7 +3427,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyTable</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2619">modifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2626">modifyTable</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/master/HMaster.TableDescriptorGetter.html" title="interface in org.apache.hadoop.hbase.master">HMaster.TableDescriptorGetter</a>&nbsp;newDescriptorGetter,
                          long&nbsp;nonceGroup,
                          long&nbsp;nonce)
@@ -3444,7 +3444,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyTable</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2657">modifyTable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2664">modifyTable</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/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&nbsp;newDescriptor,
                         long&nbsp;nonceGroup,
                         long&nbsp;nonce)
@@ -3468,7 +3468,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>restoreSnapshot</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2669">restoreSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshotDesc,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2676">restoreSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription&nbsp;snapshotDesc,
                             long&nbsp;nonceGroup,
                             long&nbsp;nonce,
                             boolean&nbsp;restoreAcl)
@@ -3485,7 +3485,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkTableExists</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2693">checkTableExists</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2700">checkTableExists</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                               <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a></pre>
 <dl>
@@ -3501,7 +3501,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkTableModifiable</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2701">checkTableModifiable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2708">checkTableModifiable</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                  <a href="../../../../../org/apache/hadoop/hbase/TableNotFoundException.html" title="class in org.apache.hadoop.hbase">TableNotFoundException</a>,
                                  <a href="../../../../../org/apache/hadoop/hbase/TableNotDisabledException.html" title="class in org.apache.hadoop.hbase">TableNotDisabledException</a></pre>
@@ -3525,7 +3525,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterMetricsWithoutCoprocessor</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2713">getClusterMetricsWithoutCoprocessor</a>()
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2720">getClusterMetricsWithoutCoprocessor</a>()
                                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3539,7 +3539,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterMetricsWithoutCoprocessor</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2717">getClusterMetricsWithoutCoprocessor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase">ClusterMetrics.Option</a>&gt;&nbsp;options)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2724">getClusterMetricsWithoutCoprocessor</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase">ClusterMetrics.Option</a>&gt;&nbsp;options)
                                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3553,7 +3553,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2779">getClusterMetrics</a>()
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2786">getClusterMetrics</a>()
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3569,7 +3569,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2783">getClusterMetrics</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase">ClusterMetrics.Option</a>&gt;&nbsp;options)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2790">getClusterMetrics</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html?is-external=true" title="class or interface in java.util">EnumSet</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase">ClusterMetrics.Option</a>&gt;&nbsp;options)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3583,7 +3583,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getBackupMasters</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2794">getBackupMasters</a>()
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2801">getBackupMasters</a>()
                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/InterruptedIOException.html?is-external=true" title="class or interface in java.io">InterruptedIOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3597,7 +3597,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getLoadedCoprocessors</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2847">getLoadedCoprocessors</a>()</pre>
+<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2854">getLoadedCoprocessors</a>()</pre>
 <div class="block">The set of loaded coprocessors is stored in a static set. Since it's
  statically allocated, it does not require that HMaster's cpHost be
  initialized prior to accessing it.</div>
@@ -3613,7 +3613,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterStartTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2854">getMasterStartTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2861">getMasterStartTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>timestamp in millis when HMaster was started.</dd>
@@ -3626,7 +3626,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterActiveTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2861">getMasterActiveTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2868">getMasterActiveTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>timestamp in millis when HMaster became the active master.</dd>
@@ -3639,7 +3639,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterFinishedInitializationTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2868">getMasterFinishedInitializationTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2875">getMasterFinishedInitializationTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>timestamp in millis when HMaster finished becoming the active master</dd>
@@ -3652,7 +3652,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumWALFiles</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2872">getNumWALFiles</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2879">getNumWALFiles</a>()</pre>
 </li>
 </ul>
 <a name="getWalProcedureStore--">
@@ -3661,7 +3661,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getWalProcedureStore</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2876">getWalProcedureStore</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2883">getWalProcedureStore</a>()</pre>
 </li>
 </ul>
 <a name="getRegionServerInfoPort-org.apache.hadoop.hbase.ServerName-">
@@ -3670,7 +3670,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerInfoPort</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2880">getRegionServerInfoPort</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2887">getRegionServerInfoPort</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 </li>
 </ul>
 <a name="getRegionServerVersion-org.apache.hadoop.hbase.ServerName-">
@@ -3679,7 +3679,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerVersion</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2887">getRegionServerVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2894">getRegionServerVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getRegionServerVersion-org.apache.hadoop.hbase.ServerName-">getRegionServerVersion</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3692,7 +3692,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkIfShouldMoveSystemRegionAsync</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2894">checkIfShouldMoveSystemRegionAsync</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2901">checkIfShouldMoveSystemRegionAsync</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#checkIfShouldMoveSystemRegionAsync--">MasterServices</a></code></span></div>
 <div class="block">Called when a new RegionServer is added to the cluster.
  Checks if new server has a newer version than any existing server and will move system tables
@@ -3709,7 +3709,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterCoprocessors</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2901">getMasterCoprocessors</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2908">getMasterCoprocessors</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>array of coprocessor SimpleNames.</dd>
@@ -3722,7 +3722,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2907">abort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;reason,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2914">abort</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;reason,
                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-java.lang.Throwable-">HRegionServer</a></code></span></div>
 <div class="block">Cause the server to exit without closing the regions it is serving, the log
@@ -3745,7 +3745,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getZooKeeper</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2931">getZooKeeper</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2938">getZooKeeper</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getZooKeeper--">Server</a></code></span></div>
 <div class="block">Gets the ZooKeeper instance for this server.</div>
 <dl>
@@ -3762,7 +3762,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterCoprocessorHost</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2936">getMasterCoprocessorHost</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2943">getMasterCoprocessorHost</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterCoprocessorHost--">getMasterCoprocessorHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3777,7 +3777,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterQuotaManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2941">getMasterQuotaManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2948">getMasterQuotaManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterQuotaManager--">getMasterQuotaManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3792,7 +3792,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterProcedureExecutor</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2946">getMasterProcedureExecutor</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2953">getMasterProcedureExecutor</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterProcedureExecutor--">getMasterProcedureExecutor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3807,7 +3807,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <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/master/HMaster.html#line.2951">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/master/HMaster.html#line.2958">getServerName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getServerName--">getServerName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a></code></dd>
@@ -3824,7 +3824,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <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/master/HMaster.html#line.2956">getAssignmentManager</a>()</pre>
+<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/master/HMaster.html#line.2963">getAssignmentManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getAssignmentManager--">getAssignmentManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3839,7 +3839,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getCatalogJanitor</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master">CatalogJanitor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2961">getCatalogJanitor</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master">CatalogJanitor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2968">getCatalogJanitor</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getCatalogJanitor--">getCatalogJanitor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -3854,7 +3854,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerFatalLogBuffer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.html" title="class in org.apache.hadoop.hbase.monitoring">MemoryBoundedLogMessageBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2965">getRegionServerFatalLogBuffer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.html" title="class in org.apache.hadoop.hbase.monitoring">MemoryBoundedLogMessageBuffer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2972">getRegionServerFatalLogBuffer</a>()</pre>
 </li>
 </ul>
 <a name="shutdown--">
@@ -3863,7 +3863,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2973">shutdown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2980">shutdown</a>()
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Shutdown the cluster.
  Master runs a coordinated stop of all RegionServers and then itself.</div>
@@ -3879,7 +3879,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>stopMaster</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3005">stopMaster</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3012">stopMaster</a>()
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3893,7 +3893,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3013">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3020">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</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>
@@ -3913,7 +3913,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkServiceStarted</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3023">checkServiceStarted</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3030">checkServiceStarted</a>()
                             throws <a href="../../../../../org/apache/hadoop/hbase/ipc/ServerNotRunningYetException.html" title="class in org.apache.hadoop.hbase.ipc">ServerNotRunningYetException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3927,7 +3927,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>checkInitialized</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3035">checkInitialized</a>()
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3042">checkInitialized</a>()
                throws <a href="../../../../../org/apache/hadoop/hbase/PleaseHoldException.html" title="class in org.apache.hadoop.hbase">PleaseHoldException</a>,
                       <a href="../../../../../org/apache/hadoop/hbase/ipc/ServerNotRunningYetException.html" title="class in org.apache.hadoop.hbase.ipc">ServerNotRunningYetException</a>,
                       <a href="../../../../../org/apache/hadoop/hbase/MasterNotRunningException.html" title="class in org.apache.hadoop.hbase">MasterNotRunningException</a>,
@@ -3947,7 +3947,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isActiveMaster</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3055">isActiveMaster</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3062">isActiveMaster</a>()</pre>
 <div class="block">Report whether this master is currently the active master or not.
  If not active master, we are parked on ZK waiting to become active.
 
@@ -3966,7 +3966,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isInitialized</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3069">isInitialized</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3076">isInitialized</a>()</pre>
 <div class="block">Report whether this master has completed with its initialization and is
  ready.  If ready, the master is also the active master.  A standby master
  is never ready.
@@ -3986,7 +3986,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>isInMaintenanceMode</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3079">isInMaintenanceMode</a>()
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3086">isInMaintenanceMode</a>()
                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Report whether this master is in maintenance mode.</div>
 <dl>
@@ -4005,7 +4005,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>setInitialized</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3087">setInitialized</a>(boolean&nbsp;isInitialized)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3094">setInitialized</a>(boolean&nbsp;isInitialized)</pre>
 </li>
 </ul>
 <a name="getInitializedEvent--">
@@ -4014,7 +4014,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getInitializedEvent</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3092">getInitializedEvent</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a>&lt;?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3099">getInitializedEvent</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getInitializedEvent--">getInitializedEvent</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -4029,7 +4029,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getAverageLoad</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3102">getAverageLoad</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3109">getAverageLoad</a>()</pre>
 <div class="block">Compute the average load across all region servers.
  Currently, this uses a very naive computation - just uses the number of
  regions being served, ignoring stats about number of requests.</div>
@@ -4045,7 +4045,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getSplitPlanCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3117">getSplitPlanCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3124">getSplitPlanCount</a>()</pre>
 </li>
 </ul>
 <a name="getMergePlanCount--">
@@ -4054,7 +4054,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMergePlanCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3124">getMergePlanCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3131">getMergePlanCount</a>()</pre>
 </li>
 </ul>
 <a name="registerService-com.google.protobuf.Service-">
@@ -4063,7 +4063,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>registerService</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3129">registerService</a>(com.google.protobuf.Service&nbsp;instance)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3136">registerService</a>(com.google.protobuf.Service&nbsp;instance)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#registerService-com.google.protobuf.Service-">RegionServerServices</a></code></span></div>
 <div class="block">Registers a new protocol buffer <code>Service</code> subclass as a coprocessor endpoint to be
  available for handling</div>
@@ -4087,7 +4087,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>constructMaster</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3154">constructMaster</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&gt;&nbsp;masterClass,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3161">constructMaster</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>&gt;&nbsp;masterClass,
                                       org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Utility for constructing an instance of the passed HMaster class.</div>
 <dl>
@@ -4104,7 +4104,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3173">main</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3180">main</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)</pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../org/apache/hadoop/hbase/master/HMasterCommandLine.html" title="class in org.apache.hadoop.hbase.master"><code>HMasterCommandLine</code></a></dd>
@@ -4117,7 +4117,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getHFileCleaner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3179">getHFileCleaner</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3186">getHFileCleaner</a>()</pre>
 </li>
 </ul>
 <a name="getLogCleaner--">
@@ -4126,7 +4126,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogCleaner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3183">getLogCleaner</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3190">getLogCleaner</a>()</pre>
 </li>
 </ul>
 <a name="getSnapshotManager--">
@@ -4135,7 +4135,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getSnapshotManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" title="class in org.apache.hadoop.hbase.master.snapshot">SnapshotManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3191">getSnapshotManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" title="class in org.apache.hadoop.hbase.master.snapshot">SnapshotManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3198">getSnapshotManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getSnapshotManager--">getSnapshotManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -4150,7 +4150,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterProcedureManagerHost</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManagerHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3199">getMasterProcedureManagerHost</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManagerHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3206">getMasterProcedureManagerHost</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getMasterProcedureManagerHost--">getMasterProcedureManagerHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -4165,7 +4165,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterSchema</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterSchema.html" title="interface in org.apache.hadoop.hbase.master">ClusterSchema</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3204">getClusterSchema</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/master/ClusterSchema.html" title="interface in org.apache.hadoop.hbase.master">ClusterSchema</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3211">getClusterSchema</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#getClusterSchema--">getClusterSchema</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html" title="interface in org.apache.hadoop.hbase.master">MasterServices</a></code></dd>
@@ -4180,7 +4180,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>createNamespace</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3216">createNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;namespaceDescriptor,
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3223">createNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;namespaceDescriptor,
                      long&nbsp;nonceGroup,
                      long&nbsp;nonce)
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4204,7 +4204,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>modifyNamespace</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3252">modifyNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;newNsDescriptor,
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3259">modifyNamespace</a>(<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;newNsDescriptor,
                      long&nbsp;nonceGroup,
                      long&nbsp;nonce)
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4227,7 +4227,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteNamespace</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3290">deleteNamespace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3297">deleteNamespace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
                      long&nbsp;nonceGroup,
                      long&nbsp;nonce)
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -4250,7 +4250,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getNamespace</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3325">getNamespace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
+<pre><a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3332">getNamespace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Get a Namespace</div>
 <dl>
@@ -4269,7 +4269,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getNamespaces</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3337">getNamespaces</a>()
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3344">getNamespaces</a>()
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Get all Namespaces</div>
 <dl>
@@ -4286,7 +4286,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableNamesByNamespace</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3351">listTableNamesByNamespace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3358">listTableNamesByNamespace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
                                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#listTableNamesByNamespace-java.lang.String-">MasterServices</a></code></span></div>
 <div class="block">Get list of table names by namespace</div>
@@ -4308,7 +4308,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>listTableDescriptorsByNamespace</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3357">listTableDescriptorsByNamespace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3364">listTableDescriptorsByNamespace</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)
                                                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#listTableDescriptorsByNamespace-java.lang.String-">MasterServices</a></code></span></div>
 <div class="block">Get list of table descriptors by namespace</div>
@@ -4330,7 +4330,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>abortProcedure</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3363">abortProcedure</a>(long&nbsp;procId,
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3370">abortProcedure</a>(long&nbsp;procId,
                               boolean&nbsp;mayInterruptIfRunning)
                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/MasterServices.html#abortProcedure-long-boolean-">MasterServices</a></code></span></div>
@@ -4354,7 +4354,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/master/MasterServices
 <ul class="blockList">
 <li class="blockList">
 <h4>getProcedures</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3379">getProcedures</a>()
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a>&lt;?&

<TRUNCATED>

[30/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
index 0f2fd75..bf5af92 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html
@@ -56,638 +56,660 @@
 <span class="sourceLineNo">048</span>  /**<a name="line.48"></a>
 <span class="sourceLineNo">049</span>   * Disabled cache configuration<a name="line.49"></a>
 <span class="sourceLineNo">050</span>   */<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  public static final CacheConfig DISABLED = new CacheConfig();<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  /**<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   * Configuration key to cache data blocks on read. Bloom blocks and index blocks are always be<a name="line.56"></a>
-<span class="sourceLineNo">057</span>   * cached if the block cache is enabled.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  public static final String CACHE_DATA_ON_READ_KEY = "hbase.block.data.cacheonread";<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  /**<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   * Configuration key to cache data blocks on write. There are separate<a name="line.62"></a>
-<span class="sourceLineNo">063</span>   * switches for bloom blocks and non-root index blocks.<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   */<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  public static final String CACHE_BLOCKS_ON_WRITE_KEY =<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      "hbase.rs.cacheblocksonwrite";<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>   * Configuration key to cache leaf and intermediate-level index blocks on<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   * write.<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  public static final String CACHE_INDEX_BLOCKS_ON_WRITE_KEY =<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      "hfile.block.index.cacheonwrite";<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>   * Configuration key to cache compound bloom filter blocks on write.<a name="line.76"></a>
-<span class="sourceLineNo">077</span>   */<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  public static final String CACHE_BLOOM_BLOCKS_ON_WRITE_KEY =<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      "hfile.block.bloom.cacheonwrite";<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>  /**<a name="line.81"></a>
-<span class="sourceLineNo">082</span>   * Configuration key to cache data blocks in compressed and/or encrypted format.<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   */<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  public static final String CACHE_DATA_BLOCKS_COMPRESSED_KEY =<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      "hbase.block.data.cachecompressed";<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  /**<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   * Configuration key to evict all blocks of a given file from the block cache<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   * when the file is closed.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   */<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  public static final String EVICT_BLOCKS_ON_CLOSE_KEY =<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      "hbase.rs.evictblocksonclose";<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>   * Configuration keys for Bucket cache<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>  /**<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   * If the chosen ioengine can persist its state across restarts, the path to the file to persist<a name="line.99"></a>
-<span class="sourceLineNo">100</span>   * to. This file is NOT the data file. It is a file into which we will serialize the map of<a name="line.100"></a>
-<span class="sourceLineNo">101</span>   * what is in the data file. For example, if you pass the following argument as<a name="line.101"></a>
-<span class="sourceLineNo">102</span>   * BUCKET_CACHE_IOENGINE_KEY ("hbase.bucketcache.ioengine"),<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * &lt;code&gt;file:/tmp/bucketcache.data &lt;/code&gt;, then we will write the bucketcache data to the file<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * &lt;code&gt;/tmp/bucketcache.data&lt;/code&gt; but the metadata on where the data is in the supplied file<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   * is an in-memory map that needs to be persisted across restarts. Where to store this<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * in-memory state is what you supply here: e.g. &lt;code&gt;/tmp/bucketcache.map&lt;/code&gt;.<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  public static final String BUCKET_CACHE_PERSISTENT_PATH_KEY =<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      "hbase.bucketcache.persistent.path";<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static final String BUCKET_CACHE_WRITER_THREADS_KEY = "hbase.bucketcache.writer.threads";<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  public static final String BUCKET_CACHE_WRITER_QUEUE_KEY =<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      "hbase.bucketcache.writer.queuelength";<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>   * A comma-delimited array of values for use as bucket sizes.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   */<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  public static final String BUCKET_CACHE_BUCKETS_KEY = "hbase.bucketcache.bucket.sizes";<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>   * Defaults for Bucket cache<a name="line.121"></a>
-<span class="sourceLineNo">122</span>   */<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_THREADS = 3;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_QUEUE = 64;<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span> /**<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * Configuration key to prefetch all blocks of a given file into the block cache<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * when the file is opened.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public static final String PREFETCH_BLOCKS_ON_OPEN_KEY =<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      "hbase.rs.prefetchblocksonopen";<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  /**<a name="line.133"></a>
-<span class="sourceLineNo">134</span>   * The target block size used by blockcache instances. Defaults to<a name="line.134"></a>
-<span class="sourceLineNo">135</span>   * {@link HConstants#DEFAULT_BLOCKSIZE}.<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * TODO: this config point is completely wrong, as it's used to determine the<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   * target block size of BlockCache instances. Rename.<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   */<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public static final String BLOCKCACHE_BLOCKSIZE_KEY = "hbase.offheapcache.minblocksize";<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>  private static final String EXTERNAL_BLOCKCACHE_KEY = "hbase.blockcache.use.external";<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  private static final boolean EXTERNAL_BLOCKCACHE_DEFAULT = false;<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private static final String EXTERNAL_BLOCKCACHE_CLASS_KEY = "hbase.blockcache.external.class";<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  private static final String DROP_BEHIND_CACHE_COMPACTION_KEY =<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      "hbase.hfile.drop.behind.compaction";<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  private static final boolean DROP_BEHIND_CACHE_COMPACTION_DEFAULT = true;<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>  /**<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * Enum of all built in external block caches.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * This is used for config.<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   */<a name="line.152"></a>
-<span class="sourceLineNo">153</span>  private static enum ExternalBlockCaches {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    memcached("org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache");<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    // TODO(eclark): Consider more. Redis, etc.<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Class&lt;? extends BlockCache&gt; clazz;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    ExternalBlockCaches(String clazzName) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      try {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        clazz = (Class&lt;? extends BlockCache&gt;) Class.forName(clazzName);<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      } catch (ClassNotFoundException cnef) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        clazz = null;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    ExternalBlockCaches(Class&lt;? extends BlockCache&gt; clazz) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      this.clazz = clazz;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
-<span class="sourceLineNo">167</span>  }<a name="line.167"></a>
-<span class="sourceLineNo">168</span><a name="line.168"></a>
-<span class="sourceLineNo">169</span>  // Defaults<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public static final boolean DEFAULT_CACHE_DATA_ON_READ = true;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  public static final boolean DEFAULT_CACHE_DATA_ON_WRITE = false;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  public static final boolean DEFAULT_IN_MEMORY = false;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public static final boolean DEFAULT_CACHE_INDEXES_ON_WRITE = false;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  public static final boolean DEFAULT_CACHE_BLOOMS_ON_WRITE = false;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static final boolean DEFAULT_EVICT_ON_CLOSE = false;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>  public static final boolean DEFAULT_CACHE_DATA_COMPRESSED = false;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  public static final boolean DEFAULT_PREFETCH_ON_OPEN = false;<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  /** Local reference to the block cache, null if completely disabled */<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  private final BlockCache blockCache;<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>  /**<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * Whether blocks should be cached on read (default is on if there is a<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * cache but this can be turned off on a per-family or per-request basis).<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   * If off we will STILL cache meta blocks; i.e. INDEX and BLOOM types.<a name="line.185"></a>
-<span class="sourceLineNo">186</span>   * This cannot be disabled.<a name="line.186"></a>
-<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  private boolean cacheDataOnRead;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  /** Whether blocks should be flagged as in-memory when being cached */<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final boolean inMemory;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  /** Whether data blocks should be cached when new files are written */<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  private boolean cacheDataOnWrite;<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span>  /** Whether index blocks should be cached when new files are written */<a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final boolean cacheIndexesOnWrite;<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  /** Whether compound bloom filter blocks should be cached on write */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  private final boolean cacheBloomsOnWrite;<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  /** Whether blocks of a file should be evicted when the file is closed */<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private boolean evictOnClose;<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  /** Whether data blocks should be stored in compressed and/or encrypted form in the cache */<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  private final boolean cacheDataCompressed;<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>  /** Whether data blocks should be prefetched into the cache */<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private final boolean prefetchOnOpen;<a name="line.209"></a>
+<span class="sourceLineNo">051</span>  public static final CacheConfig DISABLED = new CacheConfig();<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   * Configuration key to cache data blocks on read. Bloom blocks and index blocks are always be<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   * cached if the block cache is enabled.<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  public static final String CACHE_DATA_ON_READ_KEY = "hbase.block.data.cacheonread";<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>  /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>   * Configuration key to cache data blocks on write. There are separate<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   * switches for bloom blocks and non-root index blocks.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public static final String CACHE_BLOCKS_ON_WRITE_KEY =<a name="line.63"></a>
+<span class="sourceLineNo">064</span>      "hbase.rs.cacheblocksonwrite";<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>   * Configuration key to cache leaf and intermediate-level index blocks on<a name="line.67"></a>
+<span class="sourceLineNo">068</span>   * write.<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  public static final String CACHE_INDEX_BLOCKS_ON_WRITE_KEY =<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      "hfile.block.index.cacheonwrite";<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>  /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   * Configuration key to cache compound bloom filter blocks on write.<a name="line.74"></a>
+<span class="sourceLineNo">075</span>   */<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  public static final String CACHE_BLOOM_BLOCKS_ON_WRITE_KEY =<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      "hfile.block.bloom.cacheonwrite";<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>  /**<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   * Configuration key to cache data blocks in compressed and/or encrypted format.<a name="line.80"></a>
+<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  public static final String CACHE_DATA_BLOCKS_COMPRESSED_KEY =<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      "hbase.block.data.cachecompressed";<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  /**<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * Configuration key to evict all blocks of a given file from the block cache<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * when the file is closed.<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  public static final String EVICT_BLOCKS_ON_CLOSE_KEY =<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      "hbase.rs.evictblocksonclose";<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>   * Configuration keys for Bucket cache<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>  /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * If the chosen ioengine can persist its state across restarts, the path to the file to persist<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * to. This file is NOT the data file. It is a file into which we will serialize the map of<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   * what is in the data file. For example, if you pass the following argument as<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   * BUCKET_CACHE_IOENGINE_KEY ("hbase.bucketcache.ioengine"),<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * &lt;code&gt;file:/tmp/bucketcache.data &lt;/code&gt;, then we will write the bucketcache data to the file<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   * &lt;code&gt;/tmp/bucketcache.data&lt;/code&gt; but the metadata on where the data is in the supplied file<a name="line.102"></a>
+<span class="sourceLineNo">103</span>   * is an in-memory map that needs to be persisted across restarts. Where to store this<a name="line.103"></a>
+<span class="sourceLineNo">104</span>   * in-memory state is what you supply here: e.g. &lt;code&gt;/tmp/bucketcache.map&lt;/code&gt;.<a name="line.104"></a>
+<span class="sourceLineNo">105</span>   */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  public static final String BUCKET_CACHE_PERSISTENT_PATH_KEY =<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      "hbase.bucketcache.persistent.path";<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  public static final String BUCKET_CACHE_WRITER_THREADS_KEY = "hbase.bucketcache.writer.threads";<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public static final String BUCKET_CACHE_WRITER_QUEUE_KEY =<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      "hbase.bucketcache.writer.queuelength";<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>  /**<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * A comma-delimited array of values for use as bucket sizes.<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   */<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  public static final String BUCKET_CACHE_BUCKETS_KEY = "hbase.bucketcache.bucket.sizes";<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>   * Defaults for Bucket cache<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_THREADS = 3;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_QUEUE = 64;<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>   * Configuration key to prefetch all blocks of a given file into the block cache<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   * when the file is opened.<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  public static final String PREFETCH_BLOCKS_ON_OPEN_KEY =<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      "hbase.rs.prefetchblocksonopen";<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * The target block size used by blockcache instances. Defaults to<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * {@link HConstants#DEFAULT_BLOCKSIZE}.<a name="line.133"></a>
+<span class="sourceLineNo">134</span>   * TODO: this config point is completely wrong, as it's used to determine the<a name="line.134"></a>
+<span class="sourceLineNo">135</span>   * target block size of BlockCache instances. Rename.<a name="line.135"></a>
+<span class="sourceLineNo">136</span>   */<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  public static final String BLOCKCACHE_BLOCKSIZE_KEY = "hbase.offheapcache.minblocksize";<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  private static final String EXTERNAL_BLOCKCACHE_KEY = "hbase.blockcache.use.external";<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  private static final boolean EXTERNAL_BLOCKCACHE_DEFAULT = false;<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  private static final String EXTERNAL_BLOCKCACHE_CLASS_KEY = "hbase.blockcache.external.class";<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  private static final String DROP_BEHIND_CACHE_COMPACTION_KEY =<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      "hbase.hfile.drop.behind.compaction";<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  private static final boolean DROP_BEHIND_CACHE_COMPACTION_DEFAULT = true;<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>  /**<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   * Enum of all built in external block caches.<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * This is used for config.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private static enum ExternalBlockCaches {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    memcached("org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache");<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    // TODO(eclark): Consider more. Redis, etc.<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    Class&lt;? extends BlockCache&gt; clazz;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    ExternalBlockCaches(String clazzName) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      try {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        clazz = (Class&lt;? extends BlockCache&gt;) Class.forName(clazzName);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      } catch (ClassNotFoundException cnef) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        clazz = null;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    ExternalBlockCaches(Class&lt;? extends BlockCache&gt; clazz) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      this.clazz = clazz;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  // Defaults<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public static final boolean DEFAULT_CACHE_DATA_ON_READ = true;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  public static final boolean DEFAULT_CACHE_DATA_ON_WRITE = false;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  public static final boolean DEFAULT_IN_MEMORY = false;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public static final boolean DEFAULT_CACHE_INDEXES_ON_WRITE = false;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public static final boolean DEFAULT_CACHE_BLOOMS_ON_WRITE = false;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public static final boolean DEFAULT_EVICT_ON_CLOSE = false;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public static final boolean DEFAULT_CACHE_DATA_COMPRESSED = false;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  public static final boolean DEFAULT_PREFETCH_ON_OPEN = false;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>  /** Local reference to the block cache, null if completely disabled */<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  private final BlockCache blockCache;<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>  /**<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   * Whether blocks should be cached on read (default is on if there is a<a name="line.181"></a>
+<span class="sourceLineNo">182</span>   * cache but this can be turned off on a per-family or per-request basis).<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   * If off we will STILL cache meta blocks; i.e. INDEX and BLOOM types.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * This cannot be disabled.<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>  private boolean cacheDataOnRead;<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>  /** Whether blocks should be flagged as in-memory when being cached */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private final boolean inMemory;<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  /** Whether data blocks should be cached when new files are written */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  private boolean cacheDataOnWrite;<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>  /** Whether index blocks should be cached when new files are written */<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  private final boolean cacheIndexesOnWrite;<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>  /** Whether compound bloom filter blocks should be cached on write */<a name="line.197"></a>
+<span class="sourceLineNo">198</span>  private final boolean cacheBloomsOnWrite;<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>  /** Whether blocks of a file should be evicted when the file is closed */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  private boolean evictOnClose;<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  /** Whether data blocks should be stored in compressed and/or encrypted form in the cache */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  private final boolean cacheDataCompressed;<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>  /** Whether data blocks should be prefetched into the cache */<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  private final boolean prefetchOnOpen;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final boolean dropBehindCompaction;<a name="line.209"></a>
 <span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>  private final boolean dropBehindCompaction;<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>   * Create a cache configuration using the specified configuration object and<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * family descriptor.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   * @param conf hbase configuration<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   * @param family column family configuration<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  public CacheConfig(Configuration conf, ColumnFamilyDescriptor family) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    this(CacheConfig.instantiateBlockCache(conf),<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>           &amp;&amp; family.isBlockCacheEnabled(),<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        family.isInMemory(),<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        // For the following flags we enable them regardless of per-schema settings<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        // if they are enabled in the global configuration.<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>            DEFAULT_CACHE_DATA_ON_WRITE) || family.isCacheDataOnWrite(),<a name="line.227"></a>
-<span class="sourceLineNo">228</span>        conf.getBoolean(CACHE_INDEX_BLOCKS_ON_WRITE_KEY,<a name="line.228"></a>
-<span class="sourceLineNo">229</span>            DEFAULT_CACHE_INDEXES_ON_WRITE) || family.isCacheIndexesOnWrite(),<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        conf.getBoolean(CACHE_BLOOM_BLOCKS_ON_WRITE_KEY,<a name="line.230"></a>
-<span class="sourceLineNo">231</span>            DEFAULT_CACHE_BLOOMS_ON_WRITE) || family.isCacheBloomsOnWrite(),<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY,<a name="line.232"></a>
-<span class="sourceLineNo">233</span>            DEFAULT_EVICT_ON_CLOSE) || family.isEvictBlocksOnClose(),<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        conf.getBoolean(CACHE_DATA_BLOCKS_COMPRESSED_KEY, DEFAULT_CACHE_DATA_COMPRESSED),<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        conf.getBoolean(PREFETCH_BLOCKS_ON_OPEN_KEY,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>            DEFAULT_PREFETCH_ON_OPEN) || family.isPrefetchBlocksOnOpen(),<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        conf.getBoolean(DROP_BEHIND_CACHE_COMPACTION_KEY, DROP_BEHIND_CACHE_COMPACTION_DEFAULT)<a name="line.237"></a>
-<span class="sourceLineNo">238</span>     );<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    LOG.info("Created cacheConfig for " + family.getNameAsString() + ": " + this);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>  /**<a name="line.242"></a>
-<span class="sourceLineNo">243</span>   * Create a cache configuration using the specified configuration object and<a name="line.243"></a>
-<span class="sourceLineNo">244</span>   * defaults for family level settings. Only use if no column family context. Prefer<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * {@link CacheConfig#CacheConfig(Configuration, ColumnFamilyDescriptor)}<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   * @see #CacheConfig(Configuration, ColumnFamilyDescriptor)<a name="line.246"></a>
-<span class="sourceLineNo">247</span>   * @param conf hbase configuration<a name="line.247"></a>
-<span class="sourceLineNo">248</span>   */<a name="line.248"></a>
-<span class="sourceLineNo">249</span>  public CacheConfig(Configuration conf) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    this(CacheConfig.instantiateBlockCache(conf),<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ),<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        DEFAULT_IN_MEMORY, // This is a family-level setting so can't be set<a name="line.252"></a>
-<span class="sourceLineNo">253</span>                           // strictly from conf<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_DATA_ON_WRITE),<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        conf.getBoolean(CACHE_INDEX_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_INDEXES_ON_WRITE),<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        conf.getBoolean(CACHE_BLOOM_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_BLOOMS_ON_WRITE),<a name="line.256"></a>
-<span class="sourceLineNo">257</span>        conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY, DEFAULT_EVICT_ON_CLOSE),<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        conf.getBoolean(CACHE_DATA_BLOCKS_COMPRESSED_KEY, DEFAULT_CACHE_DATA_COMPRESSED),<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        conf.getBoolean(PREFETCH_BLOCKS_ON_OPEN_KEY, DEFAULT_PREFETCH_ON_OPEN),<a name="line.259"></a>
-<span class="sourceLineNo">260</span>        conf.getBoolean(DROP_BEHIND_CACHE_COMPACTION_KEY, DROP_BEHIND_CACHE_COMPACTION_DEFAULT)<a name="line.260"></a>
-<span class="sourceLineNo">261</span>     );<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    LOG.info("Created cacheConfig: " + this);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>  }<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>   * Create a block cache configuration with the specified cache and configuration parameters.<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * @param blockCache reference to block cache, null if completely disabled<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   * @param cacheDataOnRead whether DATA blocks should be cached on read (we always cache INDEX<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   *          blocks and BLOOM blocks; this cannot be disabled).<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @param inMemory whether blocks should be flagged as in-memory<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param cacheDataOnWrite whether data blocks should be cached on write<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @param cacheIndexesOnWrite whether index blocks should be cached on write<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * @param cacheBloomsOnWrite whether blooms should be cached on write<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * @param evictOnClose whether blocks should be evicted when HFile is closed<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   * @param cacheDataCompressed whether to store blocks as compressed in the cache<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * @param prefetchOnOpen whether to prefetch blocks upon open<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   * @param cacheDataInL1 If more than one cache tier deployed, if true, cache this column families<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   *          data blocks up in the L1 tier.<a name="line.278"></a>
-<span class="sourceLineNo">279</span>   * @param dropBehindCompaction indicate that we should set drop behind to true when open a store<a name="line.279"></a>
-<span class="sourceLineNo">280</span>   *          file reader for compaction<a name="line.280"></a>
-<span class="sourceLineNo">281</span>   */<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  CacheConfig(final BlockCache blockCache,<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      final boolean cacheDataOnRead, final boolean inMemory,<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      final boolean cacheDataOnWrite, final boolean cacheIndexesOnWrite,<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      final boolean cacheBloomsOnWrite, final boolean evictOnClose,<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      final boolean cacheDataCompressed, final boolean prefetchOnOpen,<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      final boolean dropBehindCompaction) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    this.blockCache = blockCache;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.cacheDataOnRead = cacheDataOnRead;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    this.inMemory = inMemory;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    this.cacheDataOnWrite = cacheDataOnWrite;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.cacheIndexesOnWrite = cacheIndexesOnWrite;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    this.cacheBloomsOnWrite = cacheBloomsOnWrite;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    this.evictOnClose = evictOnClose;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    this.cacheDataCompressed = cacheDataCompressed;<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    this.prefetchOnOpen = prefetchOnOpen;<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    this.dropBehindCompaction = dropBehindCompaction;<a name="line.297"></a>
-<span class="sourceLineNo">298</span>  }<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>   * Constructs a cache configuration copied from the specified configuration.<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   * @param cacheConf<a name="line.302"></a>
-<span class="sourceLineNo">303</span>   */<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  public CacheConfig(CacheConfig cacheConf) {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    this(cacheConf.blockCache, cacheConf.cacheDataOnRead, cacheConf.inMemory,<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        cacheConf.cacheDataOnWrite, cacheConf.cacheIndexesOnWrite,<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        cacheConf.cacheBloomsOnWrite, cacheConf.evictOnClose,<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        cacheConf.cacheDataCompressed, cacheConf.prefetchOnOpen,<a name="line.308"></a>
-<span class="sourceLineNo">309</span>        cacheConf.dropBehindCompaction);<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>  private CacheConfig() {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    this(null, false, false, false, false, false, false, false, false, false);<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>  /**<a name="line.316"></a>
-<span class="sourceLineNo">317</span>   * Checks whether the block cache is enabled.<a name="line.317"></a>
-<span class="sourceLineNo">318</span>   */<a name="line.318"></a>
-<span class="sourceLineNo">319</span>  public boolean isBlockCacheEnabled() {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    return this.blockCache != null;<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>  /**<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * Returns the block cache.<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   * @return the block cache, or null if caching is completely disabled<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public BlockCache getBlockCache() {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    return this.blockCache;<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>   * Returns whether the DATA blocks of this HFile should be cached on read or not (we always<a name="line.332"></a>
-<span class="sourceLineNo">333</span>   * cache the meta blocks, the INDEX and BLOOM blocks).<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * @return true if blocks should be cached on read, false if not<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   */<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  public boolean shouldCacheDataOnRead() {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    return isBlockCacheEnabled() &amp;&amp; cacheDataOnRead;<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>  public boolean shouldDropBehindCompaction() {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    return dropBehindCompaction;<a name="line.341"></a>
-<span class="sourceLineNo">342</span>  }<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>   * Should we cache a block of a particular category? We always cache<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   * important blocks such as index blocks, as long as the block cache is<a name="line.346"></a>
-<span class="sourceLineNo">347</span>   * available.<a name="line.347"></a>
+<span class="sourceLineNo">211</span>  /**<a name="line.211"></a>
+<span class="sourceLineNo">212</span>   * Create a cache configuration using the specified configuration object and<a name="line.212"></a>
+<span class="sourceLineNo">213</span>   * family descriptor.<a name="line.213"></a>
+<span class="sourceLineNo">214</span>   * @param conf hbase configuration<a name="line.214"></a>
+<span class="sourceLineNo">215</span>   * @param family column family configuration<a name="line.215"></a>
+<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>  public CacheConfig(Configuration conf, ColumnFamilyDescriptor family) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this(CacheConfig.instantiateBlockCache(conf),<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ)<a name="line.219"></a>
+<span class="sourceLineNo">220</span>           &amp;&amp; family.isBlockCacheEnabled(),<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        family.isInMemory(),<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        // For the following flags we enable them regardless of per-schema settings<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        // if they are enabled in the global configuration.<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY,<a name="line.224"></a>
+<span class="sourceLineNo">225</span>            DEFAULT_CACHE_DATA_ON_WRITE) || family.isCacheDataOnWrite(),<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        conf.getBoolean(CACHE_INDEX_BLOCKS_ON_WRITE_KEY,<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            DEFAULT_CACHE_INDEXES_ON_WRITE) || family.isCacheIndexesOnWrite(),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        conf.getBoolean(CACHE_BLOOM_BLOCKS_ON_WRITE_KEY,<a name="line.228"></a>
+<span class="sourceLineNo">229</span>            DEFAULT_CACHE_BLOOMS_ON_WRITE) || family.isCacheBloomsOnWrite(),<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY,<a name="line.230"></a>
+<span class="sourceLineNo">231</span>            DEFAULT_EVICT_ON_CLOSE) || family.isEvictBlocksOnClose(),<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        conf.getBoolean(CACHE_DATA_BLOCKS_COMPRESSED_KEY, DEFAULT_CACHE_DATA_COMPRESSED),<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        conf.getBoolean(PREFETCH_BLOCKS_ON_OPEN_KEY,<a name="line.233"></a>
+<span class="sourceLineNo">234</span>            DEFAULT_PREFETCH_ON_OPEN) || family.isPrefetchBlocksOnOpen(),<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        conf.getBoolean(DROP_BEHIND_CACHE_COMPACTION_KEY, DROP_BEHIND_CACHE_COMPACTION_DEFAULT)<a name="line.235"></a>
+<span class="sourceLineNo">236</span>     );<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    LOG.info("Created cacheConfig for " + family.getNameAsString() + ": " + this);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>  /**<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * Create a cache configuration using the specified configuration object and<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   * defaults for family level settings. Only use if no column family context. Prefer<a name="line.242"></a>
+<span class="sourceLineNo">243</span>   * {@link CacheConfig#CacheConfig(Configuration, ColumnFamilyDescriptor)}<a name="line.243"></a>
+<span class="sourceLineNo">244</span>   * @see #CacheConfig(Configuration, ColumnFamilyDescriptor)<a name="line.244"></a>
+<span class="sourceLineNo">245</span>   * @param conf hbase configuration<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  public CacheConfig(Configuration conf) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    this(conf, true);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>  public CacheConfig(Configuration conf, boolean enableBlockCache) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    this(conf, enableBlockCache,<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ),<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        DEFAULT_IN_MEMORY, // This is a family-level setting so can't be set<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                           // strictly from conf<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_DATA_ON_WRITE),<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        conf.getBoolean(CACHE_INDEX_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_INDEXES_ON_WRITE),<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        conf.getBoolean(CACHE_BLOOM_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_BLOOMS_ON_WRITE),<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY, DEFAULT_EVICT_ON_CLOSE),<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        conf.getBoolean(CACHE_DATA_BLOCKS_COMPRESSED_KEY, DEFAULT_CACHE_DATA_COMPRESSED),<a name="line.260"></a>
+<span class="sourceLineNo">261</span>        conf.getBoolean(PREFETCH_BLOCKS_ON_OPEN_KEY, DEFAULT_PREFETCH_ON_OPEN),<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        conf.getBoolean(DROP_BEHIND_CACHE_COMPACTION_KEY, DROP_BEHIND_CACHE_COMPACTION_DEFAULT));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    LOG.info("Created cacheConfig: " + this);<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>  private CacheConfig(Configuration conf, boolean enableBlockCache,<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      final boolean cacheDataOnRead, final boolean inMemory,<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      final boolean cacheDataOnWrite, final boolean cacheIndexesOnWrite,<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      final boolean cacheBloomsOnWrite, final boolean evictOnClose,<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      final boolean cacheDataCompressed, final boolean prefetchOnOpen,<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      final boolean dropBehindCompaction) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    if (enableBlockCache) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      this.blockCache = CacheConfig.instantiateBlockCache(conf);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    } else {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      this.blockCache = null;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    this.cacheDataOnRead = cacheDataOnRead;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    this.inMemory = inMemory;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    this.cacheDataOnWrite = cacheDataOnWrite;<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    this.cacheIndexesOnWrite = cacheIndexesOnWrite;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    this.cacheBloomsOnWrite = cacheBloomsOnWrite;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    this.evictOnClose = evictOnClose;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    this.cacheDataCompressed = cacheDataCompressed;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    this.prefetchOnOpen = prefetchOnOpen;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    this.dropBehindCompaction = dropBehindCompaction;<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>   * Create a block cache configuration with the specified cache and configuration parameters.<a name="line.289"></a>
+<span class="sourceLineNo">290</span>   * @param blockCache reference to block cache, null if completely disabled<a name="line.290"></a>
+<span class="sourceLineNo">291</span>   * @param cacheDataOnRead whether DATA blocks should be cached on read (we always cache INDEX<a name="line.291"></a>
+<span class="sourceLineNo">292</span>   *          blocks and BLOOM blocks; this cannot be disabled).<a name="line.292"></a>
+<span class="sourceLineNo">293</span>   * @param inMemory whether blocks should be flagged as in-memory<a name="line.293"></a>
+<span class="sourceLineNo">294</span>   * @param cacheDataOnWrite whether data blocks should be cached on write<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * @param cacheIndexesOnWrite whether index blocks should be cached on write<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   * @param cacheBloomsOnWrite whether blooms should be cached on write<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   * @param evictOnClose whether blocks should be evicted when HFile is closed<a name="line.297"></a>
+<span class="sourceLineNo">298</span>   * @param cacheDataCompressed whether to store blocks as compressed in the cache<a name="line.298"></a>
+<span class="sourceLineNo">299</span>   * @param prefetchOnOpen whether to prefetch blocks upon open<a name="line.299"></a>
+<span class="sourceLineNo">300</span>   * @param dropBehindCompaction indicate that we should set drop behind to true when open a store<a name="line.300"></a>
+<span class="sourceLineNo">301</span>   *          file reader for compaction<a name="line.301"></a>
+<span class="sourceLineNo">302</span>   */<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  @VisibleForTesting<a name="line.303"></a>
+<span class="sourceLineNo">304</span>  CacheConfig(final BlockCache blockCache,<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      final boolean cacheDataOnRead, final boolean inMemory,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      final boolean cacheDataOnWrite, final boolean cacheIndexesOnWrite,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      final boolean cacheBloomsOnWrite, final boolean evictOnClose,<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      final boolean cacheDataCompressed, final boolean prefetchOnOpen,<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      final boolean dropBehindCompaction) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    this.blockCache = blockCache;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    this.cacheDataOnRead = cacheDataOnRead;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    this.inMemory = inMemory;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    this.cacheDataOnWrite = cacheDataOnWrite;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    this.cacheIndexesOnWrite = cacheIndexesOnWrite;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    this.cacheBloomsOnWrite = cacheBloomsOnWrite;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    this.evictOnClose = evictOnClose;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    this.cacheDataCompressed = cacheDataCompressed;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    this.prefetchOnOpen = prefetchOnOpen;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    this.dropBehindCompaction = dropBehindCompaction;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  }<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>   * Constructs a cache configuration copied from the specified configuration.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>   * @param cacheConf<a name="line.324"></a>
+<span class="sourceLineNo">325</span>   */<a name="line.325"></a>
+<span class="sourceLineNo">326</span>  public CacheConfig(CacheConfig cacheConf) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    this(cacheConf.blockCache, cacheConf.cacheDataOnRead, cacheConf.inMemory,<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        cacheConf.cacheDataOnWrite, cacheConf.cacheIndexesOnWrite,<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        cacheConf.cacheBloomsOnWrite, cacheConf.evictOnClose,<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        cacheConf.cacheDataCompressed, cacheConf.prefetchOnOpen,<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        cacheConf.dropBehindCompaction);<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 CacheConfig() {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    this(null, false, false, false, false, false, false, false, false, false);<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>   * Checks whether the block cache is enabled.<a name="line.339"></a>
+<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
+<span class="sourceLineNo">341</span>  public boolean isBlockCacheEnabled() {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return this.blockCache != null;<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>  /**<a name="line.345"></a>
+<span class="sourceLineNo">346</span>   * Returns the block cache.<a name="line.346"></a>
+<span class="sourceLineNo">347</span>   * @return the block cache, or null if caching is completely disabled<a name="line.347"></a>
 <span class="sourceLineNo">348</span>   */<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  public boolean shouldCacheBlockOnRead(BlockCategory category) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    return isBlockCacheEnabled()<a name="line.350"></a>
-<span class="sourceLineNo">351</span>        &amp;&amp; (cacheDataOnRead ||<a name="line.351"></a>
-<span class="sourceLineNo">352</span>            category == BlockCategory.INDEX ||<a name="line.352"></a>
-<span class="sourceLineNo">353</span>            category == BlockCategory.BLOOM ||<a name="line.353"></a>
-<span class="sourceLineNo">354</span>            (prefetchOnOpen &amp;&amp;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>                (category != BlockCategory.META &amp;&amp;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>                 category != BlockCategory.UNKNOWN)));<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  }<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  /**<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   * @return true if blocks in this file should be flagged as in-memory<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   */<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  public boolean isInMemory() {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    return isBlockCacheEnabled() &amp;&amp; this.inMemory;<a name="line.363"></a>
+<span class="sourceLineNo">349</span>  public BlockCache getBlockCache() {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    return this.blockCache;<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>  /**<a name="line.353"></a>
+<span class="sourceLineNo">354</span>   * Returns whether the DATA blocks of this HFile should be cached on read or not (we always<a name="line.354"></a>
+<span class="sourceLineNo">355</span>   * cache the meta blocks, the INDEX and BLOOM blocks).<a name="line.355"></a>
+<span class="sourceLineNo">356</span>   * @return true if blocks should be cached on read, false if not<a name="line.356"></a>
+<span class="sourceLineNo">357</span>   */<a name="line.357"></a>
+<span class="sourceLineNo">358</span>  public boolean shouldCacheDataOnRead() {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    return isBlockCacheEnabled() &amp;&amp; cacheDataOnRead;<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>  public boolean shouldDropBehindCompaction() {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    return dropBehindCompaction;<a name="line.363"></a>
 <span class="sourceLineNo">364</span>  }<a name="line.364"></a>
 <span class="sourceLineNo">365</span><a name="line.365"></a>
 <span class="sourceLineNo">366</span>  /**<a name="line.366"></a>
-<span class="sourceLineNo">367</span>   * @return true if data blocks should be written to the cache when an HFile is<a name="line.367"></a>
-<span class="sourceLineNo">368</span>   *         written, false if not<a name="line.368"></a>
-<span class="sourceLineNo">369</span>   */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public boolean shouldCacheDataOnWrite() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheDataOnWrite;<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>  /**<a name="line.374"></a>
-<span class="sourceLineNo">375</span>   * Only used for testing.<a name="line.375"></a>
-<span class="sourceLineNo">376</span>   * @param cacheDataOnWrite whether data blocks should be written to the cache<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   *                         when an HFile is written<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   */<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @VisibleForTesting<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public void setCacheDataOnWrite(boolean cacheDataOnWrite) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    this.cacheDataOnWrite = cacheDataOnWrite;<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>  /**<a name="line.384"></a>
-<span class="sourceLineNo">385</span>   * @return true if index blocks should be written to the cache when an HFile<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   *         is written, false if not<a name="line.386"></a>
-<span class="sourceLineNo">387</span>   */<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  public boolean shouldCacheIndexesOnWrite() {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheIndexesOnWrite;<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>   * @return true if bloom blocks should be written to the cache when an HFile<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   *         is written, false if not<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  public boolean shouldCacheBloomsOnWrite() {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheBloomsOnWrite;<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  }<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>   * @return true if blocks should be evicted from the cache when an HFile<a name="line.401"></a>
-<span class="sourceLineNo">402</span>   *         reader is closed, false if not<a name="line.402"></a>
-<span class="sourceLineNo">403</span>   */<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  public boolean shouldEvictOnClose() {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    return isBlockCacheEnabled() &amp;&amp; this.evictOnClose;<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>   * Only used for testing.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @param evictOnClose whether blocks should be evicted from the cache when an<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   *                     HFile reader is closed<a name="line.411"></a>
-<span class="sourceLineNo">412</span>   */<a name="line.412"></a>
-<span class="sourceLineNo">413</span>  public void setEvictOnClose(boolean evictOnClose) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    this.evictOnClose = evictOnClose;<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>  /**<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * @return true if data blocks should be compressed in the cache, false if not<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   */<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public boolean shouldCacheDataCompressed() {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<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>  /**<a name="line.424"></a>
-<span class="sourceLineNo">425</span>   * @return true if this {@link BlockCategory} should be compressed in blockcache, false otherwise<a name="line.425"></a>
-<span class="sourceLineNo">426</span>   */<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  public boolean shouldCacheCompressed(BlockCategory category) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    if (!isBlockCacheEnabled()) return false;<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    switch (category) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      case DATA:<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        return this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      default:<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        return false;<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><a name="line.436"></a>
-<span class="sourceLineNo">437</span>  /**<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   * @return true if blocks should be prefetched into the cache on open, false if not<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   */<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  public boolean shouldPrefetchOnOpen() {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    return isBlockCacheEnabled() &amp;&amp; this.prefetchOnOpen;<a name="line.441"></a>
-<span class="sourceLineNo">442</span>  }<a name="line.442"></a>
-<span class="sourceLineNo">443</span><a name="line.443"></a>
-<span class="sourceLineNo">444</span>  /**<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   * Return true if we may find this type of block in block cache.<a name="line.445"></a>
-<span class="sourceLineNo">446</span>   * &lt;p&gt;<a name="line.446"></a>
-<span class="sourceLineNo">447</span>   * TODO: today {@code family.isBlockCacheEnabled()} only means {@code cacheDataOnRead}, so here we<a name="line.447"></a>
-<span class="sourceLineNo">448</span>   * consider lots of other configurations such as {@code cacheDataOnWrite}. We should fix this in<a name="line.448"></a>
-<span class="sourceLineNo">449</span>   * the future, {@code cacheDataOnWrite} should honor the CF level {@code isBlockCacheEnabled}<a name="line.449"></a>
-<span class="sourceLineNo">450</span>   * configuration.<a name="line.450"></a>
-<span class="sourceLineNo">451</span>   */<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  public boolean shouldReadBlockFromCache(BlockType blockType) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    if (!isBlockCacheEnabled()) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      return false;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    }<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    if (cacheDataOnRead) {<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      return true;<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    if (prefetchOnOpen) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      return true;<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    }<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    if (cacheDataOnWrite) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      return true;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    if (blockType == null) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      return true;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (blockType.getCategory() == BlockCategory.BLOOM ||<a name="line.468"></a>
-<span class="sourceLineNo">469</span>            blockType.getCategory() == BlockCategory.INDEX) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      return true;<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    return false;<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>  /**<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * If we make sure the block could not be cached, we will not acquire the lock<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * otherwise we will acquire lock<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   */<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  public boolean shouldLockOnCacheMiss(BlockType blockType) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    if (blockType == null) {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      return true;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    return shouldCacheBlockOnRead(blockType.getCategory());<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 String toString() {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    if (!isBlockCacheEnabled()) {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      return "CacheConfig:disabled";<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    }<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    return "blockCache=" + getBlockCache() +<a name="line.491"></a>
-<span class="sourceLineNo">492</span>      ", cacheDataOnRead=" + shouldCacheDataOnRead() +<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      ", cacheDataOnWrite=" + shouldCacheDataOnWrite() +<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      ", cacheIndexesOnWrite=" + shouldCacheIndexesOnWrite() +<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      ", cacheBloomsOnWrite=" + shouldCacheBloomsOnWrite() +<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      ", cacheEvictOnClose=" + shouldEvictOnClose() +<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      ", cacheDataCompressed=" + shouldCacheDataCompressed() +<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      ", prefetchOnOpen=" + shouldPrefetchOnOpen();<a name="line.498"></a>
-<span class="sourceLineNo">499</span>  }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>  // Static block cache reference and methods<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>  /**<a name="line.503"></a>
-<span class="sourceLineNo">504</span>   * Static reference to the block cache, or null if no caching should be used<a name="line.504"></a>
-<span class="sourceLineNo">505</span>   * at all.<a name="line.505"></a>
-<span class="sourceLineNo">506</span>   */<a name="line.506"></a>
-<span class="sourceLineNo">507</span>  // Clear this if in tests you'd make more than one block cache instance.<a name="line.507"></a>
-<span class="sourceLineNo">508</span>  @VisibleForTesting<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  static BlockCache GLOBAL_BLOCK_CACHE_INSTANCE;<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  private static LruBlockCache ONHEAP_CACHE_INSTANCE = null;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  private static BlockCache L2_CACHE_INSTANCE = null;// Can be BucketCache or External cache.<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>  /** Boolean whether we have disabled the block cache entirely. */<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  @VisibleForTesting<a name="line.514"></a>
-<span class="sourceLineNo">515</span>  static boolean blockCacheDisabled = false;<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>   * @param c Configuration to use.<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @return An L1 instance.  Currently an instance of LruBlockCache.<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   */<a name="line.520"></a>
-<span class="sourceLineNo">521</span>  public static LruBlockCache getOnHeapCache(final Configuration c) {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    return getOnHeapCacheInternal(c);<a name="line.522"></a>
-<span class="sourceLineNo">523</span>  }<a name="line.523"></a>
+<span class="sourceLineNo">367</span>   * Should we cache a block of a particular category? We always cache<a name="line.367"></a>
+<span class="sourceLineNo">368</span>   * important blocks such as index blocks, as long as the block cache is<a name="line.368"></a>
+<span class="sourceLineNo">369</span>   * available.<a name="line.369"></a>
+<span class="sourceLineNo">370</span>   */<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  public boolean shouldCacheBlockOnRead(BlockCategory category) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    return isBlockCacheEnabled()<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        &amp;&amp; (cacheDataOnRead ||<a name="line.373"></a>
+<span class="sourceLineNo">374</span>            category == BlockCategory.INDEX ||<a name="line.374"></a>
+<span class="sourceLineNo">375</span>            category == BlockCategory.BLOOM ||<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            (prefetchOnOpen &amp;&amp;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                (category != BlockCategory.META &amp;&amp;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                 category != BlockCategory.UNKNOWN)));<a name="line.378"></a>
+<span class="sourceLineNo">379</span>  }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>  /**<a name="line.381"></a>
+<span class="sourceLineNo">382</span>   * @return true if blocks in this file should be flagged as in-memory<a name="line.382"></a>
+<span class="sourceLineNo">383</span>   */<a name="line.383"></a>
+<span class="sourceLineNo">384</span>  public boolean isInMemory() {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    return isBlockCacheEnabled() &amp;&amp; this.inMemory;<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>   * @return true if data blocks should be written to the cache when an HFile is<a name="line.389"></a>
+<span class="sourceLineNo">390</span>   *         written, false if not<a name="line.390"></a>
+<span class="sourceLineNo">391</span>   */<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  public boolean shouldCacheDataOnWrite() {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheDataOnWrite;<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>  /**<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * Only used for testing.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   * @param cacheDataOnWrite whether data blocks should be written to the cache<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   *                         when an HFile is written<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   */<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  @VisibleForTesting<a name="line.401"></a>
+<span class="sourceLineNo">402</span>  public void setCacheDataOnWrite(boolean cacheDataOnWrite) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    this.cacheDataOnWrite = cacheDataOnWrite;<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>  /**<a name="line.406"></a>
+<span class="sourceLineNo">407</span>   * @return true if index blocks should be written to the cache when an HFile<a name="line.407"></a>
+<span class="sourceLineNo">408</span>   *         is written, false if not<a name="line.408"></a>
+<span class="sourceLineNo">409</span>   */<a name="line.409"></a>
+<span class="sourceLineNo">410</span>  public boolean shouldCacheIndexesOnWrite() {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheIndexesOnWrite;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>  }<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>  /**<a name="line.414"></a>
+<span class="sourceLineNo">415</span>   * @return true if bloom blocks should be written to the cache when an HFile<a name="line.415"></a>
+<span class="sourceLineNo">416</span>   *         is written, false if not<a name="line.416"></a>
+<span class="sourceLineNo">417</span>   */<a name="line.417"></a>
+<span class="sourceLineNo">418</span>  public boolean shouldCacheBloomsOnWrite() {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheBloomsOnWrite;<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>   * @return true if blocks should be evicted from the cache when an HFile<a name="line.423"></a>
+<span class="sourceLineNo">424</span>   *         reader is closed, false if not<a name="line.424"></a>
+<span class="sourceLineNo">425</span>   */<a name="line.425"></a>
+<span class="sourceLineNo">426</span>  public boolean shouldEvictOnClose() {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    return isBlockCacheEnabled() &amp;&amp; this.evictOnClose;<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>   * Only used for testing.<a name="line.431"></a>
+<span class="sourceLineNo">432</span>   * @param evictOnClose whether blocks should be evicted from the cache when an<a name="line.432"></a>
+<span class="sourceLineNo">433</span>   *                     HFile reader is closed<a name="line.433"></a>
+<span class="sourceLineNo">434</span>   */<a name="line.434"></a>
+<span class="sourceLineNo">435</span>  public void setEvictOnClose(boolean evictOnClose) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    this.evictOnClose = evictOnClose;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>  }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>  /**<a name="line.439"></a>
+<span class="sourceLineNo">440</span>   * @return true if data blocks should be compressed in the cache, false if not<a name="line.440"></a>
+<span class="sourceLineNo">441</span>   */<a name="line.441"></a>
+<span class="sourceLineNo">442</span>  public boolean shouldCacheDataCompressed() {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<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">446</span>  /**<a name="line.446"></a>
+<span class="sourceLineNo">447</span>   * @return true if this {@link BlockCategory} should be compressed in blockcache, false otherwise<a name="line.447"></a>
+<span class="sourceLineNo">448</span>   */<a name="line.448"></a>
+<span class="sourceLineNo">449</span>  public boolean shouldCacheCompressed(BlockCategory category) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    if (!isBlockCacheEnabled()) return false;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>    switch (category) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      case DATA:<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        return this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      default:<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        return false;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    }<a name="line.456"></a>
+<span class="sourceLineNo">457</span>  }<a name="line.457"></a>
+<span class="sourceLineNo">458</span><a name="line.458"></a>
+<span class="sourceLineNo">459</span>  /**<a name="line.459"></a>
+<span class="sourceLineNo">460</span>   * @return true if blocks should be prefetched into the cache on open, false if not<a name="line.460"></a>
+<span class="sourceLineNo">461</span>   */<a name="line.461"></a>
+<span class="sourceLineNo">462</span>  public boolean shouldPrefetchOnOpen() {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    return isBlockCacheEnabled() &amp;&amp; this.prefetchOnOpen;<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>  /**<a name="line.466"></a>
+<span class="sourceLineNo">467</span>   * Return true if we may find this type of block in block cache.<a name="line.467"></a>
+<span class="sourceLine

<TRUNCATED>

[06/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/client/package-summary.html
index 690ad04..d81409c 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/package-summary.html
@@ -161,853 +161,891 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.html" title="class in org.apache.hadoop.hbase.client">ColumnCountOnRowFilter</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientErrorTestBase</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientNormalTestBase</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></td>
+<td class="colLast">
+<div class="block">Base class for testing clone snapsot</div>
+</td>
+</tr>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.html" title="class in org.apache.hadoop.hbase.client">ColumnCountOnRowFilter</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/DoNothingAsyncRegistry.html" title="class in org.apache.hadoop.hbase.client">DoNothingAsyncRegistry</a></td>
 <td class="colLast">
 <div class="block">Registry that does nothing.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/HConnectionTestingUtility.html" title="class in org.apache.hadoop.hbase.client">HConnectionTestingUtility</a></td>
 <td class="colLast">
 <div class="block"><code>ClusterConnection</code> testing utility.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/HConnectionTestingUtility.SleepAtFirstRpcCall.html" title="class in org.apache.hadoop.hbase.client">HConnectionTestingUtility.SleepAtFirstRpcCall</a></td>
 <td class="colLast">
 <div class="block">This coproceesor sleep 2s at first increment/append rpc call.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/SimpleScanResultConsumer.html" title="class in org.apache.hadoop.hbase.client">SimpleScanResultConsumer</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin1.html" title="class in org.apache.hadoop.hbase.client">TestAdmin1</a></td>
 <td class="colLast">
 <div class="block">Class to test HBaseAdmin.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin2.html" title="class in org.apache.hadoop.hbase.client">TestAdmin2</a></td>
 <td class="colLast">
 <div class="block">Class to test HBaseAdmin.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdminShell.html" title="class in org.apache.hadoop.hbase.client">TestAdminShell</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAllowPartialScanResultCache.html" title="class in org.apache.hadoop.hbase.client">TestAllowPartialScanResultCache</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAlwaysSetScannerId.html" title="class in org.apache.hadoop.hbase.client">TestAlwaysSetScannerId</a></td>
 <td class="colLast">
 <div class="block">Testcase to make sure that we always set scanner id in ScanResponse.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAppendFromClientSide.html" title="class in org.apache.hadoop.hbase.client">TestAppendFromClientSide</a></td>
 <td class="colLast">
 <div class="block">Run Append tests that use the HBase clients;</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBase.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminBase</a></td>
 <td class="colLast">
 <div class="block">Class to test AsyncAdmin.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminBuilder</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestMaxRetriesCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminBuilder.TestMaxRetriesCoprocessor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestOperationTimeoutCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminBuilder.TestOperationTimeoutCoprocessor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.TestRpcTimeoutCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAdminBuilder.TestRpcTimeoutCoprocessor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAggregationClient.html" title="class in org.apache.hadoop.hbase.client">TestAsyncAggregationClient</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncBufferMutator.html" title="class in org.apache.hadoop.hbase.client">TestAsyncBufferMutator</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncClusterAdminApi</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi2.html" title="class in org.apache.hadoop.hbase.client">TestAsyncClusterAdminApi2</a></td>
 <td class="colLast">
 <div class="block">Only used to test stopMaster/stopRegionServer/shutdown methods.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncDecommissionAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncDecommissionAdminApi</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncMetaRegionLocator.html" title="class in org.apache.hadoop.hbase.client">TestAsyncMetaRegionLocator</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncNamespaceAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncNamespaceAdminApi</a></td>
 <td class="colLast">
 <div class="block">Class to test asynchronous namespace admin operations.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncNonMetaRegionLocator.html" title="class in org.apache.hadoop.hbase.client">TestAsyncNonMetaRegionLocator</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncNonMetaRegionLocatorConcurrenyLimit.html" title="class in org.apache.hadoop.hbase.client">TestAsyncNonMetaRegionLocatorConcurrenyLimit</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncNonMetaRegionLocatorConcurrenyLimit.CountingRegionObserver.html" title="class in org.apache.hadoop.hbase.client">TestAsyncNonMetaRegionLocatorConcurrenyLimit.CountingRegionObserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcedureAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcedureAdminApi</a></td>
 <td class="colLast">
 <div class="block">Class to test asynchronous procedure admin operations.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessForThrowableCheck.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.AsyncProcessForThrowableCheck</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.AsyncProcessWithFailure.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.AsyncProcessWithFailure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.CallerWithFailure.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.CallerWithFailure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.CountingThreadFactory.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.CountingThreadFactory</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcess.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyAsyncProcess</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncProcessWithReplicas.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyAsyncProcessWithReplicas</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyAsyncRequestFutureImpl.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyAsyncRequestFutureImpl</a>&lt;Res&gt;</td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyClientBackoffPolicy.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyClientBackoffPolicy</a></td>
 <td class="colLast">
 <div class="block">Make the backoff time always different on each call.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyConnectionImpl</a></td>
 <td class="colLast">
 <div class="block">Returns our async process.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl.TestRegistry.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyConnectionImpl.TestRegistry</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyConnectionImpl2.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyConnectionImpl2</a></td>
 <td class="colLast">
 <div class="block">Returns our async process.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcess.MyThreadPoolExecutor.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcess.MyThreadPoolExecutor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcessWithRegionException.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcessWithRegionException</a></td>
 <td class="colLast">
 <div class="block">The purpose of this test is to make sure the region exception won't corrupt the results
  of batch.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncProcessWithRegionException.MyAsyncProcess.html" title="class in org.apache.hadoop.hbase.client">TestAsyncProcessWithRegionException.MyAsyncProcess</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncQuotaAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncQuotaAdminApi</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionAdminApi</a></td>
 <td class="colLast">
 <div class="block">Class to test asynchronous region admin operations.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi2.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionAdminApi2</a></td>
 <td class="colLast">
 <div class="block">Class to test asynchronous region admin operations.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionLocatorTimeout.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionLocatorTimeout</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionLocatorTimeout.SleepRegionObserver.html" title="class in org.apache.hadoop.hbase.client">TestAsyncRegionLocatorTimeout.SleepRegionObserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncReplicationAdminApi</a></td>
 <td class="colLast">
 <div class="block">Class to test asynchronous replication admin operations.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApiWithClusters.html" title="class in org.apache.hadoop.hbase.client">TestAsyncReplicationAdminApiWithClusters</a></td>
 <td class="colLast">
 <div class="block">Class to test asynchronous replication admin operations when more than 1 cluster</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncResultScannerCursor.html" title="class in org.apache.hadoop.hbase.client">TestAsyncResultScannerCursor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncSingleRequestRpcRetryingCaller.html" title="class in org.apache.hadoop.hbase.client">TestAsyncSingleRequestRpcRetryingCaller</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncSnapshotAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncSnapshotAdminApi</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTable.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTable</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableAdminApi</a></td>
 <td class="colLast">
 <div class="block">Class to test asynchronous table admin operations.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableAdminApi2.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableAdminApi2</a></td>
 <td class="colLast">
 <div class="block">Class to test asynchronous table admin operations</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableAdminApi3.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableAdminApi3</a></td>
 <td class="colLast">
 <div class="block">Class to test asynchronous table admin operations.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableBatch.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableBatch</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableBatch.ErrorInjectObserver.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableBatch.ErrorInjectObserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreaded.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableGetMultiThreaded</a></td>
 <td class="colLast">
 <div class="block">Will split the table, and move region randomly when testing.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreadedWithBasicCompaction.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableGetMultiThreadedWithBasicCompaction</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableGetMultiThreadedWithEagerCompaction.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableGetMultiThreadedWithEagerCompaction</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableLocatePrefetch.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableLocatePrefetch</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableNoncedRetry.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableNoncedRetry</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScan.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScan</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanAll.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScanAll</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanMetrics.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScanMetrics</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanner.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScanner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScannerCloseWhileSuspending.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScannerCloseWhileSuspending</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanRenewLease.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScanRenewLease</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanRenewLease.RenewLeaseConsumer.html" title="class in org.apache.hadoop.hbase.client">TestAsyncTableScanRenewLease.RenewLeaseConsumer</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncToolAdminApi.html" title="class in org.apache.hadoop.hbase.client">TestAsyncToolAdminApi</a></td>
 <td class="colLast">
 <div class="block">Test the admin operations for Balancer, Normalizer, CleanerChore, and CatalogJanitor.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAttributes.html" title="class in org.apache.hadoop.hbase.client">TestAttributes</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAvoidCellReferencesIntoShippedBlocks.html" title="class in org.apache.hadoop.hbase.client">TestAvoidCellReferencesIntoShippedBlocks</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAvoidCellReferencesIntoShippedBlocks.CompactorInternalScanner.html" title="class in org.apache.hadoop.hbase.client">TestAvoidCellReferencesIntoShippedBlocks.CompactorInternalScanner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAvoidCellReferencesIntoShippedBlocks.CompactorRegionObserver.html" title="class in org.apache.hadoop.hbase.client">TestAvoidCellReferencesIntoShippedBlocks.CompactorRegionObserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestAvoidCellReferencesIntoShippedBlocks.ScannerThread.html" title="class in org.apache.hadoop.hbase.client">TestAvoidCellReferencesIntoShippedBlocks.ScannerThread</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBatchScanResultCache.html" title="class in org.apache.hadoop.hbase.client">TestBatchScanResultCache</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.CustomInnerRegionObserver.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.CustomInnerRegionObserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.CustomInnerRegionObserverWrapper.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.CustomInnerRegionObserverWrapper</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.CustomScanner.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.CustomScanner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.GetThread.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.GetThread</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.MultiGetThread.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.MultiGetThread</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.ScanThread.html" title="class in org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.ScanThread</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBufferedMutator.html" title="class in org.apache.hadoop.hbase.client">TestBufferedMutator</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBufferedMutator.MyBufferedMutator.html" title="class in org.apache.hadoop.hbase.client">TestBufferedMutator.MyBufferedMutator</a></td>
 <td class="colLast">
 <div class="block">My BufferedMutator.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBufferedMutatorParams.html" title="class in org.apache.hadoop.hbase.client">TestBufferedMutatorParams</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestBufferedMutatorParams.MockExceptionListener.html" title="class in org.apache.hadoop.hbase.client">TestBufferedMutatorParams.MockExceptionListener</a></td>
 <td class="colLast">
 <div class="block">Just to create an instance, this doesn't actually function.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCheckAndMutate.html" title="class in org.apache.hadoop.hbase.client">TestCheckAndMutate</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIBadHostname.html" title="class in org.apache.hadoop.hbase.client">TestCIBadHostname</a></td>
 <td class="colLast">
 <div class="block">Tests that we fail fast when hostname resolution is not working and do not cache
  unresolved InetSocketAddresses.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIDeleteOperationTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIDeleteOperationTimeout</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIDeleteRpcTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIDeleteRpcTimeout</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIGetOperationTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIGetOperationTimeout</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIGetRpcTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIGetRpcTimeout</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIIncrementRpcTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIIncrementRpcTimeout</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIPutOperationTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIPutOperationTimeout</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCIPutRpcTimeout.html" title="class in org.apache.hadoop.hbase.client">TestCIPutRpcTimeout</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCISleep.html" title="class in org.apache.hadoop.hbase.client">TestCISleep</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientExponentialBackoff.html" title="class in org.apache.hadoop.hbase.client">TestClientExponentialBackoff</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.html" title="class in org.apache.hadoop.hbase.client">TestClientNoCluster</a></td>
 <td class="colLast">
 <div class="block">Test client behavior w/o setting up a cluster.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.FakeServer.html" title="class in org.apache.hadoop.hbase.client">TestClientNoCluster.FakeServer</a></td>
 <td class="colLast">
 <div class="block">Fake 'server'.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.ManyServersManyRegionsConnection.html" title="class in org.apache.hadoop.hbase.client">TestClientNoCluster.ManyServersManyRegionsConnection</a></td>
 <td class="colLast">
 <div class="block">Fake many regionservers and many regions on a connection implementation.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.MetaRowsComparator.html" title="class in org.apache.hadoop.hbase.client">TestClientNoCluster.MetaRowsComparator</a></td>
 <td class="colLast">
 <div class="block">Comparator for meta row keys.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection.html" title="class in org.apache.hadoop.hbase.client">TestClientNoCluster.RegionServerStoppedOnScannerOpenConnection</a></td>
 <td class="colLast">
 <div class="block">Override to shutdown going to zookeeper for cluster id and meta location.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.RpcTimeoutConnection.html" title="class in org.apache.hadoop.hbase.client">TestClientNoCluster.RpcTimeoutConnection</a></td>
 <td class="colLast">
 <div class="block">Override to check we are setting rpc timeout right.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.SimpleRegistry.html" title="class in org.apache.hadoop.hbase.client">TestClientNoCluster.SimpleRegistry</a></td>
 <td class="colLast">
 <div class="block">Simple cluster registry inserted in place of our usual zookeeper based one.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientOperationInterrupt.html" title="class in org.apache.hadoop.hbase.client">TestClientOperationInterrupt</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientOperationInterrupt.TestCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestClientOperationInterrupt.TestCoprocessor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientPushback.html" title="class in org.apache.hadoop.hbase.client">TestClientPushback</a></td>
 <td class="colLast">
 <div class="block">Test that we can actually send and use region metrics to slowdown client writes</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScanner.html" title="class in org.apache.hadoop.hbase.client">TestClientScanner</a></td>
 <td class="colLast">
 <div class="block">Test the ClientScanner.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScanner.MockClientScanner.html" title="class in org.apache.hadoop.hbase.client">TestClientScanner.MockClientScanner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScanner.MockRpcRetryingCallerFactory.html" title="class in org.apache.hadoop.hbase.client">TestClientScanner.MockRpcRetryingCallerFactory</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html" title="class in org.apache.hadoop.hbase.client">TestClientScannerRPCTimeout</a></td>
 <td class="colLast">
 <div class="block">Test the scenario where a HRegionServer#scan() call, while scanning, timeout at client side and
  getting retried.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.RegionServerWithScanTimeout.html" title="class in org.apache.hadoop.hbase.client">TestClientScannerRPCTimeout.RegionServerWithScanTimeout</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.RSRpcServicesWithScanTimeout.html" title="class in org.apache.hadoop.hbase.client">TestClientScannerRPCTimeout.RSRpcServicesWithScanTimeout</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.html" title="class in org.apache.hadoop.hbase.client">TestClientTimeouts</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutBlockingRpcChannel.html" title="class in org.apache.hadoop.hbase.client">TestClientTimeouts.RandomTimeoutBlockingRpcChannel</a></td>
 <td class="colLast">
 <div class="block">Blocking rpc channel that goes via hbase rpc.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html" title="class in org.apache.hadoop.hbase.client">TestClientTimeouts.RandomTimeoutRpcClient</a></td>
 <td class="colLast">
 <div class="block">Rpc Channel implementation with RandomTimeoutBlockingRpcChannel</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientAfterSplittingRegion</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></td>
-<td class="colLast">
-<div class="block">Test clone snapshots from the client</div>
-</td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientCloneLinksAfterDelete</a></td>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientWithRegionReplicas</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientError</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TestColumnFamilyDescriptorBuilder</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientNormal</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCompleteResultScanResultCache.html" title="class in org.apache.hadoop.hbase.client">TestCompleteResultScanResultCache</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client">TestColumnFamilyDescriptorBuilder</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCompleteResultScanResultCache.html" title="class in org.apache.hadoop.hbase.client">TestCompleteResultScanResultCache</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionImplementation.html" title="class in org.apache.hadoop.hbase.client">TestConnectionImplementation</a></td>
 <td class="colLast">
 <div class="block">This class is for testing HBaseConnectionManager features</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionImplementation.BlockingFilter.html" title="class in org.apache.hadoop.hbase.client">TestConnectionImplementation.BlockingFilter</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionUtils.html" title="class in org.apache.hadoop.hbase.client">TestConnectionUtils</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestCoprocessorDescriptor.html" title="class in org.apache.hadoop.hbase.client">TestCoprocessorDescriptor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestDelayingRunner.html" title="class in org.apache.hadoop.hbase.client">TestDelayingRunner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestDeleteTimeStamp.html" title="class in org.apache.hadoop.hbase.client">TestDeleteTimeStamp</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestDropTimeoutRequest.html" title="class in org.apache.hadoop.hbase.client">TestDropTimeoutRequest</a></td>
 <td class="colLast">
 <div class="block">Test a drop timeout request.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestDropTimeoutRequest.SleepLongerAtFirstCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestDropTimeoutRequest.SleepLongerAtFirstCoprocessor</a></td>
 <td class="colLast">
 <div class="block">Coprocessor that sleeps a while the first time you do a Get</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestEnableTable.html" title="class in org.apache.hadoop.hbase.client">TestEnableTable</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestEnableTable.MasterSyncObserver.html" title="class in org.apache.hadoop.hbase.client">TestEnableTable.MasterSyncObserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFastFail.html" title="class in org.apache.hadoop.hbase.client">TestFastFail</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFastFail.CallQueueTooBigPffeInterceptor.html" title="class in org.apache.hadoop.hbase.client">TestFastFail.CallQueueTooBigPffeInterceptor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFastFail.MyPreemptiveFastFailInterceptor.html" title="class in org.apache.hadoop.hbase.client">TestFastFail.MyPreemptiveFastFailInterceptor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFlushFromClient.html" title="class in org.apache.hadoop.hbase.client">TestFlushFromClient</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide</a></td>
 <td class="colLast">
 <div class="block">Run tests that use the HBase clients; <code>Table</code>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide3.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide3</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide3.WaitingForMultiMutationsObserver.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide3.WaitingForMultiMutationsObserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSide3.WaitingForScanObserver.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSide3.WaitingForScanObserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideNoCodec.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideNoCodec</a></td>
 <td class="colLast">
 <div class="block">Do some ops and prove that client and server can work w/o codecs; that we can pb all the time.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideScanExcpetion</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.MyHRegion.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideScanExcpetion.MyHRegion</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.MyHStore.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideScanExcpetion.MyHStore</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.MyStoreScanner.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideScanExcpetion.MyStoreScanner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetionWithCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideScanExcpetionWithCoprocessor</a></td>
 <td class="colLast">
 <div class="block">Test all client operations with a coprocessor that just implements the default flush/compact/scan
  policy.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideWithCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestFromClientSideWithCoprocessor</a></td>
 <td class="colLast">
 <div class="block">Test all client operations with a coprocessor that just implements the default flush/compact/scan
  policy.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestGet.html" title="class in org.apache.hadoop.hbase.client">TestGet</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestGetProcedureResult.html" title="class in org.apache.hadoop.hbase.client">TestGetProcedureResult</a></td>
 <td class="colLast">
 <div class="block">Testcase for HBASE-19608.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestGetProcedureResult.DummyProcedure.html" title="class in org.apache.hadoop.hbase.client">TestGetProcedureResult.DummyProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestGetScanPartialResult.html" title="class in org.apache.hadoop.hbase.client">TestGetScanPartialResult</a></td>
 <td class="colLast">
 <div class="block">Testcase for HBASE-21032, where use the wrong readType from a Scan instance which is actually a
  get scan and cause returning only 1 cell per rpc call.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestHBaseAdminNoCluster.html" title="class in org.apache.hadoop.hbase.client">TestHBaseAdminNoCluster</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestHbck.html" title="class in org.apache.hadoop.hbase.client">TestHbck</a></td>
 <td class="colLast">
 <div class="block">Class to test HBaseHbck.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestHbck.SuspendProcedure.html" title="class in org.apache.hadoop.hbase.client">TestHbck.SuspendProcedure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexer.html" title="class in org.apache.hadoop.hbase.client">TestHTableMultiplexer</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.html" title="class in org.apache.hadoop.hbase.client">TestHTableMultiplexerFlushCache</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexerViaMocks.html" title="class in org.apache.hadoop.hbase.client">TestHTableMultiplexerViaMocks</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestIllegalTableDescriptor.html" title="class in org.apache.hadoop.hbase.client">TestIllegalTableDescriptor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestImmutableHColumnDescriptor.html" title="class in org.apache.hadoop.hbase.client">TestImmutableHColumnDescriptor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestImmutableHRegionInfo.html" title="class in org.apache.hadoop.hbase.client">TestImmutableHRegionInfo</a></td>
 <td class="colLast">
 <div class="block">Test ImmutableHRegionInfo</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestImmutableHTableDescriptor.html" title="class in org.apache.hadoop.hbase.client">TestImmutableHTableDescriptor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestIncrement.html" title="class in org.apache.hadoop.hbase.client">TestIncrement</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestIncrementFromClientSideWithCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestIncrementFromClientSideWithCoprocessor</a></td>
 <td class="colLast">
 <div class="block">Test all <code>Increment</code> client operations with a coprocessor that
  just implements the default flush/compact/scan policy.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestIncrementsFromClientSide.html" title="class in org.apache.hadoop.hbase.client">TestIncrementsFromClientSide</a></td>
 <td class="colLast">
 <div class="block">Run Increment tests that use the HBase clients; <code>HTable</code>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestInterfaceAlign.html" title="class in org.apache.hadoop.hbase.client">TestInterfaceAlign</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestIntraRowPagination.html" title="class in org.apache.hadoop.hbase.client">TestIntraRowPagination</a></td>
 <td class="colLast">
 <div class="block">Test scan/get offset and limit settings within one row through HRegion API.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestLeaseRenewal.html" title="class in org.apache.hadoop.hbase.client">TestLeaseRenewal</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestLimitedScanWithFilter.html" title="class in org.apache.hadoop.hbase.client">TestLimitedScanWithFilter</a></td>
 <td class="colLast">
 <div class="block">With filter we may stop at a middle of row and think that we still have more cells for the
  current row but actually all the remaining cells will be filtered out by the filter.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMalformedCellFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMalformedCellFromClient</a></td>
 <td class="colLast">
 <div class="block">The purpose of this test is to ensure whether rs deals with the malformed cells correctly.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.CallQueueTooBigExceptionInjector.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache.CallQueueTooBigExceptionInjector</a></td>
 <td class="colLast">
 <div class="block">Throws CallQueueTooBigException for all gets.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.ExceptionInjector.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache.ExceptionInjector</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.FakeRSRpcServices.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache.FakeRSRpcServices</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.RegionServerWithFakeRpcServices.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache.RegionServerWithFakeRpcServices</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.RoundRobinExceptionInjector.html" title="class in org.apache.hadoop.hbase.client">TestMetaCache.RoundRobinExceptionInjector</a></td>
 <td class="colLast">
 <div class="block">Rotates through the possible cache clearing and non-cache clearing exceptions
  for requests.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaWithReplicas.html" title="class in org.apache.hadoop.hbase.client">TestMetaWithReplicas</a></td>
 <td class="colLast">
 <div class="block">Tests the scenarios where replicas are enabled for the meta table</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetricsConnection.html" title="class in org.apache.hadoop.hbase.client">TestMetricsConnection</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
 <tr class="rowColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient</a></td>
-<td class="colLast">
-<div class="block">Test clone snapshots from the client</div>
-</td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></td>
+<td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</a></td>
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</a></td>
 <td class="colLast">
 <div class="block">This coprocessor is used to delay the flush.</div>
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientError</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientNormal</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobRestoreSnapshotFromClient</a></td>
 <td class="colLast">
 <div class="block">Test restore snapshots from the client</div>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html
index bf990b3..45a27ec 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -183,6 +183,34 @@
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/BufferingScanResultConsumer.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">BufferingScanResultConsumer</span></a> (implements org.apache.hadoop.hbase.client.AdvancedScanResultConsumer)</li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientTestBase</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientAfterSplittingRegionTestBase</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestCloneSnapshotFromClientAfterSplittingRegion</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClientAfterSplittingRegion</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestCloneSnapshotFromClientCloneLinksAfterDelete</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientErrorTestBase</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestCloneSnapshotFromClientError</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClientError</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientNormalTestBase</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestCloneSnapshotFromClientNormal</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClientNormal</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
 <li type="circle">org.apache.hadoop.conf.Configured (implements org.apache.hadoop.conf.Configurable)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestClientNoCluster.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestClientNoCluster</span></a> (implements org.apache.hadoop.util.Tool)</li>
@@ -390,12 +418,6 @@
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestClientScanner.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestClientScanner</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestClientScannerRPCTimeout</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestClientTimeouts.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestClientTimeouts</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestCloneSnapshotFromClient</span></a>
-<ul>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestCloneSnapshotFromClientWithRegionReplicas</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClient</span></a></li>
-</ul>
-</li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestColumnFamilyDescriptorBuilder</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestCompleteResultScanResultCache.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestCompleteResultScanResultCache</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestConnectionImplementation.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestConnectionImplementation</span></a></li>
@@ -457,7 +479,7 @@
 </li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestMetaWithReplicas.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMetaWithReplicas</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestMetricsConnection.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMetricsConnection</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</span></a> (implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver)</li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</span></a> (implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver)</li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestMultiParallel.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMultiParallel</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestMultiParallel.MyMasterObserver.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMultiParallel.MyMasterObserver</span></a> (implements org.apache.hadoop.hbase.coprocessor.MasterCoprocessor, org.apache.hadoop.hbase.coprocessor.MasterObserver)</li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestMultipleTimestamps.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMultipleTimestamps</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/package-use.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/package-use.html b/testdevapidocs/org/apache/hadoop/hbase/client/package-use.html
index 683d0ad..2b370f1 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/package-use.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/package-use.html
@@ -134,61 +134,73 @@
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/AbstractTestShell.html#org.apache.hadoop.hbase.client">AbstractTestShell</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/ColumnCountOnRowFilter.html#org.apache.hadoop.hbase.client">ColumnCountOnRowFilter</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html#org.apache.hadoop.hbase.client">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientErrorTestBase.html#org.apache.hadoop.hbase.client">CloneSnapshotFromClientErrorTestBase</a>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientNormalTestBase.html#org.apache.hadoop.hbase.client">CloneSnapshotFromClientNormalTestBase</a>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientTestBase.html#org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a>
+<div class="block">Base class for testing clone snapsot</div>
+</td>
 </tr>
 <tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/ColumnCountOnRowFilter.html#org.apache.hadoop.hbase.client">ColumnCountOnRowFilter</a>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/DoNothingAsyncRegistry.html#org.apache.hadoop.hbase.client">DoNothingAsyncRegistry</a>
 <div class="block">Registry that does nothing.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestAsyncAdminBase.html#org.apache.hadoop.hbase.client">TestAsyncAdminBase</a>
 <div class="block">Class to test AsyncAdmin.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestAsyncProcess.MyAsyncProcess.html#org.apache.hadoop.hbase.client">TestAsyncProcess.MyAsyncProcess</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestAsyncProcess.MyAsyncProcessWithReplicas.html#org.apache.hadoop.hbase.client">TestAsyncProcess.MyAsyncProcessWithReplicas</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestAsyncProcess.MyConnectionImpl.html#org.apache.hadoop.hbase.client">TestAsyncProcess.MyConnectionImpl</a>
 <div class="block">Returns our async process.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestAsyncProcess.ResponseGenerator.html#org.apache.hadoop.hbase.client">TestAsyncProcess.ResponseGenerator</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestAsyncProcess.RR.html#org.apache.hadoop.hbase.client">TestAsyncProcess.RR</a>
 <div class="block">After reading TheDailyWtf, I always wanted to create a MyBoolean enum like this!</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestAsyncTableGetMultiThreaded.html#org.apache.hadoop.hbase.client">TestAsyncTableGetMultiThreaded</a>
 <div class="block">Will split the table, and move region randomly when testing.</div>
 </td>
 </tr>
-<tr class="altColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestAsyncTableScanMetrics.ScanWithMetrics.html#org.apache.hadoop.hbase.client">TestAsyncTableScanMetrics.ScanWithMetrics</a>&nbsp;</td>
-</tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestBlockEvictionFromClient.CustomInnerRegionObserver.html#org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.CustomInnerRegionObserver</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestAsyncTableScanMetrics.ScanWithMetrics.html#org.apache.hadoop.hbase.client">TestAsyncTableScanMetrics.ScanWithMetrics</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestBlockEvictionFromClient.GetThread.html#org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.GetThread</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestBlockEvictionFromClient.CustomInnerRegionObserver.html#org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.CustomInnerRegionObserver</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestBlockEvictionFromClient.MultiGetThread.html#org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.MultiGetThread</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestBlockEvictionFromClient.GetThread.html#org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.GetThread</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestBlockEvictionFromClient.ScanThread.html#org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.ScanThread</a>&nbsp;</td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestBlockEvictionFromClient.MultiGetThread.html#org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.MultiGetThread</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestCloneSnapshotFromClient.html#org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a>
-<div class="block">Test clone snapshots from the client</div>
-</td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestBlockEvictionFromClient.ScanThread.html#org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.ScanThread</a>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestFromClientSide.html#org.apache.hadoop.hbase.client">TestFromClientSide</a>


[26/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
index f808b16..f359a0c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.RedirectServlet.html
@@ -1715,2239 +1715,2246 @@
 <span class="sourceLineNo">1707</span>        for (RegionPlan plan: plans) {<a name="line.1707"></a>
 <span class="sourceLineNo">1708</span>          LOG.info("balance " + plan);<a name="line.1708"></a>
 <span class="sourceLineNo">1709</span>          //TODO: bulk assign<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>          this.assignmentManager.moveAsync(plan);<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          rpCount++;<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span><a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>            cutoffTime);<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span><a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>            // a security net for now)<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>                + this.maxBlancingTime);<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>            break;<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>          }<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>        }<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>      }<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span><a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>      if (this.cpHost != null) {<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>        try {<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>        } catch (IOException ioe) {<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>          // balancing already succeeded so don't change the result<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>        }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      }<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>    }<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>    // Return true indicating a success.<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>    return true;<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>  }<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span><a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>  @Override<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>  @VisibleForTesting<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>    return this.normalizer;<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>  }<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span><a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>  /**<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>   *<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>   *    is globally disabled)<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>   */<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>  public boolean normalizeRegions() throws IOException {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>    if (!isInitialized()) {<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>      return false;<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>    }<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span><a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      return false;<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>    }<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span><a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>    synchronized (this.normalizer) {<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      // Don't run the normalizer concurrently<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span><a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>      Collections.shuffle(allEnabledTables);<a name="line.1775"></a>
+<span class="sourceLineNo">1710</span>          try {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>            this.assignmentManager.moveAsync(plan);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>          } catch (HBaseIOException hioe) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>            //should ignore failed plans here, avoiding the whole balance plans be aborted<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>            //later calls of balance() can fetch up the failed and skipped plans<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>            LOG.warn("Failed balance plan: {}, just skip it", plan, hioe);<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>          }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>          //rpCount records balance plans processed, does not care if a plan succeeds<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>          rpCount++;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span><a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>            cutoffTime);<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span><a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>            // a security net for now)<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                + this.maxBlancingTime);<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>            break;<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>      }<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span><a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>      if (this.cpHost != null) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>        try {<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>        } catch (IOException ioe) {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>          // balancing already succeeded so don't change the result<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>        }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>      }<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>    // Return true indicating a success.<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>    return true;<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>  }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span><a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>  @Override<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>  @VisibleForTesting<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>    return this.normalizer;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>  }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span><a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>  /**<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>   *<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>   *    is globally disabled)<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>   */<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>  public boolean normalizeRegions() throws IOException {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>    if (!isInitialized()) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>      return false;<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>    }<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span><a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>      return false;<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>    }<a name="line.1775"></a>
 <span class="sourceLineNo">1776</span><a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>      for (TableName table : allEnabledTables) {<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>        if (isInMaintenanceMode()) {<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          return false;<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span><a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        TableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>          LOG.trace("Skipping normalization for {}, as it's either system"<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>              + " table or doesn't have auto normalization turned on", table);<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>          continue;<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>        }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>        if (plans != null) {<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>          for (NormalizationPlan plan : plans) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>              splitPlanCount++;<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>              mergePlanCount++;<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>        }<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>      }<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>    }<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span>    // Return true indicating a success.<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>    return true;<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>  }<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>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>   */<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>  @Override<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>  public String getClientIdAuditPrefix() {<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>    return "Client=" + RpcServer.getRequestUserName().orElse(null)<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        + "/" + RpcServer.getRemoteAddress().orElse(null);<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>  }<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span><a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>  /**<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>   * Switch for the background CatalogJanitor thread.<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>   * if disabled.<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>   */<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>  }<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span><a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>  @Override<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>  public long mergeRegions(<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>      final RegionInfo[] regionsToMerge,<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>      final boolean forcible,<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>      final long nonceGroup,<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>      final long nonce) throws IOException {<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>    checkInitialized();<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>    assert(regionsToMerge.length == 2);<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span><a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>    }<a name="line.1840"></a>
+<span class="sourceLineNo">1777</span>    synchronized (this.normalizer) {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      // Don't run the normalizer concurrently<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span><a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>      Collections.shuffle(allEnabledTables);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span><a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>      for (TableName table : allEnabledTables) {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>        if (isInMaintenanceMode()) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>          return false;<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>        }<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span><a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        TableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          LOG.trace("Skipping normalization for {}, as it's either system"<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>              + " table or doesn't have auto normalization turned on", table);<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>          continue;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>        }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>        if (plans != null) {<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>          for (NormalizationPlan plan : plans) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>              splitPlanCount++;<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>              mergePlanCount++;<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>            }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>          }<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>    }<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    // Return true indicating a success.<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    return true;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>  }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span><a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>  /**<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>   */<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>  @Override<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  public String getClientIdAuditPrefix() {<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>    return "Client=" + RpcServer.getRequestUserName().orElse(null)<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>        + "/" + RpcServer.getRemoteAddress().orElse(null);<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>  /**<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>   * Switch for the background CatalogJanitor thread.<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>   * if disabled.<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>   */<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>  }<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span><a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>  @Override<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  public long mergeRegions(<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>      final RegionInfo[] regionsToMerge,<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      final boolean forcible,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>      final long nonceGroup,<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>      final long nonce) throws IOException {<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>    checkInitialized();<a name="line.1840"></a>
 <span class="sourceLineNo">1841</span><a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>      throw new IOException (<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>    }<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span><a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>    if (RegionInfo.COMPARATOR.compare(regionsToMerge[0], regionsToMerge[1]) == 0) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>      throw new MergeRegionException(<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>    }<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span><a name="line.1852"></a>
-<span class="sourceLineNo">1853</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>      @Override<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>      protected void run() throws IOException {<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span><a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span><a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span>          regionsToMerge, forcible));<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span><a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>      }<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span><a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>      @Override<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>      protected String getDescription() {<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>        return "MergeTableProcedure";<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>      }<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>    });<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>  }<a name="line.1873"></a>
+<span class="sourceLineNo">1842</span>    assert(regionsToMerge.length == 2);<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span><a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>    }<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span><a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>      throw new IOException (<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>    }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>    if (RegionInfo.COMPARATOR.compare(regionsToMerge[0], regionsToMerge[1]) == 0) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>      throw new MergeRegionException(<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>    }<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span><a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>      @Override<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>      protected void run() throws IOException {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span><a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span><a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>          regionsToMerge, forcible));<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span><a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>      }<a name="line.1873"></a>
 <span class="sourceLineNo">1874</span><a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>  @Override<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>  public long splitRegion(final RegionInfo regionInfo, final byte[] splitRow,<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>      final long nonceGroup, final long nonce)<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>  throws IOException {<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>    checkInitialized();<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>      @Override<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>      protected void run() throws IOException {<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>        LOG.info(getClientIdAuditPrefix() + " split " + regionInfo.getRegionNameAsString());<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span><a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>        // Execute the operation asynchronously<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>        submitProcedure(getAssignmentManager().createSplitProcedure(regionInfo, splitRow));<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>      }<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span><a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>      @Override<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>      protected String getDescription() {<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>        return "SplitTableProcedure";<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>      }<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>    });<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>  }<a name="line.1896"></a>
+<span class="sourceLineNo">1875</span>      @Override<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>      protected String getDescription() {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>        return "MergeTableProcedure";<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>      }<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>    });<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>  }<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span><a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>  @Override<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>  public long splitRegion(final RegionInfo regionInfo, final byte[] splitRow,<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>      final long nonceGroup, final long nonce)<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>  throws IOException {<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>    checkInitialized();<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>      @Override<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>      protected void run() throws IOException {<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        LOG.info(getClientIdAuditPrefix() + " split " + regionInfo.getRegionNameAsString());<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span><a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>        // Execute the operation asynchronously<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>        submitProcedure(getAssignmentManager().createSplitProcedure(regionInfo, splitRow));<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>      }<a name="line.1896"></a>
 <span class="sourceLineNo">1897</span><a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>  // Public so can be accessed by tests. Blocks until move is done.<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>  // Replace with an async implementation from which you can get<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>  // a success/failure result.<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>  @VisibleForTesting<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>  public void move(final byte[] encodedRegionName, byte[] destServerName) throws HBaseIOException {<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span><a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>    RegionInfo hri;<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>    if (regionState != null) {<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>      hri = regionState.getRegion();<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>    } else {<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>    }<a name="line.1911"></a>
+<span class="sourceLineNo">1898</span>      @Override<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>      protected String getDescription() {<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>        return "SplitTableProcedure";<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>      }<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>    });<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>  }<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span><a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>  // Public so can be accessed by tests. Blocks until move is done.<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>  // Replace with an async implementation from which you can get<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>  // a success/failure result.<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>  @VisibleForTesting<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>  public void move(final byte[] encodedRegionName, byte[] destServerName) throws HBaseIOException {<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1911"></a>
 <span class="sourceLineNo">1912</span><a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>    ServerName dest;<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>    List&lt;ServerName&gt; exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>        : new ArrayList&lt;&gt;(1);<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>    if (destServerName != null &amp;&amp; exclude.contains(ServerName.valueOf(Bytes.toString(destServerName)))) {<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>      LOG.info(<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>          Bytes.toString(encodedRegionName) + " can not move to " + Bytes.toString(destServerName)<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>              + " because the server is in exclude list");<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      destServerName = null;<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>    }<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>        "choosing a server at random");<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>      exclude.add(regionState.getServerName());<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(exclude);<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>      if (dest == null) {<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>        return;<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>      }<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>    } else {<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1934"></a>
+<span class="sourceLineNo">1913</span>    RegionInfo hri;<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>    if (regionState != null) {<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>      hri = regionState.getRegion();<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>    } else {<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>    }<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span><a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>    ServerName dest;<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>    List&lt;ServerName&gt; exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>        : new ArrayList&lt;&gt;(1);<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>    if (destServerName != null &amp;&amp; exclude.contains(ServerName.valueOf(Bytes.toString(destServerName)))) {<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>      LOG.info(<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>          Bytes.toString(encodedRegionName) + " can not move to " + Bytes.toString(destServerName)<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>              + " because the server is in exclude list");<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>      destServerName = null;<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>    }<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>        "choosing a server at random");<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>      exclude.add(regionState.getServerName());<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(exclude);<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1934"></a>
 <span class="sourceLineNo">1935</span>      if (dest == null) {<a name="line.1935"></a>
 <span class="sourceLineNo">1936</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1936"></a>
 <span class="sourceLineNo">1937</span>        return;<a name="line.1937"></a>
 <span class="sourceLineNo">1938</span>      }<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>      // TODO: What is this? I don't get it.<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>        // regions on master.<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>          + " because it should not be on master");<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>        return;<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>      }<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>    }<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span><a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>      return;<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>    }<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span><a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>    // Now we can do the move<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>    assert rp.getDestination() != null: rp.toString() + " " + dest;<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span><a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>    try {<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>      checkInitialized();<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      if (this.cpHost != null) {<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>        this.cpHost.preMove(hri, rp.getSource(), rp.getDestination());<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      }<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>      // Warmup the region on the destination before initiating the move. this call<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>      // closed<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span><a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>      Future&lt;byte []&gt; future = this.assignmentManager.moveAsync(rp);<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>      try {<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>        // Is this going to work? Will we throw exception on error?<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>        // TODO: CompletableFuture rather than this stunted Future.<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>        future.get();<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>      } catch (InterruptedException | ExecutionException e) {<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>        throw new HBaseIOException(e);<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>      }<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>      if (this.cpHost != null) {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>      }<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>    } catch (IOException ioe) {<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      if (ioe instanceof HBaseIOException) {<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>        throw (HBaseIOException)ioe;<a name="line.1985"></a>
+<span class="sourceLineNo">1939</span>    } else {<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>      if (dest == null) {<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>        return;<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>      }<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>      // TODO: What is this? I don't get it.<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>        // regions on master.<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>          + " because it should not be on master");<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>        return;<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>      }<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>    }<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span><a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>      return;<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>    }<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span><a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>    // Now we can do the move<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>    assert rp.getDestination() != null: rp.toString() + " " + dest;<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span><a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>    try {<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>      checkInitialized();<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>      if (this.cpHost != null) {<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>        this.cpHost.preMove(hri, rp.getSource(), rp.getDestination());<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>      }<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>      // Warmup the region on the destination before initiating the move. this call<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>      // closed<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span><a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>      Future&lt;byte []&gt; future = this.assignmentManager.moveAsync(rp);<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>      try {<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>        // Is this going to work? Will we throw exception on error?<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>        // TODO: CompletableFuture rather than this stunted Future.<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>        future.get();<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>      } catch (InterruptedException | ExecutionException e) {<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>        throw new HBaseIOException(e);<a name="line.1985"></a>
 <span class="sourceLineNo">1986</span>      }<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span>      throw new HBaseIOException(ioe);<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span>    }<a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>  }<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span><a name="line.1990"></a>
-<span class="sourceLineNo">1991</span>  @Override<a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>  public long createTable(<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>      final TableDescriptor tableDescriptor,<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>      final byte [][] splitKeys,<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>      final long nonceGroup,<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>      final long nonce) throws IOException {<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>    checkInitialized();<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span><a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>    String namespace = tableDescriptor.getTableName().getNamespaceAsString();<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span><a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, splitKeys);<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    sanityCheckTableDescriptor(tableDescriptor);<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span><a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>      @Override<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>      protected void run() throws IOException {<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>        getMaster().getMasterCoprocessorHost().preCreateTable(tableDescriptor, newRegions);<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span><a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>        LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span><a name="line.2012"></a>
-<span class="sourceLineNo">2013</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>        //<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>        submitProcedure(new CreateTableProcedure(<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>            procedureExecutor.getEnvironment(), tableDescriptor, newRegions, latch));<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>        latch.await();<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span><a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>        getMaster().getMasterCoprocessorHost().postCreateTable(tableDescriptor, newRegions);<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span>      }<a name="line.2024"></a>
-<span class="sourceLineNo">2025</span><a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>      @Override<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>      protected String getDescription() {<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>        return "CreateTableProcedure";<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span>      }<a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>    });<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>  }<a name="line.2031"></a>
+<span class="sourceLineNo">1987</span>      if (this.cpHost != null) {<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>      }<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>    } catch (IOException ioe) {<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>      if (ioe instanceof HBaseIOException) {<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>        throw (HBaseIOException)ioe;<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>      }<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>      throw new HBaseIOException(ioe);<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>    }<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>  }<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span><a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>  @Override<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>  public long createTable(<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>      final TableDescriptor tableDescriptor,<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>      final byte [][] splitKeys,<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>      final long nonceGroup,<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>      final long nonce) throws IOException {<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>    checkInitialized();<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span><a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>    String namespace = tableDescriptor.getTableName().getNamespaceAsString();<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span><a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, splitKeys);<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>    sanityCheckTableDescriptor(tableDescriptor);<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span><a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>      @Override<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>      protected void run() throws IOException {<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>        getMaster().getMasterCoprocessorHost().preCreateTable(tableDescriptor, newRegions);<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span><a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>        LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span><a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>        //<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>        submitProcedure(new CreateTableProcedure(<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>            procedureExecutor.getEnvironment(), tableDescriptor, newRegions, latch));<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>        latch.await();<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span><a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>        getMaster().getMasterCoprocessorHost().postCreateTable(tableDescriptor, newRegions);<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>      }<a name="line.2031"></a>
 <span class="sourceLineNo">2032</span><a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>  @Override<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>  public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException {<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>    if (isStopped()) {<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>      throw new MasterNotRunningException();<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>    }<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span><a name="line.2038"></a>
-<span class="sourceLineNo">2039</span>    TableName tableName = tableDescriptor.getTableName();<a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>    if (!(tableName.isSystemTable())) {<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>      throw new IllegalArgumentException(<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span>        "Only system table creation can use this createSystemTable API");<a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>    }<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span><a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, null);<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span><a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>    LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span><a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>    // to use nonce to detect duplicated RPC call.<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), tableDescriptor, newRegions));<a name="line.2052"></a>
+<span class="sourceLineNo">2033</span>      @Override<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>      protected String getDescription() {<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>        return "CreateTableProcedure";<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>      }<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>    });<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>  }<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span><a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>  @Override<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>  public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException {<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>    if (isStopped()) {<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>      throw new MasterNotRunningException();<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>    }<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span><a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>    TableName tableName = tableDescriptor.getTableName();<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>    if (!(tableName.isSystemTable())) {<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>      throw new IllegalArgumentException(<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>        "Only system table creation can use this createSystemTable API");<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>    }<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span><a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, null);<a name="line.2052"></a>
 <span class="sourceLineNo">2053</span><a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>    return procId;<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span>  }<a name="line.2055"></a>
-<span class="sourceLineNo">2056</span><a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>  /**<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>   * @throws IOException<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>   */<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>  private void sanityCheckTableDescriptor(final TableDescriptor htd) throws IOException {<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>    boolean logWarn = false;<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>      logWarn = true;<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>    }<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span>    String tableVal = htd.getValue(CONF_KEY);<a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>      logWarn = true;<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>    }<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span><a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>    // check max file size<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>    if (maxFileSize &lt; 0) {<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.2077"></a>
+<span class="sourceLineNo">2054</span>    LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span><a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>    // to use nonce to detect duplicated RPC call.<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), tableDescriptor, newRegions));<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span><a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>    return procId;<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>  }<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span><a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>  /**<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>   * @throws IOException<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>   */<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>  private void sanityCheckTableDescriptor(final TableDescriptor htd) throws IOException {<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>    boolean logWarn = false;<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>      logWarn = true;<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>    }<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>    String tableVal = htd.getValue(CONF_KEY);<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>      logWarn = true;<a name="line.2077"></a>
 <span class="sourceLineNo">2078</span>    }<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.2082"></a>
-<span class="sourceLineNo">2083</span>          + "number of regions.";<a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2084"></a>
+<span class="sourceLineNo">2079</span><a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>    // check max file size<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>    if (maxFileSize &lt; 0) {<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.2084"></a>
 <span class="sourceLineNo">2085</span>    }<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span><a name="line.2086"></a>
-<span class="sourceLineNo">2087</span>    // check flush size<a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>    if (flushSize &lt; 0) {<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.2091"></a>
+<span class="sourceLineNo">2086</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>          + "number of regions.";<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2091"></a>
 <span class="sourceLineNo">2092</span>    }<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>          + " very frequent flushing.";<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span>    }<a name="line.2098"></a>
-<span class="sourceLineNo">2099</span><a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>    try {<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>      checkClassLoading(conf, htd);<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>    } catch (Exception ex) {<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.2104"></a>
+<span class="sourceLineNo">2093</span><a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>    // check flush size<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>    if (flushSize &lt; 0) {<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>    }<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>          + " very frequent flushing.";<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2104"></a>
 <span class="sourceLineNo">2105</span>    }<a name="line.2105"></a>
 <span class="sourceLineNo">2106</span><a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>    // check compression can be loaded<a name="line.2107"></a>
+<span class="sourceLineNo">2107</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.2107"></a>
 <span class="sourceLineNo">2108</span>    try {<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>      checkCompression(htd);<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>    } catch (IOException e) {<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2111"></a>
+<span class="sourceLineNo">2109</span>      checkClassLoading(conf, htd);<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>    } catch (Exception ex) {<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.2111"></a>
 <span class="sourceLineNo">2112</span>    }<a name="line.2112"></a>
 <span class="sourceLineNo">2113</span><a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>    // check encryption can be loaded<a name="line.2114"></a>
+<span class="sourceLineNo">2114</span>    // check compression can be loaded<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>    try {<a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>      checkEncryption(conf, htd);<a name="line.2116"></a>
+<span class="sourceLineNo">2116</span>      checkCompression(htd);<a name="line.2116"></a>
 <span class="sourceLineNo">2117</span>    } catch (IOException e) {<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>    }<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>    // Verify compaction policy<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>    try{<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>      checkCompactionPolicy(conf, htd);<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>    } catch(IOException e){<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>    }<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>    // check that we have at least 1 CF<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>      String message = "Table should have at least one column family.";<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>    }<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span><a name="line.2131"></a>
-<span class="sourceLineNo">2132</span>    for (ColumnFamilyDescriptor hcd : htd.getColumnFamilies()) {<a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>      }<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span><a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>      // check blockSize<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>      if (hcd.getBlocksize() &lt; 1024 || hcd.getBlocksize() &gt; 16 * 1024 * 1024) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>        String message = "Block size for column family " + hcd.getNameAsString()<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>            + "  must be between 1K and 16MB.";<a name="line.2141"></a>
+<span class="sourceLineNo">2120</span><a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>    // check encryption can be loaded<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>    try {<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>      checkEncryption(conf, htd);<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>    } catch (IOException e) {<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>    }<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>    // Verify compaction policy<a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>    try{<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>      checkCompactionPolicy(conf, htd);<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>    } catch(IOException e){<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>    }<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>    // check that we have at least 1 CF<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>      String message = "Table should have at least one column family.";<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>    }<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span><a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>    for (ColumnFamilyDescriptor hcd : htd.getColumnFamilies()) {<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.2141"></a>
 <span class="sourceLineNo">2142</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2142"></a>
 <span class="sourceLineNo">2143</span>      }<a name="line.2143"></a>
 <span class="sourceLineNo">2144</span><a name="line.2144"></a>
-<span class="sourceLineNo">2145</span>      // check versions<a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>      if (hcd.getMinVersions() &lt; 0) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>        String message = "Min versions for column family " + hcd.getNameAsString()<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>          + "  must be positive.";<a name="line.2148"></a>
+<span class="sourceLineNo">2145</span>      // check blockSize<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>      if (hcd.getBlocksize() &lt; 1024 || hcd.getBlocksize() &gt; 16 * 1024 * 1024) {<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>        String message = "Block size for column family " + hcd.getNameAsString()<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>            + "  must be between 1K and 16MB.";<a name="line.2148"></a>
 <span class="sourceLineNo">2149</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2149"></a>
 <span class="sourceLineNo">2150</span>      }<a name="line.2150"></a>
-<span class="sourceLineNo">2151</span>      // max versions already being checked<a name="line.2151"></a>
-<span class="sourceLineNo">2152</span><a name="line.2152"></a>
-<span class="sourceLineNo">2153</span>      // HBASE-13776 Setting illegal versions for ColumnFamilyDescriptor<a name="line.2153"></a>
-<span class="sourceLineNo">2154</span>      //  does not throw IllegalArgumentException<a name="line.2154"></a>
-<span class="sourceLineNo">2155</span>      // check minVersions &lt;= maxVerions<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span>      if (hcd.getMinVersions() &gt; hcd.getMaxVersions()) {<a name="line.2156"></a>
-<span class="sourceLineNo">2157</span>        String message = "Min versions for column family " + hcd.getNameAsString()<a name="line.2157"></a>
-<span class="sourceLineNo">2158</span>            + " must be less than the Max versions.";<a name="line.2158"></a>
-<span class="sourceLineNo">2159</span>        warnOrThrowExceptionFor

<TRUNCATED>

[05/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/master/TestMaster.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/master/TestMaster.html b/testdevapidocs/org/apache/hadoop/hbase/master/TestMaster.html
index d83d9d1..04d6e9b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/master/TestMaster.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/master/TestMaster.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var methods = {"i0":9,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":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";
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.68">TestMaster</a>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.69">TestMaster</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -207,18 +207,22 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/TestMaster.html#testMasterOpsWhileSplitting--">testMasterOpsWhileSplitting</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/TestMaster.html#testMasterBlockCache--">testMasterBlockCache</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i5" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/TestMaster.html#testMoveRegionWhenNotInitialized--">testMoveRegionWhenNotInitialized</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/TestMaster.html#testMasterOpsWhileSplitting--">testMasterOpsWhileSplitting</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i6" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/TestMaster.html#testMoveThrowsPleaseHoldException--">testMoveThrowsPleaseHoldException</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/TestMaster.html#testMoveRegionWhenNotInitialized--">testMoveRegionWhenNotInitialized</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i7" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/TestMaster.html#testMoveThrowsPleaseHoldException--">testMoveThrowsPleaseHoldException</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/TestMaster.html#testMoveThrowsUnknownRegionException--">testMoveThrowsUnknownRegionException</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
@@ -249,7 +253,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.71">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.72">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="TEST_UTIL">
@@ -258,7 +262,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.74">TEST_UTIL</a></pre>
+<pre>private static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.75">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="LOG">
@@ -267,7 +271,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.75">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.76">LOG</a></pre>
 </li>
 </ul>
 <a name="TABLENAME">
@@ -276,7 +280,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>TABLENAME</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.76">TABLENAME</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.77">TABLENAME</a></pre>
 </li>
 </ul>
 <a name="FAMILYNAME">
@@ -285,7 +289,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>FAMILYNAME</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.78">FAMILYNAME</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.79">FAMILYNAME</a></pre>
 </li>
 </ul>
 <a name="admin">
@@ -294,7 +298,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>admin</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.79">admin</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Admin <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.80">admin</a></pre>
 </li>
 </ul>
 <a name="name">
@@ -303,7 +307,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>name</h4>
-<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.82">name</a></pre>
+<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.83">name</a></pre>
 </li>
 </ul>
 </li>
@@ -320,7 +324,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestMaster</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.68">TestMaster</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.69">TestMaster</a>()</pre>
 </li>
 </ul>
 </li>
@@ -337,7 +341,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>beforeAllTests</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.85">beforeAllTests</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.86">beforeAllTests</a>()
                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -351,7 +355,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>afterAllTests</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.94">afterAllTests</a>()
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.95">afterAllTests</a>()
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -365,7 +369,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testMasterOpsWhileSplitting</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.100">testMasterOpsWhileSplitting</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.101">testMasterOpsWhileSplitting</a>()
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -379,7 +383,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testMoveRegionWhenNotInitialized</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.142">testMoveRegionWhenNotInitialized</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.143">testMoveRegionWhenNotInitialized</a>()</pre>
 </li>
 </ul>
 <a name="testMoveThrowsUnknownRegionException--">
@@ -388,7 +392,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testMoveThrowsUnknownRegionException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.158">testMoveThrowsUnknownRegionException</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.159">testMoveThrowsUnknownRegionException</a>()
                                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -402,7 +406,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testMoveThrowsPleaseHoldException</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.180">testMoveThrowsPleaseHoldException</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.181">testMoveThrowsPleaseHoldException</a>()
                                        throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -416,7 +420,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testFlushedSequenceIdPersistLoad</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.203">testFlushedSequenceIdPersistLoad</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.204">testFlushedSequenceIdPersistLoad</a>()
                                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -427,10 +431,10 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <a name="testBlockingHbkc1WithLockFile--">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>testBlockingHbkc1WithLockFile</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.231">testBlockingHbkc1WithLockFile</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.232">testBlockingHbkc1WithLockFile</a>()
                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -438,6 +442,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </dl>
 </li>
 </ul>
+<a name="testMasterBlockCache--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testMasterBlockCache</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.269">testMasterBlockCache</a>()</pre>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 3b51276..1b090b8 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -579,15 +579,15 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<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/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/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/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/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/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/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/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/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/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/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/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 3661437..881d221 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -215,8 +215,8 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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>
 <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/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/9c64af45/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 7d922b1..5233633 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -672,11 +672,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/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/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>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMultiLogThreshold.ActionType</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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html b/testdevapidocs/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html
index 9ce2fbe..294f3c7 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#line.147">MobSnapshotTestingUtils.SnapshotMock</a>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#line.152">MobSnapshotTestingUtils.SnapshotMock</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.SnapshotMock.html" title="class in org.apache.hadoop.hbase.snapshot">SnapshotTestingUtils.SnapshotMock</a></pre>
 </li>
 </ul>
@@ -226,7 +226,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTesting
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SnapshotMock</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html#line.148">SnapshotMock</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html#line.153">SnapshotMock</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                     org.apache.hadoop.fs.FileSystem&nbsp;fs,
                     org.apache.hadoop.fs.Path&nbsp;rootDir)</pre>
 </li>
@@ -245,7 +245,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTesting
 <ul class="blockListLast">
 <li class="blockList">
 <h4>createHtd</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.client.TableDescriptor&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html#line.153">createHtd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tableName)</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.client.TableDescriptor&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html#line.158">createHtd</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tableName)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.SnapshotMock.html#createHtd-java.lang.String-">createHtd</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.SnapshotMock.html" title="class in org.apache.hadoop.hbase.snapshot">SnapshotTestingUtils.SnapshotMock</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html b/testdevapidocs/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html
index a2d145c..94b5db4 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9};
+var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -181,7 +181,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </td>
 </tr>
 <tr id="i2" class="altColor">
-<td class="colFirst"><code>private static void</code></td>
+<td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-byte:A:A-int-byte:A...-">createMobTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
               org.apache.hadoop.hbase.TableName&nbsp;tableName,
               byte[][]&nbsp;splitKeys,
@@ -190,6 +190,15 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-byte:A:A-int-java.lang.String-byte:A...-">createMobTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
+              org.apache.hadoop.hbase.TableName&nbsp;tableName,
+              byte[][]&nbsp;splitKeys,
+              int&nbsp;regionReplication,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;cpClassName,
+              byte[]...&nbsp;families)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-int-byte:A...-">createMobTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
               org.apache.hadoop.hbase.TableName&nbsp;tableName,
               int&nbsp;regionReplication,
@@ -197,14 +206,14 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">Create the Mob Table.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#createPreSplitMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-int-byte:A...-">createPreSplitMobTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
                       org.apache.hadoop.hbase.TableName&nbsp;tableName,
                       int&nbsp;nRegions,
                       byte[]...&nbsp;families)</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#verifyMobRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyMobRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
                  org.apache.hadoop.hbase.TableName&nbsp;tableName,
@@ -294,13 +303,34 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createMobTable</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#line.62">createMobTable</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
-                                   org.apache.hadoop.hbase.TableName&nbsp;tableName,
-                                   byte[][]&nbsp;splitKeys,
-                                   int&nbsp;regionReplication,
-                                   byte[]...&nbsp;families)
-                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#line.62">createMobTable</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
+                                  org.apache.hadoop.hbase.TableName&nbsp;tableName,
+                                  byte[][]&nbsp;splitKeys,
+                                  int&nbsp;regionReplication,
+                                  byte[]...&nbsp;families)
+                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-byte:A:A-int-java.lang.String-byte:A...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createMobTable</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#line.68">createMobTable</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
+                                  org.apache.hadoop.hbase.TableName&nbsp;tableName,
+                                  byte[][]&nbsp;splitKeys,
+                                  int&nbsp;regionReplication,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;cpClassName,
+                                  byte[]...&nbsp;families)
+                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
@@ -314,7 +344,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>createMobTable</h4>
-<pre>public static&nbsp;org.apache.hadoop.hbase.client.Table&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#line.90">createMobTable</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
+<pre>public static&nbsp;org.apache.hadoop.hbase.client.Table&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#line.95">createMobTable</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
                                                                   org.apache.hadoop.hbase.TableName&nbsp;tableName,
                                                                   byte[]...&nbsp;families)
                                                            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -337,7 +367,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>countMobRows</h4>
-<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#line.115">countMobRows</a>(org.apache.hadoop.hbase.client.Table&nbsp;table,
+<pre>public static&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#line.120">countMobRows</a>(org.apache.hadoop.hbase.client.Table&nbsp;table,
                                byte[]...&nbsp;families)
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Return the number of rows in the given table.</div>
@@ -353,7 +383,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>verifyMobRowCount</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#line.133">verifyMobRowCount</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#line.138">verifyMobRowCount</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
                                      org.apache.hadoop.hbase.TableName&nbsp;tableName,
                                      long&nbsp;expectedRows)
                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 cb17cac..5ad4f9a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -253,10 +253,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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.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/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.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/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/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 68397c8..4d091e3 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -142,8 +142,8 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/overview-tree.html b/testdevapidocs/overview-tree.html
index 7f1322c..2f2e1e1 100644
--- a/testdevapidocs/overview-tree.html
+++ b/testdevapidocs/overview-tree.html
@@ -761,6 +761,34 @@
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ClassTestFinder.TestFileNameFilter.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">ClassTestFinder.TestFileNameFilter</span></a> (implements org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ClassFinder.FileNameFilter.html" title="interface in org.apache.hadoop.hbase">ClassFinder.FileNameFilter</a>, org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ClassFinder.ResourcePathFilter.html" title="interface in org.apache.hadoop.hbase">ClassFinder.ResourcePathFilter</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientTestBase</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientAfterSplittingRegionTestBase</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestCloneSnapshotFromClientAfterSplittingRegion</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClientAfterSplittingRegion</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestCloneSnapshotFromClientCloneLinksAfterDelete</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientErrorTestBase</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestCloneSnapshotFromClientError</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClientError</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">CloneSnapshotFromClientNormalTestBase</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestCloneSnapshotFromClientNormal</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClientNormal</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
 <li type="circle">org.apache.hadoop.hbase.codec.<a href="org/apache/hadoop/hbase/codec/CodecPerformance.html" title="class in org.apache.hadoop.hbase.codec"><span class="typeNameLink">CodecPerformance</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.coprocessor.protobuf.generated.ColumnAggregationProtos.ColumnAggregationService (implements com.google.protobuf.Service)
 <ul>
@@ -2518,12 +2546,6 @@
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestClientScannerRPCTimeout</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestClientTimeouts.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestClientTimeouts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/TestClockSkewDetection.html" title="class in org.apache.hadoop.hbase.master"><span class="typeNameLink">TestClockSkewDetection</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestCloneSnapshotFromClient</span></a>
-<ul>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestCloneSnapshotFromClientWithRegionReplicas</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClient</span></a></li>
-</ul>
-</li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/TestCloseAnOpeningRegion.html" title="class in org.apache.hadoop.hbase.master"><span class="typeNameLink">TestCloseAnOpeningRegion</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/TestCloseRegionWhileRSCrash.html" title="class in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">TestCloseRegionWhileRSCrash</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TestClusterBootOrder.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">TestClusterBootOrder</span></a></li>
@@ -3086,7 +3108,7 @@
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMinorCompaction.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMinorCompaction</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMinVersions.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMinVersions</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/TestMirroringTableStateManager.html" title="class in org.apache.hadoop.hbase.master"><span class="typeNameLink">TestMirroringTableStateManager</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</span></a> (implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver)</li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</span></a> (implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver)</li>
 <li type="circle">org.apache.hadoop.hbase.mob.compactions.<a href="org/apache/hadoop/hbase/mob/compactions/TestMobCompactor.html" title="class in org.apache.hadoop.hbase.mob.compactions"><span class="typeNameLink">TestMobCompactor</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mob.compactions.<a href="org/apache/hadoop/hbase/mob/compactions/TestMobCompactor.CompactTwoLatestHfilesCopro.html" title="class in org.apache.hadoop.hbase.mob.compactions"><span class="typeNameLink">TestMobCompactor.CompactTwoLatestHfilesCopro</span></a> (implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver)</li>
 <li type="circle">org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/TestMobDataBlockEncoding.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">TestMobDataBlockEncoding</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html
index 5d42ba5..2ec8b17 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html
@@ -28,41 +28,39 @@
 <span class="sourceLineNo">020</span>import static org.junit.Assert.assertTrue;<a name="line.20"></a>
 <span class="sourceLineNo">021</span><a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.util.List;<a name="line.22"></a>
-<span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.testclassification.MiscTests;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.junit.ClassRule;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.junit.Test;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.junit.experimental.categories.Category;<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> * Checks tests are categorized.<a name="line.32"></a>
-<span class="sourceLineNo">033</span> */<a name="line.33"></a>
-<span class="sourceLineNo">034</span>@Category({MiscTests.class, MediumTests.class})<a name="line.34"></a>
-<span class="sourceLineNo">035</span>public class TestCheckTestClasses {<a name="line.35"></a>
-<span class="sourceLineNo">036</span><a name="line.36"></a>
-<span class="sourceLineNo">037</span>  @ClassRule<a name="line.37"></a>
-<span class="sourceLineNo">038</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.38"></a>
-<span class="sourceLineNo">039</span>      HBaseClassTestRule.forClass(TestCheckTestClasses.class);<a name="line.39"></a>
-<span class="sourceLineNo">040</span><a name="line.40"></a>
-<span class="sourceLineNo">041</span>  /**<a name="line.41"></a>
-<span class="sourceLineNo">042</span>   * Throws an assertion if we find a test class without category (small/medium/large/integration).<a name="line.42"></a>
-<span class="sourceLineNo">043</span>   * List all the test classes without category in the assertion message.<a name="line.43"></a>
-<span class="sourceLineNo">044</span>   */<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  @Test<a name="line.45"></a>
-<span class="sourceLineNo">046</span>  public void checkClasses() throws Exception {<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    List&lt;Class&lt;?&gt;&gt; badClasses = new java.util.ArrayList&lt;&gt;();<a name="line.47"></a>
-<span class="sourceLineNo">048</span>    ClassTestFinder classFinder = new ClassTestFinder();<a name="line.48"></a>
-<span class="sourceLineNo">049</span>    for (Class&lt;?&gt; c : classFinder.findClasses(false)) {<a name="line.49"></a>
-<span class="sourceLineNo">050</span>      if (ClassTestFinder.getCategoryAnnotations(c).length == 0) {<a name="line.50"></a>
-<span class="sourceLineNo">051</span>        badClasses.add(c);<a name="line.51"></a>
-<span class="sourceLineNo">052</span>      }<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    }<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    assertTrue("There are " + badClasses.size() + " test classes without category: "<a name="line.54"></a>
-<span class="sourceLineNo">055</span>      + badClasses, badClasses.isEmpty());<a name="line.55"></a>
-<span class="sourceLineNo">056</span>  }<a name="line.56"></a>
-<span class="sourceLineNo">057</span>}<a name="line.57"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.testclassification.MediumTests;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.testclassification.MiscTests;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.junit.ClassRule;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.junit.Test;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.junit.experimental.categories.Category;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>/**<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * Checks tests are categorized.<a name="line.30"></a>
+<span class="sourceLineNo">031</span> */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>@Category({MiscTests.class, MediumTests.class})<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public class TestCheckTestClasses {<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>  @ClassRule<a name="line.35"></a>
+<span class="sourceLineNo">036</span>  public static final HBaseClassTestRule CLASS_RULE =<a name="line.36"></a>
+<span class="sourceLineNo">037</span>      HBaseClassTestRule.forClass(TestCheckTestClasses.class);<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>  /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>   * Throws an assertion if we find a test class without category (small/medium/large/integration).<a name="line.40"></a>
+<span class="sourceLineNo">041</span>   * List all the test classes without category in the assertion message.<a name="line.41"></a>
+<span class="sourceLineNo">042</span>   */<a name="line.42"></a>
+<span class="sourceLineNo">043</span>  @Test<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  public void checkClasses() throws Exception {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    List&lt;Class&lt;?&gt;&gt; badClasses = new java.util.ArrayList&lt;&gt;();<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    ClassTestFinder classFinder = new ClassTestFinder();<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    for (Class&lt;?&gt; c : classFinder.findClasses(false)) {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>      if (ClassTestFinder.getCategoryAnnotations(c).length == 0) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>        badClasses.add(c);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>      }<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    assertTrue("There are " + badClasses.size() + " test classes without category: "<a name="line.52"></a>
+<span class="sourceLineNo">053</span>      + badClasses, badClasses.isEmpty());<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  }<a name="line.54"></a>
+<span class="sourceLineNo">055</span>}<a name="line.55"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html
new file mode 100644
index 0000000..0d3aac6
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import static org.junit.Assert.assertEquals;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import java.util.List;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.TableName;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.master.RegionState;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.master.assignment.RegionStates;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.snapshot.SnapshotTestingUtils;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.util.Bytes;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.Test;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>public class CloneSnapshotFromClientAfterSplittingRegionTestBase<a name="line.31"></a>
+<span class="sourceLineNo">032</span>    extends CloneSnapshotFromClientTestBase {<a name="line.32"></a>
+<span class="sourceLineNo">033</span><a name="line.33"></a>
+<span class="sourceLineNo">034</span>  private void splitRegion(final RegionInfo regionInfo) throws IOException {<a name="line.34"></a>
+<span class="sourceLineNo">035</span>    byte[][] splitPoints = Bytes.split(regionInfo.getStartKey(), regionInfo.getEndKey(), 1);<a name="line.35"></a>
+<span class="sourceLineNo">036</span>    admin.split(regionInfo.getTable(), splitPoints[1]);<a name="line.36"></a>
+<span class="sourceLineNo">037</span>  }<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>  @Test<a name="line.39"></a>
+<span class="sourceLineNo">040</span>  public void testCloneSnapshotAfterSplittingRegion() throws IOException, InterruptedException {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    // Turn off the CatalogJanitor<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    admin.catalogJanitorSwitch(false);<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>    try {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>      List&lt;RegionInfo&gt; regionInfos = admin.getRegions(tableName);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>      RegionReplicaUtil.removeNonDefaultRegions(regionInfos);<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>      // Split the first region<a name="line.48"></a>
+<span class="sourceLineNo">049</span>      splitRegion(regionInfos.get(0));<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>      // Take a snapshot<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      admin.snapshot(snapshotName2, tableName);<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>      // Clone the snapshot to another table<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      TableName clonedTableName =<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        TableName.valueOf(getValidMethodName() + "-" + System.currentTimeMillis());<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      admin.cloneSnapshot(snapshotName2, clonedTableName);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      SnapshotTestingUtils.waitForTableToBeOnline(TEST_UTIL, clonedTableName);<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>      RegionStates regionStates =<a name="line.60"></a>
+<span class="sourceLineNo">061</span>        TEST_UTIL.getHBaseCluster().getMaster().getAssignmentManager().getRegionStates();<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>      // The region count of the cloned table should be the same as the one of the original table<a name="line.63"></a>
+<span class="sourceLineNo">064</span>      int openRegionCountOfOriginalTable =<a name="line.64"></a>
+<span class="sourceLineNo">065</span>        regionStates.getRegionByStateOfTable(tableName).get(RegionState.State.OPEN).size();<a name="line.65"></a>
+<span class="sourceLineNo">066</span>      int openRegionCountOfClonedTable =<a name="line.66"></a>
+<span class="sourceLineNo">067</span>        regionStates.getRegionByStateOfTable(clonedTableName).get(RegionState.State.OPEN).size();<a name="line.67"></a>
+<span class="sourceLineNo">068</span>      assertEquals(openRegionCountOfOriginalTable, openRegionCountOfClonedTable);<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>      int splitRegionCountOfOriginalTable =<a name="line.70"></a>
+<span class="sourceLineNo">071</span>        regionStates.getRegionByStateOfTable(tableName).get(RegionState.State.SPLIT).size();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      int splitRegionCountOfClonedTable =<a name="line.72"></a>
+<span class="sourceLineNo">073</span>        regionStates.getRegionByStateOfTable(clonedTableName).get(RegionState.State.SPLIT).size();<a name="line.73"></a>
+<span class="sourceLineNo">074</span>      assertEquals(splitRegionCountOfOriginalTable, splitRegionCountOfClonedTable);<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>      TEST_UTIL.deleteTable(clonedTableName);<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    } finally {<a name="line.77"></a>
+<span class="sourceLineNo">078</span>      admin.catalogJanitorSwitch(true);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    }<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
+<span class="sourceLineNo">081</span>}<a name="line.81"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html
new file mode 100644
index 0000000..933d853
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.TableName;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.junit.Test;<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>public class CloneSnapshotFromClientCloneLinksAfterDeleteTestBase<a name="line.24"></a>
+<span class="sourceLineNo">025</span>    extends CloneSnapshotFromClientTestBase {<a name="line.25"></a>
+<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>   * Verify that tables created from the snapshot are still alive after source table deletion.<a name="line.28"></a>
+<span class="sourceLineNo">029</span>   */<a name="line.29"></a>
+<span class="sourceLineNo">030</span>  @Test<a name="line.30"></a>
+<span class="sourceLineNo">031</span>  public void testCloneLinksAfterDelete() throws IOException, InterruptedException {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>    // Clone a table from the first snapshot<a name="line.32"></a>
+<span class="sourceLineNo">033</span>    final TableName clonedTableName =<a name="line.33"></a>
+<span class="sourceLineNo">034</span>      TableName.valueOf(getValidMethodName() + "1-" + System.currentTimeMillis());<a name="line.34"></a>
+<span class="sourceLineNo">035</span>    admin.cloneSnapshot(snapshotName0, clonedTableName);<a name="line.35"></a>
+<span class="sourceLineNo">036</span>    verifyRowCount(TEST_UTIL, clonedTableName, snapshot0Rows);<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>    // Take a snapshot of this cloned table.<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    admin.disableTable(clonedTableName);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    admin.snapshot(snapshotName2, clonedTableName);<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>    // Clone the snapshot of the cloned table<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    final TableName clonedTableName2 =<a name="line.43"></a>
+<span class="sourceLineNo">044</span>      TableName.valueOf(getValidMethodName() + "2-" + System.currentTimeMillis());<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    admin.cloneSnapshot(snapshotName2, clonedTableName2);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    verifyRowCount(TEST_UTIL, clonedTableName2, snapshot0Rows);<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    admin.disableTable(clonedTableName2);<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>    // Remove the original table<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    TEST_UTIL.deleteTable(tableName);<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    waitCleanerRun();<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>    // Verify the first cloned table<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    admin.enableTable(clonedTableName);<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    verifyRowCount(TEST_UTIL, clonedTableName, snapshot0Rows);<a name="line.55"></a>
+<span class="sourceLineNo">056</span><a name="line.56"></a>
+<span class="sourceLineNo">057</span>    // Verify the second cloned table<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    admin.enableTable(clonedTableName2);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    verifyRowCount(TEST_UTIL, clonedTableName2, snapshot0Rows);<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    admin.disableTable(clonedTableName2);<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>    // Delete the first cloned table<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    TEST_UTIL.deleteTable(clonedTableName);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    waitCleanerRun();<a name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>    // Verify the second cloned table<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    admin.enableTable(clonedTableName2);<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    verifyRowCount(TEST_UTIL, clonedTableName2, snapshot0Rows);<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>    // Clone a new table from cloned<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    final TableName clonedTableName3 =<a name="line.71"></a>
+<span class="sourceLineNo">072</span>      TableName.valueOf(getValidMethodName() + "3-" + System.currentTimeMillis());<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    admin.cloneSnapshot(snapshotName2, clonedTableName3);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    verifyRowCount(TEST_UTIL, clonedTableName3, snapshot0Rows);<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>    // Delete the cloned tables<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    TEST_UTIL.deleteTable(clonedTableName2);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    TEST_UTIL.deleteTable(clonedTableName3);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    admin.deleteSnapshot(snapshotName2);<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private void waitCleanerRun() throws InterruptedException {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    TEST_UTIL.getMiniHBaseCluster().getMaster().getHFileCleaner().choreForTesting();<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  }<a name="line.84"></a>
+<span class="sourceLineNo">085</span>}<a name="line.85"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html
new file mode 100644
index 0000000..3142f31
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html
@@ -0,0 +1,113 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.client;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import java.io.IOException;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.NamespaceNotFoundException;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.TableName;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.snapshot.SnapshotDoesNotExistException;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.junit.Test;<a name="line.24"></a>
+<span class="sourceLineNo">025</span><a name="line.25"></a>
+<span class="sourceLineNo">026</span>public class CloneSnapshotFromClientErrorTestBase extends CloneSnapshotFromClientTestBase {<a name="line.26"></a>
+<span class="sourceLineNo">027</span><a name="line.27"></a>
+<span class="sourceLineNo">028</span>  @Test(expected = SnapshotDoesNotExistException.class)<a name="line.28"></a>
+<span class="sourceLineNo">029</span>  public void testCloneNonExistentSnapshot() throws IOException, InterruptedException {<a name="line.29"></a>
+<span class="sourceLineNo">030</span>    String snapshotName = "random-snapshot-" + System.currentTimeMillis();<a name="line.30"></a>
+<span class="sourceLineNo">031</span>    final TableName tableName =<a name="line.31"></a>
+<span class="sourceLineNo">032</span>      TableName.valueOf(getValidMethodName() + "-" + System.currentTimeMillis());<a name="line.32"></a>
+<span class="sourceLineNo">033</span>    admin.cloneSnapshot(snapshotName, tableName);<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  }<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  @Test(expected = NamespaceNotFoundException.class)<a name="line.36"></a>
+<span class="sourceLineNo">037</span>  public void testCloneOnMissingNamespace() throws IOException, InterruptedException {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    final TableName clonedTableName = TableName.valueOf("unknownNS:" + getValidMethodName());<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    admin.cloneSnapshot(snapshotName1, clonedTableName);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>  }<a name="line.40"></a>
+<span class="sourceLineNo">041</span>}<a name="line.41"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>


[27/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
index f808b16..f359a0c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.MasterStoppedException.html
@@ -1715,2239 +1715,2246 @@
 <span class="sourceLineNo">1707</span>        for (RegionPlan plan: plans) {<a name="line.1707"></a>
 <span class="sourceLineNo">1708</span>          LOG.info("balance " + plan);<a name="line.1708"></a>
 <span class="sourceLineNo">1709</span>          //TODO: bulk assign<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>          this.assignmentManager.moveAsync(plan);<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          rpCount++;<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span><a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>            cutoffTime);<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span><a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>            // a security net for now)<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>                + this.maxBlancingTime);<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>            break;<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>          }<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>        }<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>      }<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span><a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>      if (this.cpHost != null) {<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>        try {<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>        } catch (IOException ioe) {<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>          // balancing already succeeded so don't change the result<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>        }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      }<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>    }<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>    // Return true indicating a success.<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>    return true;<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>  }<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span><a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>  @Override<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>  @VisibleForTesting<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>    return this.normalizer;<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>  }<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span><a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>  /**<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>   *<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>   *    is globally disabled)<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>   */<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>  public boolean normalizeRegions() throws IOException {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>    if (!isInitialized()) {<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>      return false;<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>    }<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span><a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      return false;<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>    }<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span><a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>    synchronized (this.normalizer) {<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      // Don't run the normalizer concurrently<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span><a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>      Collections.shuffle(allEnabledTables);<a name="line.1775"></a>
+<span class="sourceLineNo">1710</span>          try {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>            this.assignmentManager.moveAsync(plan);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>          } catch (HBaseIOException hioe) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>            //should ignore failed plans here, avoiding the whole balance plans be aborted<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>            //later calls of balance() can fetch up the failed and skipped plans<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>            LOG.warn("Failed balance plan: {}, just skip it", plan, hioe);<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>          }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>          //rpCount records balance plans processed, does not care if a plan succeeds<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>          rpCount++;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span><a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>            cutoffTime);<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span><a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>            // a security net for now)<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                + this.maxBlancingTime);<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>            break;<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>      }<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span><a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>      if (this.cpHost != null) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>        try {<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>        } catch (IOException ioe) {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>          // balancing already succeeded so don't change the result<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>        }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>      }<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>    // Return true indicating a success.<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>    return true;<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>  }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span><a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>  @Override<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>  @VisibleForTesting<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>    return this.normalizer;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>  }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span><a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>  /**<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>   *<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>   *    is globally disabled)<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>   */<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>  public boolean normalizeRegions() throws IOException {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>    if (!isInitialized()) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>      return false;<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>    }<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span><a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>      return false;<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>    }<a name="line.1775"></a>
 <span class="sourceLineNo">1776</span><a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>      for (TableName table : allEnabledTables) {<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>        if (isInMaintenanceMode()) {<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          return false;<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span><a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        TableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>          LOG.trace("Skipping normalization for {}, as it's either system"<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>              + " table or doesn't have auto normalization turned on", table);<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>          continue;<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>        }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>        if (plans != null) {<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>          for (NormalizationPlan plan : plans) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>              splitPlanCount++;<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>              mergePlanCount++;<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>        }<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>      }<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>    }<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span>    // Return true indicating a success.<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>    return true;<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>  }<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>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>   */<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>  @Override<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>  public String getClientIdAuditPrefix() {<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>    return "Client=" + RpcServer.getRequestUserName().orElse(null)<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        + "/" + RpcServer.getRemoteAddress().orElse(null);<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>  }<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span><a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>  /**<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>   * Switch for the background CatalogJanitor thread.<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>   * if disabled.<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>   */<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>  }<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span><a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>  @Override<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>  public long mergeRegions(<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>      final RegionInfo[] regionsToMerge,<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>      final boolean forcible,<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>      final long nonceGroup,<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>      final long nonce) throws IOException {<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>    checkInitialized();<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>    assert(regionsToMerge.length == 2);<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span><a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>    }<a name="line.1840"></a>
+<span class="sourceLineNo">1777</span>    synchronized (this.normalizer) {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      // Don't run the normalizer concurrently<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span><a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>      Collections.shuffle(allEnabledTables);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span><a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>      for (TableName table : allEnabledTables) {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>        if (isInMaintenanceMode()) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>          return false;<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>        }<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span><a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        TableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          LOG.trace("Skipping normalization for {}, as it's either system"<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>              + " table or doesn't have auto normalization turned on", table);<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>          continue;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>        }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>        if (plans != null) {<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>          for (NormalizationPlan plan : plans) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>              splitPlanCount++;<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>              mergePlanCount++;<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>            }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>          }<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>    }<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    // Return true indicating a success.<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    return true;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>  }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span><a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>  /**<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>   */<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>  @Override<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  public String getClientIdAuditPrefix() {<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>    return "Client=" + RpcServer.getRequestUserName().orElse(null)<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>        + "/" + RpcServer.getRemoteAddress().orElse(null);<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>  /**<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>   * Switch for the background CatalogJanitor thread.<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>   * if disabled.<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>   */<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>  }<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span><a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>  @Override<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  public long mergeRegions(<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>      final RegionInfo[] regionsToMerge,<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      final boolean forcible,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>      final long nonceGroup,<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>      final long nonce) throws IOException {<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>    checkInitialized();<a name="line.1840"></a>
 <span class="sourceLineNo">1841</span><a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>      throw new IOException (<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>    }<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span><a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>    if (RegionInfo.COMPARATOR.compare(regionsToMerge[0], regionsToMerge[1]) == 0) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>      throw new MergeRegionException(<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>    }<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span><a name="line.1852"></a>
-<span class="sourceLineNo">1853</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>      @Override<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>      protected void run() throws IOException {<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span><a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span><a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span>          regionsToMerge, forcible));<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span><a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>      }<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span><a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>      @Override<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>      protected String getDescription() {<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>        return "MergeTableProcedure";<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>      }<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>    });<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>  }<a name="line.1873"></a>
+<span class="sourceLineNo">1842</span>    assert(regionsToMerge.length == 2);<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span><a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>    }<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span><a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>      throw new IOException (<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>    }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>    if (RegionInfo.COMPARATOR.compare(regionsToMerge[0], regionsToMerge[1]) == 0) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>      throw new MergeRegionException(<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>    }<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span><a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>      @Override<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>      protected void run() throws IOException {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span><a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span><a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>          regionsToMerge, forcible));<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span><a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>      }<a name="line.1873"></a>
 <span class="sourceLineNo">1874</span><a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>  @Override<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>  public long splitRegion(final RegionInfo regionInfo, final byte[] splitRow,<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>      final long nonceGroup, final long nonce)<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>  throws IOException {<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>    checkInitialized();<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>      @Override<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>      protected void run() throws IOException {<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>        LOG.info(getClientIdAuditPrefix() + " split " + regionInfo.getRegionNameAsString());<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span><a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>        // Execute the operation asynchronously<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>        submitProcedure(getAssignmentManager().createSplitProcedure(regionInfo, splitRow));<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>      }<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span><a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>      @Override<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>      protected String getDescription() {<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>        return "SplitTableProcedure";<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>      }<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>    });<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>  }<a name="line.1896"></a>
+<span class="sourceLineNo">1875</span>      @Override<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>      protected String getDescription() {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>        return "MergeTableProcedure";<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>      }<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>    });<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>  }<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span><a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>  @Override<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>  public long splitRegion(final RegionInfo regionInfo, final byte[] splitRow,<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>      final long nonceGroup, final long nonce)<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>  throws IOException {<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>    checkInitialized();<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>      @Override<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>      protected void run() throws IOException {<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        LOG.info(getClientIdAuditPrefix() + " split " + regionInfo.getRegionNameAsString());<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span><a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>        // Execute the operation asynchronously<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>        submitProcedure(getAssignmentManager().createSplitProcedure(regionInfo, splitRow));<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>      }<a name="line.1896"></a>
 <span class="sourceLineNo">1897</span><a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>  // Public so can be accessed by tests. Blocks until move is done.<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>  // Replace with an async implementation from which you can get<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>  // a success/failure result.<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>  @VisibleForTesting<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>  public void move(final byte[] encodedRegionName, byte[] destServerName) throws HBaseIOException {<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span><a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>    RegionInfo hri;<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>    if (regionState != null) {<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>      hri = regionState.getRegion();<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>    } else {<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>    }<a name="line.1911"></a>
+<span class="sourceLineNo">1898</span>      @Override<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>      protected String getDescription() {<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>        return "SplitTableProcedure";<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>      }<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>    });<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>  }<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span><a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>  // Public so can be accessed by tests. Blocks until move is done.<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>  // Replace with an async implementation from which you can get<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>  // a success/failure result.<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>  @VisibleForTesting<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>  public void move(final byte[] encodedRegionName, byte[] destServerName) throws HBaseIOException {<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1911"></a>
 <span class="sourceLineNo">1912</span><a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>    ServerName dest;<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>    List&lt;ServerName&gt; exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>        : new ArrayList&lt;&gt;(1);<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>    if (destServerName != null &amp;&amp; exclude.contains(ServerName.valueOf(Bytes.toString(destServerName)))) {<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>      LOG.info(<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>          Bytes.toString(encodedRegionName) + " can not move to " + Bytes.toString(destServerName)<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>              + " because the server is in exclude list");<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      destServerName = null;<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>    }<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>        "choosing a server at random");<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>      exclude.add(regionState.getServerName());<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(exclude);<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>      if (dest == null) {<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>        return;<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>      }<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>    } else {<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1934"></a>
+<span class="sourceLineNo">1913</span>    RegionInfo hri;<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>    if (regionState != null) {<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>      hri = regionState.getRegion();<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>    } else {<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>    }<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span><a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>    ServerName dest;<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>    List&lt;ServerName&gt; exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>        : new ArrayList&lt;&gt;(1);<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>    if (destServerName != null &amp;&amp; exclude.contains(ServerName.valueOf(Bytes.toString(destServerName)))) {<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>      LOG.info(<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>          Bytes.toString(encodedRegionName) + " can not move to " + Bytes.toString(destServerName)<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>              + " because the server is in exclude list");<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>      destServerName = null;<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>    }<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>        "choosing a server at random");<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>      exclude.add(regionState.getServerName());<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(exclude);<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1934"></a>
 <span class="sourceLineNo">1935</span>      if (dest == null) {<a name="line.1935"></a>
 <span class="sourceLineNo">1936</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1936"></a>
 <span class="sourceLineNo">1937</span>        return;<a name="line.1937"></a>
 <span class="sourceLineNo">1938</span>      }<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>      // TODO: What is this? I don't get it.<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>        // regions on master.<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>          + " because it should not be on master");<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>        return;<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>      }<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>    }<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span><a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>      return;<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>    }<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span><a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>    // Now we can do the move<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>    assert rp.getDestination() != null: rp.toString() + " " + dest;<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span><a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>    try {<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>      checkInitialized();<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      if (this.cpHost != null) {<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>        this.cpHost.preMove(hri, rp.getSource(), rp.getDestination());<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      }<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>      // Warmup the region on the destination before initiating the move. this call<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>      // closed<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span><a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>      Future&lt;byte []&gt; future = this.assignmentManager.moveAsync(rp);<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>      try {<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>        // Is this going to work? Will we throw exception on error?<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>        // TODO: CompletableFuture rather than this stunted Future.<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>        future.get();<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>      } catch (InterruptedException | ExecutionException e) {<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>        throw new HBaseIOException(e);<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>      }<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>      if (this.cpHost != null) {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>      }<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>    } catch (IOException ioe) {<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      if (ioe instanceof HBaseIOException) {<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>        throw (HBaseIOException)ioe;<a name="line.1985"></a>
+<span class="sourceLineNo">1939</span>    } else {<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>      if (dest == null) {<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>        return;<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>      }<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>      // TODO: What is this? I don't get it.<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>        // regions on master.<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>          + " because it should not be on master");<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>        return;<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>      }<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>    }<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span><a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>      return;<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>    }<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span><a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>    // Now we can do the move<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>    assert rp.getDestination() != null: rp.toString() + " " + dest;<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span><a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>    try {<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>      checkInitialized();<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>      if (this.cpHost != null) {<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>        this.cpHost.preMove(hri, rp.getSource(), rp.getDestination());<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>      }<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>      // Warmup the region on the destination before initiating the move. this call<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>      // closed<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span><a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>      Future&lt;byte []&gt; future = this.assignmentManager.moveAsync(rp);<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>      try {<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>        // Is this going to work? Will we throw exception on error?<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>        // TODO: CompletableFuture rather than this stunted Future.<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>        future.get();<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>      } catch (InterruptedException | ExecutionException e) {<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>        throw new HBaseIOException(e);<a name="line.1985"></a>
 <span class="sourceLineNo">1986</span>      }<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span>      throw new HBaseIOException(ioe);<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span>    }<a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>  }<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span><a name="line.1990"></a>
-<span class="sourceLineNo">1991</span>  @Override<a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>  public long createTable(<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>      final TableDescriptor tableDescriptor,<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>      final byte [][] splitKeys,<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>      final long nonceGroup,<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>      final long nonce) throws IOException {<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>    checkInitialized();<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span><a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>    String namespace = tableDescriptor.getTableName().getNamespaceAsString();<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span><a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, splitKeys);<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    sanityCheckTableDescriptor(tableDescriptor);<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span><a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>      @Override<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>      protected void run() throws IOException {<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>        getMaster().getMasterCoprocessorHost().preCreateTable(tableDescriptor, newRegions);<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span><a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>        LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span><a name="line.2012"></a>
-<span class="sourceLineNo">2013</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>        //<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>        submitProcedure(new CreateTableProcedure(<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>            procedureExecutor.getEnvironment(), tableDescriptor, newRegions, latch));<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>        latch.await();<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span><a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>        getMaster().getMasterCoprocessorHost().postCreateTable(tableDescriptor, newRegions);<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span>      }<a name="line.2024"></a>
-<span class="sourceLineNo">2025</span><a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>      @Override<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>      protected String getDescription() {<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>        return "CreateTableProcedure";<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span>      }<a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>    });<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>  }<a name="line.2031"></a>
+<span class="sourceLineNo">1987</span>      if (this.cpHost != null) {<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>      }<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>    } catch (IOException ioe) {<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>      if (ioe instanceof HBaseIOException) {<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>        throw (HBaseIOException)ioe;<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>      }<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>      throw new HBaseIOException(ioe);<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>    }<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>  }<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span><a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>  @Override<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>  public long createTable(<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>      final TableDescriptor tableDescriptor,<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>      final byte [][] splitKeys,<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>      final long nonceGroup,<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>      final long nonce) throws IOException {<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>    checkInitialized();<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span><a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>    String namespace = tableDescriptor.getTableName().getNamespaceAsString();<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span><a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, splitKeys);<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>    sanityCheckTableDescriptor(tableDescriptor);<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span><a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>      @Override<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>      protected void run() throws IOException {<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>        getMaster().getMasterCoprocessorHost().preCreateTable(tableDescriptor, newRegions);<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span><a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>        LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span><a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>        //<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>        submitProcedure(new CreateTableProcedure(<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>            procedureExecutor.getEnvironment(), tableDescriptor, newRegions, latch));<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>        latch.await();<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span><a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>        getMaster().getMasterCoprocessorHost().postCreateTable(tableDescriptor, newRegions);<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>      }<a name="line.2031"></a>
 <span class="sourceLineNo">2032</span><a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>  @Override<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>  public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException {<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>    if (isStopped()) {<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>      throw new MasterNotRunningException();<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>    }<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span><a name="line.2038"></a>
-<span class="sourceLineNo">2039</span>    TableName tableName = tableDescriptor.getTableName();<a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>    if (!(tableName.isSystemTable())) {<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>      throw new IllegalArgumentException(<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span>        "Only system table creation can use this createSystemTable API");<a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>    }<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span><a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, null);<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span><a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>    LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span><a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>    // to use nonce to detect duplicated RPC call.<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), tableDescriptor, newRegions));<a name="line.2052"></a>
+<span class="sourceLineNo">2033</span>      @Override<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>      protected String getDescription() {<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>        return "CreateTableProcedure";<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>      }<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>    });<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>  }<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span><a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>  @Override<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>  public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException {<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>    if (isStopped()) {<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>      throw new MasterNotRunningException();<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>    }<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span><a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>    TableName tableName = tableDescriptor.getTableName();<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>    if (!(tableName.isSystemTable())) {<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>      throw new IllegalArgumentException(<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>        "Only system table creation can use this createSystemTable API");<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>    }<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span><a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, null);<a name="line.2052"></a>
 <span class="sourceLineNo">2053</span><a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>    return procId;<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span>  }<a name="line.2055"></a>
-<span class="sourceLineNo">2056</span><a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>  /**<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>   * @throws IOException<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>   */<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>  private void sanityCheckTableDescriptor(final TableDescriptor htd) throws IOException {<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>    boolean logWarn = false;<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>      logWarn = true;<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>    }<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span>    String tableVal = htd.getValue(CONF_KEY);<a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>      logWarn = true;<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>    }<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span><a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>    // check max file size<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>    if (maxFileSize &lt; 0) {<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.2077"></a>
+<span class="sourceLineNo">2054</span>    LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span><a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>    // to use nonce to detect duplicated RPC call.<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), tableDescriptor, newRegions));<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span><a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>    return procId;<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>  }<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span><a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>  /**<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>   * @throws IOException<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>   */<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>  private void sanityCheckTableDescriptor(final TableDescriptor htd) throws IOException {<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>    boolean logWarn = false;<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>      logWarn = true;<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>    }<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>    String tableVal = htd.getValue(CONF_KEY);<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>      logWarn = true;<a name="line.2077"></a>
 <span class="sourceLineNo">2078</span>    }<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.2082"></a>
-<span class="sourceLineNo">2083</span>          + "number of regions.";<a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2084"></a>
+<span class="sourceLineNo">2079</span><a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>    // check max file size<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>    if (maxFileSize &lt; 0) {<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.2084"></a>
 <span class="sourceLineNo">2085</span>    }<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span><a name="line.2086"></a>
-<span class="sourceLineNo">2087</span>    // check flush size<a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>    if (flushSize &lt; 0) {<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.2091"></a>
+<span class="sourceLineNo">2086</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>          + "number of regions.";<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2091"></a>
 <span class="sourceLineNo">2092</span>    }<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>          + " very frequent flushing.";<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span>    }<a name="line.2098"></a>
-<span class="sourceLineNo">2099</span><a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>    try {<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>      checkClassLoading(conf, htd);<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>    } catch (Exception ex) {<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.2104"></a>
+<span class="sourceLineNo">2093</span><a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>    // check flush size<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>    if (flushSize &lt; 0) {<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>    }<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>          + " very frequent flushing.";<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2104"></a>
 <span class="sourceLineNo">2105</span>    }<a name="line.2105"></a>
 <span class="sourceLineNo">2106</span><a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>    // check compression can be loaded<a name="line.2107"></a>
+<span class="sourceLineNo">2107</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.2107"></a>
 <span class="sourceLineNo">2108</span>    try {<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>      checkCompression(htd);<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>    } catch (IOException e) {<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2111"></a>
+<span class="sourceLineNo">2109</span>      checkClassLoading(conf, htd);<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>    } catch (Exception ex) {<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.2111"></a>
 <span class="sourceLineNo">2112</span>    }<a name="line.2112"></a>
 <span class="sourceLineNo">2113</span><a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>    // check encryption can be loaded<a name="line.2114"></a>
+<span class="sourceLineNo">2114</span>    // check compression can be loaded<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>    try {<a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>      checkEncryption(conf, htd);<a name="line.2116"></a>
+<span class="sourceLineNo">2116</span>      checkCompression(htd);<a name="line.2116"></a>
 <span class="sourceLineNo">2117</span>    } catch (IOException e) {<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>    }<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>    // Verify compaction policy<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>    try{<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>      checkCompactionPolicy(conf, htd);<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>    } catch(IOException e){<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>    }<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>    // check that we have at least 1 CF<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>      String message = "Table should have at least one column family.";<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>    }<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span><a name="line.2131"></a>
-<span class="sourceLineNo">2132</span>    for (ColumnFamilyDescriptor hcd : htd.getColumnFamilies()) {<a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>      }<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span><a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>      // check blockSize<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>      if (hcd.getBlocksize() &lt; 1024 || hcd.getBlocksize() &gt; 16 * 1024 * 1024) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>        String message = "Block size for column family " + hcd.getNameAsString()<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>            + "  must be between 1K and 16MB.";<a name="line.2141"></a>
+<span class="sourceLineNo">2120</span><a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>    // check encryption can be loaded<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>    try {<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>      checkEncryption(conf, htd);<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>    } catch (IOException e) {<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>    }<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>    // Verify compaction policy<a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>    try{<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>      checkCompactionPolicy(conf, htd);<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>    } catch(IOException e){<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>    }<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>    // check that we have at least 1 CF<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>      String message = "Table should have at least one column family.";<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>    }<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span><a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>    for (ColumnFamilyDescriptor hcd : htd.getColumnFamilies()) {<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.2141"></a>
 <span class="sourceLineNo">2142</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2142"></a>
 <span class="sourceLineNo">2143</span>      }<a name="line.2143"></a>
 <span class="sourceLineNo">2144</span><a name="line.2144"></a>
-<span class="sourceLineNo">2145</span>      // check versions<a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>      if (hcd.getMinVersions() &lt; 0) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>        String message = "Min versions for column family " + hcd.getNameAsString()<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>          + "  must be positive.";<a name="line.2148"></a>
+<span class="sourceLineNo">2145</span>      // check blockSize<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>      if (hcd.getBlocksize() &lt; 1024 || hcd.getBlocksize() &gt; 16 * 1024 * 1024) {<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>        String message = "Block size for column family " + hcd.getNameAsString()<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>            + "  must be between 1K and 16MB.";<a name="line.2148"></a>
 <span class="sourceLineNo">2149</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2149"></a>
 <span class="sourceLineNo">2150</span>      }<a name="line.2150"></a>
-<span class="sourceLineNo">2151</span>      // max versions already being checked<a name="line.2151"></a>
-<span class="sourceLineNo">2152</span><a name="line.2152"></a>
-<span class="sourceLineNo">2153</span>      // HBASE-13776 Setting illegal versions for ColumnFamilyDescriptor<a name="line.2153"></a>
-<span class="sourceLineNo">2154</span>      //  does not throw IllegalArgumentException<a name="line.2154"></a>
-<span class="sourceLineNo">2155</span>      // check minVersions &lt;= maxVerions<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span>      if (hcd.getMinVersions() &gt; hcd.getMaxVersions()) {<a name="line.2156"></a>
-<span class="sourceLineNo">2157</span>        String message = "Min versions for column family " + hcd.getNameAsString()<a name="line.2157"></a>
-<span class="sourceLineNo">2158</span>            + " must be less than the Max versions.";<a name="line.2158"></a>
-<span class="sourceLineNo">2159</s

<TRUNCATED>

[33/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 a26a606..faac8b0 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -348,10 +348,10 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/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/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/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/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 f76d995..bdaad9c 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -215,8 +215,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/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/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/org/apache/hadoop/hbase/mob/MobCacheConfig.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mob/MobCacheConfig.html b/devapidocs/org/apache/hadoop/hbase/mob/MobCacheConfig.html
index 7fec611..83b0eb9 100644
--- a/devapidocs/org/apache/hadoop/hbase/mob/MobCacheConfig.html
+++ b/devapidocs/org/apache/hadoop/hbase/mob/MobCacheConfig.html
@@ -165,6 +165,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.htm
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html#MobCacheConfig-org.apache.hadoop.conf.Configuration-">MobCacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html#MobCacheConfig-org.apache.hadoop.conf.Configuration-boolean-">MobCacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+              boolean&nbsp;needBlockCache)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/mob/MobCacheConfig.html#MobCacheConfig-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hbase.client.ColumnFamilyDescriptor-">MobCacheConfig</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
               <a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a>&nbsp;family)</code>&nbsp;</td>
 </tr>
@@ -254,12 +258,22 @@ extends <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.htm
 <a name="MobCacheConfig-org.apache.hadoop.conf.Configuration-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>MobCacheConfig</h4>
 <pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.40">MobCacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
+<a name="MobCacheConfig-org.apache.hadoop.conf.Configuration-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MobCacheConfig</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.45">MobCacheConfig</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+                      boolean&nbsp;needBlockCache)</pre>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ============ METHOD DETAIL ========== -->
@@ -274,7 +288,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>instantiateMobFileCache</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.50">instantiateMobFileCache</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.55">instantiateMobFileCache</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block">Instantiates the MobFileCache.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -290,7 +304,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getMobFileCache</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.61">getMobFileCache</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.66">getMobFileCache</a>()</pre>
 <div class="block">Gets the MobFileCache.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
index 7b435d2..4b549da 100644
--- a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
@@ -127,8 +127,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.State.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">MonitoredTask.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">TaskMonitor.TaskFilter.TaskType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.State.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">MonitoredTask.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 101e439..a1570a0 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -437,19 +437,19 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/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/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/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 fc48127..90f221c 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -216,11 +216,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
+<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/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 d273a37..97a5b78 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -229,13 +229,13 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" 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/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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/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/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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/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/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/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/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 1bf7981..2ab8ea8 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.1696">HRegionServer.CompactionChecker</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1699">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.1697">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.1700">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.1698">majorCompactPriority</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1701">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.1699">DEFAULT_PRIORITY</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1702">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.1702">iteration</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1705">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.1704">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.1707">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.1718">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1721">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/9c64af45/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 062b8f1..52d173c 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.3411">HRegionServer.MovedRegionInfo</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3414">HRegionServer.MovedRegionInfo</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -218,7 +218,7 @@ extends <a href="https://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.3412">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.3415">serverName</a></pre>
 </li>
 </ul>
 <a name="seqNum">
@@ -227,7 +227,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>seqNum</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3413">seqNum</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3416">seqNum</a></pre>
 </li>
 </ul>
 <a name="ts">
@@ -236,7 +236,7 @@ extends <a href="https://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.3414">ts</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3417">ts</a></pre>
 </li>
 </ul>
 </li>
@@ -253,7 +253,7 @@ extends <a href="https://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.3416">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.3419">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="https://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.3422">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.3425">getServerName</a>()</pre>
 </li>
 </ul>
 <a name="getSeqNum--">
@@ -280,7 +280,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3426">getSeqNum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3429">getSeqNum</a>()</pre>
 </li>
 </ul>
 <a name="getMoveTime--">
@@ -289,7 +289,7 @@ extends <a href="https://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.3430">getMoveTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3433">getMoveTime</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 90fa8d3..f6dd311 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.3498">HRegionServer.MovedRegionsCleaner</a>
+<pre>protected static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3501">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.3499">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.3502">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.3500">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.3503">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.3502">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.3505">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.3510">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.3513">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.3521">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3524">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.3526">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3529">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
 <div class="block"><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.3531">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3534">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/9c64af45/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 f6a4f61..56ce2e2 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.1758">HRegionServer.PeriodicMemStoreFlusher</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1761">HRegionServer.PeriodicMemStoreFlusher</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></pre>
 </li>
 </ul>
@@ -232,7 +232,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.1759">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.1762">server</a></pre>
 </li>
 </ul>
 <a name="RANGE_OF_DELAY">
@@ -241,7 +241,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.1760">RANGE_OF_DELAY</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1763">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>
@@ -254,7 +254,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <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.1761">MIN_DELAY_TIME</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1764">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>
@@ -267,7 +267,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>rangeOfDelay</h4>
-<pre>final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1763">rangeOfDelay</a></pre>
+<pre>final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1766">rangeOfDelay</a></pre>
 </li>
 </ul>
 </li>
@@ -284,7 +284,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.1764">PeriodicMemStoreFlusher</a>(int&nbsp;cacheFlushInterval,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1767">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>
@@ -302,7 +302,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.1773">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1776">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>


[10/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html
deleted file mode 100644
index 61187ab..0000000
--- a/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html
+++ /dev/null
@@ -1,491 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<!-- NewPage -->
-<html lang="en">
-<head>
-<!-- Generated by javadoc -->
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>TestMobCloneSnapshotFromClient (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
-<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
-<script type="text/javascript" src="../../../../../script.js"></script>
-</head>
-<body>
-<script type="text/javascript"><!--
-    try {
-        if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TestMobCloneSnapshotFromClient (Apache HBase 3.0.0-SNAPSHOT Test API)";
-        }
-    }
-    catch(err) {
-    }
-//-->
-var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10,"i5":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";
-var tableTab = "tableTab";
-var activeTableTab = "activeTableTab";
-</script>
-<noscript>
-<div>JavaScript is disabled on your browser.</div>
-</noscript>
-<!-- ========= START OF TOP NAVBAR ======= -->
-<div class="topNav"><a name="navbar.top">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.top.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestMobCloneSnapshotFromClient.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMetricsConnection.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" target="_top">Frames</a></li>
-<li><a href="TestMobCloneSnapshotFromClient.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_top");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.top">
-<!--   -->
-</a></div>
-<!-- ========= END OF TOP NAVBAR ========= -->
-<!-- ======== START OF CLASS DATA ======== -->
-<div class="header">
-<div class="subTitle">org.apache.hadoop.hbase.client</div>
-<h2 title="Class TestMobCloneSnapshotFromClient" class="title">Class TestMobCloneSnapshotFromClient</h2>
-</div>
-<div class="contentContainer">
-<ul class="inheritance">
-<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
-<li>
-<ul class="inheritance">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.TestCloneSnapshotFromClient</a></li>
-<li>
-<ul class="inheritance">
-<li>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-<div class="description">
-<ul class="blockList">
-<li class="blockList">
-<hr>
-<br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#line.54">TestMobCloneSnapshotFromClient</a>
-extends <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></pre>
-<div class="block">Test clone snapshots from the client</div>
-</li>
-</ul>
-</div>
-<div class="summary">
-<ul class="blockList">
-<li class="blockList">
-<!-- ======== NESTED CLASS SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="nested.class.summary">
-<!--   -->
-</a>
-<h3>Nested Class Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
-<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Class and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>static class&nbsp;</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</a></span></code>
-<div class="block">This coprocessor is used to delay the flush.</div>
-</td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- =========== FIELD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.summary">
-<!--   -->
-</a>
-<h3>Field Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
-<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>private static boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#delayFlush">delayFlush</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>org.junit.rules.TestName</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#name">name</a></span></code>&nbsp;</td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.TestCloneSnapshotFromClient">
-<!--   -->
-</a>
-<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hba
 se/client/TestCloneSnapshotFromClient.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#TEST_UTIL">TEST_UTIL</a></code></li>
-</ul>
-</li>
-</ul>
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.summary">
-<!--   -->
-</a>
-<h3>Constructor Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
-<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colOne" scope="col">Constructor and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#TestMobCloneSnapshotFromClient--">TestMobCloneSnapshotFromClient</a></span>()</code>&nbsp;</td>
-</tr>
-</table>
-</li>
-</ul>
-<!-- ========== METHOD SUMMARY =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.summary">
-<!--   -->
-</a>
-<h3>Method Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Method and Description</th>
-</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/TestMobCloneSnapshotFromClient.html#createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-byte:A:A-int-byte:A...-">createMobTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
-              org.apache.hadoop.hbase.TableName&nbsp;tableName,
-              byte[][]&nbsp;splitKeys,
-              int&nbsp;regionReplication,
-              byte[]...&nbsp;families)</code>&nbsp;</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#createTableAndSnapshots--">createTableAndSnapshots</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i2" class="altColor">
-<td class="colFirst"><code>static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i3" class="rowColor">
-<td class="colFirst"><code>protected static void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#setupConfiguration--">setupConfiguration</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i4" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#testCloneLinksAfterDelete--">testCloneLinksAfterDelete</a></span>()</code>
-<div class="block">Verify that tables created from the snapshot are still alive after source table deletion.</div>
-</td>
-</tr>
-<tr id="i5" class="rowColor">
-<td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
-              org.apache.hadoop.hbase.TableName&nbsp;tableName,
-              long&nbsp;expectedRows)</code>&nbsp;</td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.TestCloneSnapshotFromClient">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></h3>
-<code><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#getNumReplicas--">getNumReplicas</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#splitRegion-org.apache.hadoop.hbase.client.RegionInfo-">splitRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneNonExistentSnapshot--">testCloneNonExistentSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneOnMissingNamespace--">testCloneOnMissingNamespace</a>, <a href="../../../../../org/apache/hadoop/
 hbase/client/TestCloneSnapshotFromClient.html#testCloneSnapshot--">testCloneSnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneSnapshotAfterSplittingRegion--">testCloneSnapshotAfterSplittingRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneSnapshotCrossNamespace--">testCloneSnapshotCrossNamespace</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#verifyReplicasCameOnline-org.apache.hadoop.hbase.TableName-">verifyReplicasCameOnline</a></code></li>
-</ul>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
-<!--   -->
-</a>
-<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-<div class="details">
-<ul class="blockList">
-<li class="blockList">
-<!-- ============ FIELD DETAIL =========== -->
-<ul class="blockList">
-<li class="blockList"><a name="field.detail">
-<!--   -->
-</a>
-<h3>Field Detail</h3>
-<a name="CLASS_RULE">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#line.57">CLASS_RULE</a></pre>
-</li>
-</ul>
-<a name="delayFlush">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>delayFlush</h4>
-<pre>private static&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#line.60">delayFlush</a></pre>
-</li>
-</ul>
-<a name="name">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>name</h4>
-<pre>public&nbsp;org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#line.63">name</a></pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
-<!--   -->
-</a>
-<h3>Constructor Detail</h3>
-<a name="TestMobCloneSnapshotFromClient--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>TestMobCloneSnapshotFromClient</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#line.54">TestMobCloneSnapshotFromClient</a>()</pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ============ METHOD DETAIL ========== -->
-<ul class="blockList">
-<li class="blockList"><a name="method.detail">
-<!--   -->
-</a>
-<h3>Method Detail</h3>
-<a name="setupConfiguration--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setupConfiguration</h4>
-<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#line.65">setupConfiguration</a>()</pre>
-</li>
-</ul>
-<a name="setUpBeforeClass--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>setUpBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#line.72">setUpBeforeClass</a>()
-                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="createTableAndSnapshots--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>createTableAndSnapshots</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#line.78">createTableAndSnapshots</a>()
-                                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#createTableAndSnapshots--">createTableAndSnapshots</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></code></dd>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="testCloneLinksAfterDelete--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>testCloneLinksAfterDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#line.118">testCloneLinksAfterDelete</a>()
-                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
-<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneLinksAfterDelete--">TestCloneSnapshotFromClient</a></code></span></div>
-<div class="block">Verify that tables created from the snapshot are still alive after source table deletion.</div>
-<dl>
-<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#testCloneLinksAfterDelete--">testCloneLinksAfterDelete</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></code></dd>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>verifyRowCount</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#line.140">verifyRowCount</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
-                              org.apache.hadoop.hbase.TableName&nbsp;tableName,
-                              long&nbsp;expectedRows)
-                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
-<dl>
-<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
-<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></code></dd>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-</dl>
-</li>
-</ul>
-<a name="createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-byte:A:A-int-byte:A...-">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>createMobTable</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#line.171">createMobTable</a>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
-                            org.apache.hadoop.hbase.TableName&nbsp;tableName,
-                            byte[][]&nbsp;splitKeys,
-                            int&nbsp;regionReplication,
-                            byte[]...&nbsp;families)
-                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
-                            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
-<dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
-<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
-</dl>
-</li>
-</ul>
-</li>
-</ul>
-</li>
-</ul>
-</div>
-</div>
-<!-- ========= END OF CLASS DATA ========= -->
-<!-- ======= START OF BOTTOM NAVBAR ====== -->
-<div class="bottomNav"><a name="navbar.bottom">
-<!--   -->
-</a>
-<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
-<a name="navbar.bottom.firstrow">
-<!--   -->
-</a>
-<ul class="navList" title="Navigation">
-<li><a href="../../../../../overview-summary.html">Overview</a></li>
-<li><a href="package-summary.html">Package</a></li>
-<li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestMobCloneSnapshotFromClient.html">Use</a></li>
-<li><a href="package-tree.html">Tree</a></li>
-<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
-<li><a href="../../../../../index-all.html">Index</a></li>
-<li><a href="../../../../../help-doc.html">Help</a></li>
-</ul>
-</div>
-<div class="subNav">
-<ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMetricsConnection.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
-</ul>
-<ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" target="_top">Frames</a></li>
-<li><a href="TestMobCloneSnapshotFromClient.html" target="_top">No&nbsp;Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
-</ul>
-<div>
-<script type="text/javascript"><!--
-  allClassesLink = document.getElementById("allclasses_navbar_bottom");
-  if(window==top) {
-    allClassesLink.style.display = "block";
-  }
-  else {
-    allClassesLink.style.display = "none";
-  }
-  //-->
-</script>
-</div>
-<div>
-<ul class="subNavList">
-<li>Summary:&nbsp;</li>
-<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
-<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
-<li><a href="#method.detail">Method</a></li>
-</ul>
-</div>
-<a name="skip.navbar.bottom">
-<!--   -->
-</a></div>
-<!-- ======== END OF BOTTOM NAVBAR ======= -->
-<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html
new file mode 100644
index 0000000..748d979
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html
@@ -0,0 +1,416 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestMobCloneSnapshotFromClientAfterSplittingRegion (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestMobCloneSnapshotFromClientAfterSplittingRegion (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":9,"i4":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestMobCloneSnapshotFromClientAfterSplittingRegion.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMetricsConnection.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class TestMobCloneSnapshotFromClientAfterSplittingRegion" class="title">Class TestMobCloneSnapshotFromClientAfterSplittingRegion</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientAfterSplittingRegionTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientAfterSplittingRegion</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#line.33">TestMobCloneSnapshotFromClientAfterSplittingRegion</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#TestMobCloneSnapshotFromClientAfterSplittingRegion--">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a></span>(org.apache.hadoop.hbase.client.Table&nbsp;table)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#createTable--">createTable</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#numRowsToLoad--">numRowsToLoad</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#setUpBeforeClass--">setUpBeforeClass</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#setupConfiguration--">setupConfiguration</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientAfterSplittingRegionTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#testCloneSnapshotAfterSplittingRegion--">testCloneSnapshotAfterSplittingRegion</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="CLASS_RULE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLASS_RULE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#line.37">CLASS_RULE</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestMobCloneSnapshotFromClientAfterSplittingRegion--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestMobCloneSnapshotFromClientAfterSplittingRegion</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#line.33">TestMobCloneSnapshotFromClientAfterSplittingRegion</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setupConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setupConfiguration</h4>
+<pre>protected static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#line.40">setupConfiguration</a>()</pre>
+</li>
+</ul>
+<a name="setUpBeforeClass--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUpBeforeClass</h4>
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#line.47">setUpBeforeClass</a>()
+                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="createTable--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTable</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#line.53">createTable</a>()
+                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                           <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="numRowsToLoad--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>numRowsToLoad</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#line.59">numRowsToLoad</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="countRows-org.apache.hadoop.hbase.client.Table-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>countRows</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#line.64">countRows</a>(org.apache.hadoop.hbase.client.Table&nbsp;table)
+                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestMobCloneSnapshotFromClientAfterSplittingRegion.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMetricsConnection.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientAfterSplittingRegion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html
new file mode 100644
index 0000000..62c6c02
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html
@@ -0,0 +1,366 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor" class="title">Class TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd>org.apache.hadoop.hbase.Coprocessor, org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#line.56">TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</a>
+extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements org.apache.hadoop.hbase.coprocessor.RegionCoprocessor, org.apache.hadoop.hbase.coprocessor.RegionObserver</pre>
+<div class="block">This coprocessor is used to delay the flush.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.Coprocessor">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.hadoop.hbase.Coprocessor</h3>
+<code>org.apache.hadoop.hbase.Coprocessor.State</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.RegionObserver</h3>
+<code>org.apache.hadoop.hbase.coprocessor.RegionObserver.MutationType</code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.Coprocessor">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.hadoop.hbase.Coprocessor</h3>
+<code>PRIORITY_HIGHEST, PRIORITY_LOWEST, PRIORITY_SYSTEM, PRIORITY_USER, VERSION</code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html#DelayFlushCoprocessor--">DelayFlushCoprocessor</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.RegionObserver&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html#getRegionObserver--">getRegionObserver</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html#preFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">preFlush</a></span>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
+        org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker&nbsp;tracker)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionCoprocessor">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.RegionCoprocessor</h3>
+<code>getBulkLoadObserver, getEndpointObserver</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.Coprocessor">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.Coprocessor</h3>
+<code>getServices, start, stop</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.coprocessor.RegionObserver">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.coprocessor.RegionObserver</h3>
+<code>postAppend, postBatchMutate, postBatchMutateIndispensably, postBulkLoadHFile, postCheckAndDelete, postCheckAndPut, postClose, postCloseRegionOperation, postCommitStoreFile, postCompact, postCompactSelection, postDelete, postExists, postFlush, postFlush, postGetOp, postIncrement, postInstantiateDeleteTracker, postMemStoreCompaction, postMutationBeforeWAL, postOpen, postPut, postReplayWALs, postScannerClose, postScannerFilterRow, postScannerNext, postScannerOpen, postStartRegionOperation, postStoreFileReaderOpen, postWALRestore, preAppend, preAppendAfterRowLock, preBatchMutate, preBulkLoadHFile, preCheckAndDelete, preCheckAndDeleteAfterRowLock, preCheckAndPut, preCheckAndPutAfterRowLock, preClose, preCommitStoreFile, preCompact, preCompactScannerOpen, preCompactSelection, preDelete, preExists, preFlush, preFlushScannerOpen, preGetOp, preIncrement, preIncrementAfterRowLock, preMemStoreCompaction, preMemStoreCompactionCompact, preMemStoreCompactionCompactScannerOpen, preOpen, preP
 repareTimeStampForDeleteVersion, prePut, preReplayWALs, preScannerClose, preScannerNext, preScannerOpen, preStoreFileReaderOpen, preStoreScannerOpen, preWALRestore</code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelayFlushCoprocessor--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelayFlushCoprocessor</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html#line.56">DelayFlushCoprocessor</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getRegionObserver--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRegionObserver</h4>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;org.apache.hadoop.hbase.coprocessor.RegionObserver&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html#line.59">getRegionObserver</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>getRegionObserver</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.coprocessor.RegionCoprocessor</code></dd>
+</dl>
+</li>
+</ul>
+<a name="preFlush-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>preFlush</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html#line.64">preFlush</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext&lt;org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment&gt;&nbsp;e,
+                     org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker&nbsp;tracker)
+              throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>preFlush</code>&nbsp;in interface&nbsp;<code>org.apache.hadoop.hbase.coprocessor.RegionObserver</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" target="_top">Frames</a></li>
+<li><a href="TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>


[25/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
index f808b16..f359a0c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html
@@ -1715,2239 +1715,2246 @@
 <span class="sourceLineNo">1707</span>        for (RegionPlan plan: plans) {<a name="line.1707"></a>
 <span class="sourceLineNo">1708</span>          LOG.info("balance " + plan);<a name="line.1708"></a>
 <span class="sourceLineNo">1709</span>          //TODO: bulk assign<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>          this.assignmentManager.moveAsync(plan);<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          rpCount++;<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span><a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>            cutoffTime);<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span><a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>            // a security net for now)<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>                + this.maxBlancingTime);<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>            break;<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>          }<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>        }<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>      }<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span><a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>      if (this.cpHost != null) {<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>        try {<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>        } catch (IOException ioe) {<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>          // balancing already succeeded so don't change the result<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>        }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      }<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>    }<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>    // Return true indicating a success.<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>    return true;<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>  }<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span><a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>  @Override<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>  @VisibleForTesting<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>    return this.normalizer;<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>  }<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span><a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>  /**<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>   *<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>   *    is globally disabled)<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>   */<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>  public boolean normalizeRegions() throws IOException {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>    if (!isInitialized()) {<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>      return false;<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>    }<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span><a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      return false;<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>    }<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span><a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>    synchronized (this.normalizer) {<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      // Don't run the normalizer concurrently<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span><a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>      Collections.shuffle(allEnabledTables);<a name="line.1775"></a>
+<span class="sourceLineNo">1710</span>          try {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>            this.assignmentManager.moveAsync(plan);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>          } catch (HBaseIOException hioe) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>            //should ignore failed plans here, avoiding the whole balance plans be aborted<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>            //later calls of balance() can fetch up the failed and skipped plans<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>            LOG.warn("Failed balance plan: {}, just skip it", plan, hioe);<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>          }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>          //rpCount records balance plans processed, does not care if a plan succeeds<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>          rpCount++;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span><a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>            cutoffTime);<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span><a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>            // a security net for now)<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                + this.maxBlancingTime);<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>            break;<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>      }<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span><a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>      if (this.cpHost != null) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>        try {<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>        } catch (IOException ioe) {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>          // balancing already succeeded so don't change the result<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>        }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>      }<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>    // Return true indicating a success.<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>    return true;<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>  }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span><a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>  @Override<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>  @VisibleForTesting<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>    return this.normalizer;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>  }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span><a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>  /**<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>   *<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>   *    is globally disabled)<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>   */<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>  public boolean normalizeRegions() throws IOException {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>    if (!isInitialized()) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>      return false;<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>    }<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span><a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>      return false;<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>    }<a name="line.1775"></a>
 <span class="sourceLineNo">1776</span><a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>      for (TableName table : allEnabledTables) {<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>        if (isInMaintenanceMode()) {<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          return false;<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span><a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        TableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>          LOG.trace("Skipping normalization for {}, as it's either system"<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>              + " table or doesn't have auto normalization turned on", table);<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>          continue;<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>        }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>        if (plans != null) {<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>          for (NormalizationPlan plan : plans) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>              splitPlanCount++;<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>              mergePlanCount++;<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>        }<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>      }<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>    }<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span>    // Return true indicating a success.<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>    return true;<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>  }<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>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>   */<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>  @Override<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>  public String getClientIdAuditPrefix() {<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>    return "Client=" + RpcServer.getRequestUserName().orElse(null)<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        + "/" + RpcServer.getRemoteAddress().orElse(null);<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>  }<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span><a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>  /**<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>   * Switch for the background CatalogJanitor thread.<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>   * if disabled.<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>   */<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>  }<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span><a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>  @Override<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>  public long mergeRegions(<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>      final RegionInfo[] regionsToMerge,<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>      final boolean forcible,<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>      final long nonceGroup,<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>      final long nonce) throws IOException {<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>    checkInitialized();<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>    assert(regionsToMerge.length == 2);<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span><a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>    }<a name="line.1840"></a>
+<span class="sourceLineNo">1777</span>    synchronized (this.normalizer) {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      // Don't run the normalizer concurrently<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span><a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>      Collections.shuffle(allEnabledTables);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span><a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>      for (TableName table : allEnabledTables) {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>        if (isInMaintenanceMode()) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>          return false;<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>        }<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span><a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        TableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          LOG.trace("Skipping normalization for {}, as it's either system"<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>              + " table or doesn't have auto normalization turned on", table);<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>          continue;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>        }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>        if (plans != null) {<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>          for (NormalizationPlan plan : plans) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>              splitPlanCount++;<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>              mergePlanCount++;<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>            }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>          }<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>    }<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    // Return true indicating a success.<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    return true;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>  }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span><a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>  /**<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>   */<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>  @Override<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  public String getClientIdAuditPrefix() {<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>    return "Client=" + RpcServer.getRequestUserName().orElse(null)<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>        + "/" + RpcServer.getRemoteAddress().orElse(null);<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>  /**<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>   * Switch for the background CatalogJanitor thread.<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>   * if disabled.<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>   */<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>  }<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span><a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>  @Override<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  public long mergeRegions(<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>      final RegionInfo[] regionsToMerge,<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      final boolean forcible,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>      final long nonceGroup,<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>      final long nonce) throws IOException {<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>    checkInitialized();<a name="line.1840"></a>
 <span class="sourceLineNo">1841</span><a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>      throw new IOException (<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>    }<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span><a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>    if (RegionInfo.COMPARATOR.compare(regionsToMerge[0], regionsToMerge[1]) == 0) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>      throw new MergeRegionException(<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>    }<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span><a name="line.1852"></a>
-<span class="sourceLineNo">1853</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>      @Override<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>      protected void run() throws IOException {<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span><a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span><a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span>          regionsToMerge, forcible));<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span><a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>      }<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span><a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>      @Override<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>      protected String getDescription() {<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>        return "MergeTableProcedure";<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>      }<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>    });<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>  }<a name="line.1873"></a>
+<span class="sourceLineNo">1842</span>    assert(regionsToMerge.length == 2);<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span><a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>    }<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span><a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>      throw new IOException (<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>    }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>    if (RegionInfo.COMPARATOR.compare(regionsToMerge[0], regionsToMerge[1]) == 0) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>      throw new MergeRegionException(<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>    }<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span><a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>      @Override<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>      protected void run() throws IOException {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span><a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span><a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>          regionsToMerge, forcible));<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span><a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>      }<a name="line.1873"></a>
 <span class="sourceLineNo">1874</span><a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>  @Override<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>  public long splitRegion(final RegionInfo regionInfo, final byte[] splitRow,<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>      final long nonceGroup, final long nonce)<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>  throws IOException {<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>    checkInitialized();<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>      @Override<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>      protected void run() throws IOException {<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>        LOG.info(getClientIdAuditPrefix() + " split " + regionInfo.getRegionNameAsString());<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span><a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>        // Execute the operation asynchronously<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>        submitProcedure(getAssignmentManager().createSplitProcedure(regionInfo, splitRow));<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>      }<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span><a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>      @Override<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>      protected String getDescription() {<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>        return "SplitTableProcedure";<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>      }<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>    });<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>  }<a name="line.1896"></a>
+<span class="sourceLineNo">1875</span>      @Override<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>      protected String getDescription() {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>        return "MergeTableProcedure";<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>      }<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>    });<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>  }<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span><a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>  @Override<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>  public long splitRegion(final RegionInfo regionInfo, final byte[] splitRow,<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>      final long nonceGroup, final long nonce)<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>  throws IOException {<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>    checkInitialized();<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>      @Override<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>      protected void run() throws IOException {<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        LOG.info(getClientIdAuditPrefix() + " split " + regionInfo.getRegionNameAsString());<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span><a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>        // Execute the operation asynchronously<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>        submitProcedure(getAssignmentManager().createSplitProcedure(regionInfo, splitRow));<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>      }<a name="line.1896"></a>
 <span class="sourceLineNo">1897</span><a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>  // Public so can be accessed by tests. Blocks until move is done.<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>  // Replace with an async implementation from which you can get<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>  // a success/failure result.<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>  @VisibleForTesting<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>  public void move(final byte[] encodedRegionName, byte[] destServerName) throws HBaseIOException {<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span><a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>    RegionInfo hri;<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>    if (regionState != null) {<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>      hri = regionState.getRegion();<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>    } else {<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>    }<a name="line.1911"></a>
+<span class="sourceLineNo">1898</span>      @Override<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>      protected String getDescription() {<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>        return "SplitTableProcedure";<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>      }<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>    });<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>  }<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span><a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>  // Public so can be accessed by tests. Blocks until move is done.<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>  // Replace with an async implementation from which you can get<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>  // a success/failure result.<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>  @VisibleForTesting<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>  public void move(final byte[] encodedRegionName, byte[] destServerName) throws HBaseIOException {<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1911"></a>
 <span class="sourceLineNo">1912</span><a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>    ServerName dest;<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>    List&lt;ServerName&gt; exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>        : new ArrayList&lt;&gt;(1);<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>    if (destServerName != null &amp;&amp; exclude.contains(ServerName.valueOf(Bytes.toString(destServerName)))) {<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>      LOG.info(<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>          Bytes.toString(encodedRegionName) + " can not move to " + Bytes.toString(destServerName)<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>              + " because the server is in exclude list");<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      destServerName = null;<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>    }<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>        "choosing a server at random");<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>      exclude.add(regionState.getServerName());<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(exclude);<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>      if (dest == null) {<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>        return;<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>      }<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>    } else {<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1934"></a>
+<span class="sourceLineNo">1913</span>    RegionInfo hri;<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>    if (regionState != null) {<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>      hri = regionState.getRegion();<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>    } else {<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>    }<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span><a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>    ServerName dest;<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>    List&lt;ServerName&gt; exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>        : new ArrayList&lt;&gt;(1);<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>    if (destServerName != null &amp;&amp; exclude.contains(ServerName.valueOf(Bytes.toString(destServerName)))) {<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>      LOG.info(<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>          Bytes.toString(encodedRegionName) + " can not move to " + Bytes.toString(destServerName)<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>              + " because the server is in exclude list");<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>      destServerName = null;<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>    }<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>        "choosing a server at random");<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>      exclude.add(regionState.getServerName());<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(exclude);<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1934"></a>
 <span class="sourceLineNo">1935</span>      if (dest == null) {<a name="line.1935"></a>
 <span class="sourceLineNo">1936</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1936"></a>
 <span class="sourceLineNo">1937</span>        return;<a name="line.1937"></a>
 <span class="sourceLineNo">1938</span>      }<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>      // TODO: What is this? I don't get it.<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>        // regions on master.<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>          + " because it should not be on master");<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>        return;<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>      }<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>    }<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span><a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>      return;<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>    }<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span><a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>    // Now we can do the move<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>    assert rp.getDestination() != null: rp.toString() + " " + dest;<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span><a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>    try {<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>      checkInitialized();<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      if (this.cpHost != null) {<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>        this.cpHost.preMove(hri, rp.getSource(), rp.getDestination());<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      }<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>      // Warmup the region on the destination before initiating the move. this call<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>      // closed<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span><a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>      Future&lt;byte []&gt; future = this.assignmentManager.moveAsync(rp);<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>      try {<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>        // Is this going to work? Will we throw exception on error?<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>        // TODO: CompletableFuture rather than this stunted Future.<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>        future.get();<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>      } catch (InterruptedException | ExecutionException e) {<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>        throw new HBaseIOException(e);<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>      }<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>      if (this.cpHost != null) {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>      }<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>    } catch (IOException ioe) {<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      if (ioe instanceof HBaseIOException) {<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>        throw (HBaseIOException)ioe;<a name="line.1985"></a>
+<span class="sourceLineNo">1939</span>    } else {<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>      if (dest == null) {<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>        return;<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>      }<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>      // TODO: What is this? I don't get it.<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>        // regions on master.<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>          + " because it should not be on master");<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>        return;<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>      }<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>    }<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span><a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>      return;<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>    }<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span><a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>    // Now we can do the move<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>    assert rp.getDestination() != null: rp.toString() + " " + dest;<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span><a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>    try {<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>      checkInitialized();<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>      if (this.cpHost != null) {<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>        this.cpHost.preMove(hri, rp.getSource(), rp.getDestination());<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>      }<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>      // Warmup the region on the destination before initiating the move. this call<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>      // closed<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span><a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>      Future&lt;byte []&gt; future = this.assignmentManager.moveAsync(rp);<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>      try {<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>        // Is this going to work? Will we throw exception on error?<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>        // TODO: CompletableFuture rather than this stunted Future.<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>        future.get();<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>      } catch (InterruptedException | ExecutionException e) {<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>        throw new HBaseIOException(e);<a name="line.1985"></a>
 <span class="sourceLineNo">1986</span>      }<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span>      throw new HBaseIOException(ioe);<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span>    }<a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>  }<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span><a name="line.1990"></a>
-<span class="sourceLineNo">1991</span>  @Override<a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>  public long createTable(<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>      final TableDescriptor tableDescriptor,<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>      final byte [][] splitKeys,<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>      final long nonceGroup,<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>      final long nonce) throws IOException {<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>    checkInitialized();<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span><a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>    String namespace = tableDescriptor.getTableName().getNamespaceAsString();<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span><a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, splitKeys);<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    sanityCheckTableDescriptor(tableDescriptor);<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span><a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>      @Override<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>      protected void run() throws IOException {<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>        getMaster().getMasterCoprocessorHost().preCreateTable(tableDescriptor, newRegions);<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span><a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>        LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span><a name="line.2012"></a>
-<span class="sourceLineNo">2013</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>        //<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>        submitProcedure(new CreateTableProcedure(<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>            procedureExecutor.getEnvironment(), tableDescriptor, newRegions, latch));<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>        latch.await();<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span><a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>        getMaster().getMasterCoprocessorHost().postCreateTable(tableDescriptor, newRegions);<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span>      }<a name="line.2024"></a>
-<span class="sourceLineNo">2025</span><a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>      @Override<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>      protected String getDescription() {<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>        return "CreateTableProcedure";<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span>      }<a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>    });<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>  }<a name="line.2031"></a>
+<span class="sourceLineNo">1987</span>      if (this.cpHost != null) {<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>      }<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>    } catch (IOException ioe) {<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>      if (ioe instanceof HBaseIOException) {<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>        throw (HBaseIOException)ioe;<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>      }<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>      throw new HBaseIOException(ioe);<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>    }<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>  }<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span><a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>  @Override<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>  public long createTable(<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>      final TableDescriptor tableDescriptor,<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>      final byte [][] splitKeys,<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>      final long nonceGroup,<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>      final long nonce) throws IOException {<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>    checkInitialized();<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span><a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>    String namespace = tableDescriptor.getTableName().getNamespaceAsString();<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span><a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, splitKeys);<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>    sanityCheckTableDescriptor(tableDescriptor);<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span><a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>      @Override<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>      protected void run() throws IOException {<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>        getMaster().getMasterCoprocessorHost().preCreateTable(tableDescriptor, newRegions);<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span><a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>        LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span><a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>        //<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>        submitProcedure(new CreateTableProcedure(<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>            procedureExecutor.getEnvironment(), tableDescriptor, newRegions, latch));<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>        latch.await();<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span><a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>        getMaster().getMasterCoprocessorHost().postCreateTable(tableDescriptor, newRegions);<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>      }<a name="line.2031"></a>
 <span class="sourceLineNo">2032</span><a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>  @Override<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>  public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException {<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>    if (isStopped()) {<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>      throw new MasterNotRunningException();<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>    }<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span><a name="line.2038"></a>
-<span class="sourceLineNo">2039</span>    TableName tableName = tableDescriptor.getTableName();<a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>    if (!(tableName.isSystemTable())) {<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>      throw new IllegalArgumentException(<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span>        "Only system table creation can use this createSystemTable API");<a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>    }<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span><a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, null);<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span><a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>    LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span><a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>    // to use nonce to detect duplicated RPC call.<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), tableDescriptor, newRegions));<a name="line.2052"></a>
+<span class="sourceLineNo">2033</span>      @Override<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>      protected String getDescription() {<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>        return "CreateTableProcedure";<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>      }<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>    });<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>  }<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span><a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>  @Override<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>  public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException {<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>    if (isStopped()) {<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>      throw new MasterNotRunningException();<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>    }<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span><a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>    TableName tableName = tableDescriptor.getTableName();<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>    if (!(tableName.isSystemTable())) {<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>      throw new IllegalArgumentException(<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>        "Only system table creation can use this createSystemTable API");<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>    }<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span><a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, null);<a name="line.2052"></a>
 <span class="sourceLineNo">2053</span><a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>    return procId;<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span>  }<a name="line.2055"></a>
-<span class="sourceLineNo">2056</span><a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>  /**<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>   * @throws IOException<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>   */<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>  private void sanityCheckTableDescriptor(final TableDescriptor htd) throws IOException {<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>    boolean logWarn = false;<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>      logWarn = true;<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>    }<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span>    String tableVal = htd.getValue(CONF_KEY);<a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>      logWarn = true;<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>    }<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span><a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>    // check max file size<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>    if (maxFileSize &lt; 0) {<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.2077"></a>
+<span class="sourceLineNo">2054</span>    LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span><a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>    // to use nonce to detect duplicated RPC call.<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), tableDescriptor, newRegions));<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span><a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>    return procId;<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>  }<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span><a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>  /**<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>   * @throws IOException<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>   */<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>  private void sanityCheckTableDescriptor(final TableDescriptor htd) throws IOException {<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>    boolean logWarn = false;<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>      logWarn = true;<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>    }<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>    String tableVal = htd.getValue(CONF_KEY);<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>      logWarn = true;<a name="line.2077"></a>
 <span class="sourceLineNo">2078</span>    }<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.2082"></a>
-<span class="sourceLineNo">2083</span>          + "number of regions.";<a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2084"></a>
+<span class="sourceLineNo">2079</span><a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>    // check max file size<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>    if (maxFileSize &lt; 0) {<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.2084"></a>
 <span class="sourceLineNo">2085</span>    }<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span><a name="line.2086"></a>
-<span class="sourceLineNo">2087</span>    // check flush size<a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>    if (flushSize &lt; 0) {<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.2091"></a>
+<span class="sourceLineNo">2086</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>          + "number of regions.";<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2091"></a>
 <span class="sourceLineNo">2092</span>    }<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>          + " very frequent flushing.";<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span>    }<a name="line.2098"></a>
-<span class="sourceLineNo">2099</span><a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>    try {<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>      checkClassLoading(conf, htd);<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>    } catch (Exception ex) {<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.2104"></a>
+<span class="sourceLineNo">2093</span><a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>    // check flush size<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>    if (flushSize &lt; 0) {<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>    }<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>          + " very frequent flushing.";<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2104"></a>
 <span class="sourceLineNo">2105</span>    }<a name="line.2105"></a>
 <span class="sourceLineNo">2106</span><a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>    // check compression can be loaded<a name="line.2107"></a>
+<span class="sourceLineNo">2107</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.2107"></a>
 <span class="sourceLineNo">2108</span>    try {<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>      checkCompression(htd);<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>    } catch (IOException e) {<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2111"></a>
+<span class="sourceLineNo">2109</span>      checkClassLoading(conf, htd);<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>    } catch (Exception ex) {<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.2111"></a>
 <span class="sourceLineNo">2112</span>    }<a name="line.2112"></a>
 <span class="sourceLineNo">2113</span><a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>    // check encryption can be loaded<a name="line.2114"></a>
+<span class="sourceLineNo">2114</span>    // check compression can be loaded<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>    try {<a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>      checkEncryption(conf, htd);<a name="line.2116"></a>
+<span class="sourceLineNo">2116</span>      checkCompression(htd);<a name="line.2116"></a>
 <span class="sourceLineNo">2117</span>    } catch (IOException e) {<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>    }<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>    // Verify compaction policy<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>    try{<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>      checkCompactionPolicy(conf, htd);<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>    } catch(IOException e){<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>    }<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>    // check that we have at least 1 CF<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>      String message = "Table should have at least one column family.";<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>    }<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span><a name="line.2131"></a>
-<span class="sourceLineNo">2132</span>    for (ColumnFamilyDescriptor hcd : htd.getColumnFamilies()) {<a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>      }<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span><a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>      // check blockSize<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>      if (hcd.getBlocksize() &lt; 1024 || hcd.getBlocksize() &gt; 16 * 1024 * 1024) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>        String message = "Block size for column family " + hcd.getNameAsString()<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>            + "  must be between 1K and 16MB.";<a name="line.2141"></a>
+<span class="sourceLineNo">2120</span><a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>    // check encryption can be loaded<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>    try {<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>      checkEncryption(conf, htd);<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>    } catch (IOException e) {<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>    }<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>    // Verify compaction policy<a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>    try{<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>      checkCompactionPolicy(conf, htd);<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>    } catch(IOException e){<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>    }<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>    // check that we have at least 1 CF<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>      String message = "Table should have at least one column family.";<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>    }<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span><a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>    for (ColumnFamilyDescriptor hcd : htd.getColumnFamilies()) {<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.2141"></a>
 <span class="sourceLineNo">2142</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2142"></a>
 <span class="sourceLineNo">2143</span>      }<a name="line.2143"></a>
 <span class="sourceLineNo">2144</span><a name="line.2144"></a>
-<span class="sourceLineNo">2145</span>      // check versions<a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>      if (hcd.getMinVersions() &lt; 0) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>        String message = "Min versions for column family " + hcd.getNameAsString()<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>          + "  must be positive.";<a name="line.2148"></a>
+<span class="sourceLineNo">2145</span>      // check blockSize<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>      if (hcd.getBlocksize() &lt; 1024 || hcd.getBlocksize() &gt; 16 * 1024 * 1024) {<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>        String message = "Block size for column family " + hcd.getNameAsString()<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>            + "  must be between 1K and 16MB.";<a name="line.2148"></a>
 <span class="sourceLineNo">2149</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2149"></a>
 <span class="sourceLineNo">2150</span>      }<a name="line.2150"></a>
-<span class="sourceLineNo">2151</span>      // max versions already being checked<a name="line.2151"></a>
-<span class="sourceLineNo">2152</span><a name="line.2152"></a>
-<span class="sourceLineNo">2153</span>      // HBASE-13776 Setting illegal versions for ColumnFamilyDescriptor<a name="line.2153"></a>
-<span class="sourceLineNo">2154</span>      //  does not throw IllegalArgumentException<a name="line.2154"></a>
-<span class="sourceLineNo">2155</span>      // check minVersions &lt;= maxVerions<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span>      if (hcd.getMinVersions() &gt; hcd.getMaxVersions()) {<a name="line.2156"></a>
-<span class="sourceLineNo">2157</span>        String message = "Min versions for column family " + hcd.getNameAsString()<a name="line.2157"></a>
-<span class="sourceLineNo">2158</span>            + " must be less than the Max versions.";<a name="line.2158"></a>
-<span class="sourceLineNo">2159</span> 

<TRUNCATED>

[18/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 cb9d178..90087b4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
@@ -598,3212 +598,3215 @@
 <span class="sourceLineNo">590</span>      Superusers.initialize(conf);<a name="line.590"></a>
 <span class="sourceLineNo">591</span><a name="line.591"></a>
 <span class="sourceLineNo">592</span>      regionServerAccounting = new RegionServerAccounting(conf);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      cacheConfig = new CacheConfig(conf);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      mobCacheConfig = new MobCacheConfig(conf);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
-<span class="sourceLineNo">597</span>        public void uncaughtException(Thread t, Throwable e) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span>          abort("Uncaught exception in executorService thread " + t.getName(), e);<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><a name="line.601"></a>
-<span class="sourceLineNo">602</span>      initializeFileSystem();<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.603"></a>
+<span class="sourceLineNo">593</span>      boolean isMasterNotCarryTable =<a name="line.593"></a>
+<span class="sourceLineNo">594</span>          this instanceof HMaster &amp;&amp; !LoadBalancer.isTablesOnMaster(conf) &amp;&amp; !LoadBalancer<a name="line.594"></a>
+<span class="sourceLineNo">595</span>              .isSystemTablesOnlyOnMaster(conf);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>      cacheConfig = new CacheConfig(conf, !isMasterNotCarryTable);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>      mobCacheConfig = new MobCacheConfig(conf, !isMasterNotCarryTable);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>        @Override<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        public void uncaughtException(Thread t, Throwable e) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>          abort("Uncaught exception in executorService thread " + t.getName(), e);<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      };<a name="line.603"></a>
 <span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>      this.configurationManager = new ConfigurationManager();<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      setupWindows(getConfiguration(), getConfigurationManager());<a name="line.606"></a>
+<span class="sourceLineNo">605</span>      initializeFileSystem();<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.606"></a>
 <span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        // Open connection to zookeeper and set primary watcher<a name="line.610"></a>
-<span class="sourceLineNo">611</span>        zooKeeper = new ZKWatcher(conf, getProcessName() + ":" +<a name="line.611"></a>
-<span class="sourceLineNo">612</span>          rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        // If no master in cluster, skip trying to track one or look for a cluster status.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        if (!this.masterless) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>          this.csm = new ZkCoordinatedStateManager(this);<a name="line.615"></a>
-<span class="sourceLineNo">616</span><a name="line.616"></a>
-<span class="sourceLineNo">617</span>          masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>          masterAddressTracker.start();<a name="line.618"></a>
+<span class="sourceLineNo">608</span>      this.configurationManager = new ConfigurationManager();<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      setupWindows(getConfiguration(), getConfigurationManager());<a name="line.609"></a>
+<span class="sourceLineNo">610</span><a name="line.610"></a>
+<span class="sourceLineNo">611</span>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.611"></a>
+<span class="sourceLineNo">612</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        // Open connection to zookeeper and set primary watcher<a name="line.613"></a>
+<span class="sourceLineNo">614</span>        zooKeeper = new ZKWatcher(conf, getProcessName() + ":" +<a name="line.614"></a>
+<span class="sourceLineNo">615</span>          rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        // If no master in cluster, skip trying to track one or look for a cluster status.<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        if (!this.masterless) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>          this.csm = new ZkCoordinatedStateManager(this);<a name="line.618"></a>
 <span class="sourceLineNo">619</span><a name="line.619"></a>
-<span class="sourceLineNo">620</span>          clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>          clusterStatusTracker.start();<a name="line.621"></a>
-<span class="sourceLineNo">622</span>        } else {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>          masterAddressTracker = null;<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          clusterStatusTracker = null;<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        }<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      } else {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>        zooKeeper = null;<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        masterAddressTracker = null;<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        clusterStatusTracker = null;<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      }<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      this.rpcServices.start(zooKeeper);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      // This violates 'no starting stuff in Constructor' but Master depends on the below chore<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      // and executor being created and takes a different startup route. Lots of overlap between HRS<a name="line.633"></a>
-<span class="sourceLineNo">634</span>      // and M (An M IS A HRS now). Need to refactor so less duplication between M and its super<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      // Master expects Constructor to put up web servers. Ugh.<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      // class HRS. TODO.<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      this.choreService = new ChoreService(getName(), true);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      this.executorService = new ExecutorService(getName());<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      putUpWebUI();<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    } catch (Throwable t) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      // Make sure we log the exception. HRegionServer is often started via reflection and the<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      // cause of failed startup is lost.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>      LOG.error("Failed construction RegionServer", t);<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      throw t;<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  }<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>  // HMaster should override this method to load the specific config for master<a name="line.648"></a>
-<span class="sourceLineNo">649</span>  protected String getUseThisHostnameInstead(Configuration conf) throws IOException {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    String hostname = conf.get(RS_HOSTNAME_KEY);<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    if (conf.getBoolean(RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, false)) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      if (!StringUtils.isBlank(hostname)) {<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        String msg = RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY + " and " + RS_HOSTNAME_KEY +<a name="line.653"></a>
-<span class="sourceLineNo">654</span>          " are mutually exclusive. Do not set " + RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY +<a name="line.654"></a>
-<span class="sourceLineNo">655</span>          " to true while " + RS_HOSTNAME_KEY + " is used";<a name="line.655"></a>
-<span class="sourceLineNo">656</span>        throw new IOException(msg);<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      } else {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>        return rpcServices.isa.getHostName();<a name="line.658"></a>
-<span class="sourceLineNo">659</span>      }<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    } else {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>      return hostname;<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    }<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  }<a name="line.663"></a>
-<span class="sourceLineNo">664</span><a name="line.664"></a>
-<span class="sourceLineNo">665</span>  /**<a name="line.665"></a>
-<span class="sourceLineNo">666</span>   * If running on Windows, do windows-specific setup.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>   */<a name="line.667"></a>
-<span class="sourceLineNo">668</span>  private static void setupWindows(final Configuration conf, ConfigurationManager cm) {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>        @Override<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        public void handle(Signal signal) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>          conf.reloadConfiguration();<a name="line.673"></a>
-<span class="sourceLineNo">674</span>          cm.notifyAllObservers(conf);<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        }<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      });<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    }<a name="line.677"></a>
-<span class="sourceLineNo">678</span>  }<a name="line.678"></a>
-<span class="sourceLineNo">679</span><a name="line.679"></a>
-<span class="sourceLineNo">680</span>  private static NettyEventLoopGroupConfig setupNetty(Configuration conf) {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    // Initialize netty event loop group at start as we may use it for rpc server, rpc client &amp; WAL.<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    NettyEventLoopGroupConfig nelgc =<a name="line.682"></a>
-<span class="sourceLineNo">683</span>      new NettyEventLoopGroupConfig(conf, "RS-EventLoopGroup");<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    NettyRpcClientConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    NettyAsyncFSWALConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    return nelgc;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  }<a name="line.687"></a>
-<span class="sourceLineNo">688</span><a name="line.688"></a>
-<span class="sourceLineNo">689</span>  private void initializeFileSystem() throws IOException {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.694"></a>
-<span class="sourceLineNo">695</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.697"></a>
-<span class="sourceLineNo">698</span>    // (unless all is set to defaults).<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>    return new FSTableDescriptors(this.conf,<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false, getMetaTableObserver());<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 Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return null;<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 login(UserProvider user, String host) throws IOException {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    user.login("hbase.regionserver.keytab.file",<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      "hbase.regionserver.kerberos.principal", host);<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><a name="line.719"></a>
-<span class="sourceLineNo">720</span>  /**<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   * Wait for an active Master.<a name="line.721"></a>
-<span class="sourceLineNo">722</span>   * See override in Master superclass for how it is used.<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   */<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  protected void waitForMasterActive() {}<a name="line.724"></a>
-<span class="sourceLineNo">725</span><a name="line.725"></a>
-<span class="sourceLineNo">726</span>  protected String getProcessName() {<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    return REGIONSERVER;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  }<a name="line.728"></a>
-<span class="sourceLineNo">729</span><a name="line.729"></a>
-<span class="sourceLineNo">730</span>  protected boolean canCreateBaseZNode() {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    return this.masterless;<a name="line.731"></a>
-<span class="sourceLineNo">732</span>  }<a name="line.732"></a>
-<span class="sourceLineNo">733</span><a name="line.733"></a>
-<span class="sourceLineNo">734</span>  protected boolean canUpdateTableDescriptor() {<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    return false;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>  }<a name="line.736"></a>
-<span class="sourceLineNo">737</span><a name="line.737"></a>
-<span class="sourceLineNo">738</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    return new RSRpcServices(this);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  protected void configureInfoServer() {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.744"></a>
-<span class="sourceLineNo">745</span>  }<a name="line.745"></a>
-<span class="sourceLineNo">746</span><a name="line.746"></a>
-<span class="sourceLineNo">747</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    return RSDumpServlet.class;<a name="line.748"></a>
-<span class="sourceLineNo">749</span>  }<a name="line.749"></a>
-<span class="sourceLineNo">750</span><a name="line.750"></a>
-<span class="sourceLineNo">751</span>  @Override<a name="line.751"></a>
-<span class="sourceLineNo">752</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    /*<a name="line.753"></a>
-<span class="sourceLineNo">754</span>     * No stacking of instances is allowed for a single executorService name<a name="line.754"></a>
-<span class="sourceLineNo">755</span>     */<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.756"></a>
-<span class="sourceLineNo">757</span>        instance.getDescriptorForType();<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.758"></a>
-<span class="sourceLineNo">759</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.759"></a>
-<span class="sourceLineNo">760</span>      LOG.error("Coprocessor executorService " + serviceName<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          + " already registered, rejecting request from " + instance);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      return false;<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    }<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    if (LOG.isDebugEnabled()) {<a name="line.766"></a>
-<span class="sourceLineNo">767</span>      LOG.debug("Registered regionserver coprocessor executorService: executorService=" + serviceName);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    }<a name="line.768"></a>
-<span class="sourceLineNo">769</span>    return true;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>  }<a name="line.770"></a>
-<span class="sourceLineNo">771</span><a name="line.771"></a>
-<span class="sourceLineNo">772</span>  /**<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   * the local server; i.e. a short-circuit Connection. Safe to use going to local or remote<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   * server. Create this instance in a method can be intercepted and mocked in tests.<a name="line.775"></a>
-<span class="sourceLineNo">776</span>   * @throws IOException<a name="line.776"></a>
-<span class="sourceLineNo">777</span>   */<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  @VisibleForTesting<a name="line.778"></a>
-<span class="sourceLineNo">779</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    Configuration conf = this.conf;<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    if (conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM) != null) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>      // Use server ZK cluster for server-issued connections, so we clone<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      // the conf and unset the client ZK related properties<a name="line.783"></a>
-<span class="sourceLineNo">784</span>      conf = new Configuration(this.conf);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      conf.unset(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    }<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.788"></a>
-<span class="sourceLineNo">789</span>    // and remote invocations.<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      serverName, rpcServices, rpcServices);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>  }<a name="line.792"></a>
-<span class="sourceLineNo">793</span><a name="line.793"></a>
-<span class="sourceLineNo">794</span>  /**<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   * @param c<a name="line.796"></a>
-<span class="sourceLineNo">797</span>   * @throws IOException<a name="line.797"></a>
-<span class="sourceLineNo">798</span>   */<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    // check to see if the codec list is available:<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.801"></a>
-<span class="sourceLineNo">802</span>    if (codecs == null) return;<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    for (String codec : codecs) {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>        throw new IOException("Compression codec " + codec +<a name="line.805"></a>
-<span class="sourceLineNo">806</span>          " not supported, aborting RS construction");<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      }<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    }<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>  public String getClusterId() {<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    return this.clusterId;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>  }<a name="line.813"></a>
-<span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>  /**<a name="line.815"></a>
-<span class="sourceLineNo">816</span>   * Setup our cluster connection if not already initialized.<a name="line.816"></a>
-<span class="sourceLineNo">817</span>   * @throws IOException<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   */<a name="line.818"></a>
-<span class="sourceLineNo">819</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    if (clusterConnection == null) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>      clusterConnection = createClusterConnection();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      metaTableLocator = new MetaTableLocator();<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>  }<a name="line.824"></a>
-<span class="sourceLineNo">825</span><a name="line.825"></a>
-<span class="sourceLineNo">826</span>  /**<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * All initialization needed before we go register with Master.&lt;br&gt;<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.&lt;br&gt;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * In here we just put up the RpcServer, setup Connection, and ZooKeeper.<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   */<a name="line.830"></a>
-<span class="sourceLineNo">831</span>  private void preRegistrationInitialization() {<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    try {<a name="line.832"></a>
-<span class="sourceLineNo">833</span>      initializeZooKeeper();<a name="line.833"></a>
-<span class="sourceLineNo">834</span>      setupClusterConnection();<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      // Setup RPC client for master communication<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      this.rpcClient = RpcClientFactory.createClient(conf, clusterId, new InetSocketAddress(<a name="line.836"></a>
-<span class="sourceLineNo">837</span>          this.rpcServices.isa.getAddress(), 0), clusterConnection.getConnectionMetrics());<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    } catch (Throwable t) {<a name="line.838"></a>
-<span class="sourceLineNo">839</span>      // Call stop if error or process will stick around for ever since server<a name="line.839"></a>
-<span class="sourceLineNo">840</span>      // puts up non-daemon threads.<a name="line.840"></a>
-<span class="sourceLineNo">841</span>      this.rpcServices.stop();<a name="line.841"></a>
-<span class="sourceLineNo">842</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    }<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Bring up connection to zk ensemble and then wait until a master for this cluster and then after<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * that, wait until cluster 'up' flag has been set. This is the order in which master does things.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * &lt;p&gt;<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * Finally open long-living server short-circuit connection.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    justification="cluster Id znode read would give us correct response")<a name="line.853"></a>
-<span class="sourceLineNo">854</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>    // Nothing to do in here if no Master in the mix.<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    if (this.masterless) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      return;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // block until a master is available.  No point in starting up if no master<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    // running.<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.863"></a>
-<span class="sourceLineNo">864</span><a name="line.864"></a>
-<span class="sourceLineNo">865</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    // when ready.<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.867"></a>
-<span class="sourceLineNo">868</span><a name="line.868"></a>
-<span class="sourceLineNo">869</span>    // If we are HMaster then the cluster id should have already been set.<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    if (clusterId == null) {<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      // Retrieve clusterId<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      // Since cluster status is now up<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      // ID should have already been set by HMaster<a name="line.873"></a>
-<span class="sourceLineNo">874</span>      try {<a name="line.874"></a>
-<span class="sourceLineNo">875</span>        clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        if (clusterId == null) {<a name="line.876"></a>
-<span class="sourceLineNo">877</span>          this.abort("Cluster ID has not been set");<a name="line.877"></a>
-<span class="sourceLineNo">878</span>        }<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        LOG.info("ClusterId : " + clusterId);<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      } catch (KeeperException e) {<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        this.abort("Failed to retrieve Cluster ID", e);<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      }<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    }<a name="line.883"></a>
-<span class="sourceLineNo">884</span><a name="line.884"></a>
-<span class="sourceLineNo">885</span>    waitForMasterActive();<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    if (isStopped() || isAborted()) {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>      return; // No need for further initialization<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>    // watch for snapshots and other procedures<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    try {<a name="line.891"></a>
-<span class="sourceLineNo">892</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.892"></a>
-<span class="sourceLineNo">893</span>      rspmHost.loadProcedures(conf);<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      rspmHost.initialize(this);<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    } catch (KeeperException e) {<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    }<a name="line.897"></a>
-<span class="sourceLineNo">898</span>  }<a name="line.898"></a>
-<span class="sourceLineNo">899</span><a name="line.899"></a>
-<span class="sourceLineNo">900</span>  /**<a name="line.900"></a>
-<span class="sourceLineNo">901</span>   * Utilty method to wait indefinitely on a znode availability while checking<a name="line.901"></a>
-<span class="sourceLineNo">902</span>   * if the region server is shut down<a name="line.902"></a>
-<span class="sourceLineNo">903</span>   * @param tracker znode tracker to use<a name="line.903"></a>
-<span class="sourceLineNo">904</span>   * @throws IOException any IO exception, plus if the RS is stopped<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * @throws InterruptedException<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   */<a name="line.906"></a>
-<span class="sourceLineNo">907</span>  private void blockAndCheckIfStopped(ZKNodeTracker tracker)<a name="line.907"></a>
-<span class="sourceLineNo">908</span>      throws IOException, InterruptedException {<a name="line.908"></a>
-<span class="sourceLineNo">909</span>    while (tracker.blockUntilAvailable(this.msgInterval, false) == null) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>      if (this.stopped) {<a name="line.910"></a>
-<span class="sourceLineNo">911</span>        throw new IOException("Received the shutdown message while waiting.");<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      }<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  }<a name="line.914"></a>
-<span class="sourceLineNo">915</span><a name="line.915"></a>
-<span class="sourceLineNo">916</span>  /**<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @return True if the cluster is up.<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   */<a name="line.918"></a>
-<span class="sourceLineNo">919</span>  @Override<a name="line.919"></a>
-<span class="sourceLineNo">920</span>  public boolean isClusterUp() {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>    return this.masterless ||<a name="line.921"></a>
-<span class="sourceLineNo">922</span>        (this.clusterStatusTracker != null &amp;&amp; this.clusterStatusTracker.isClusterUp());<a name="line.922"></a>
-<span class="sourceLineNo">923</span>  }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>  /**<a name="line.925"></a>
-<span class="sourceLineNo">926</span>   * The HRegionServer sticks in this loop until closed.<a name="line.926"></a>
-<span class="sourceLineNo">927</span>   */<a name="line.927"></a>
-<span class="sourceLineNo">928</span>  @Override<a name="line.928"></a>
-<span class="sourceLineNo">929</span>  public void run() {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    try {<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      // Do pre-registration initializations; zookeeper, lease threads, etc.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      preRegistrationInitialization();<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    } catch (Throwable e) {<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      abort("Fatal exception during initialization", e);<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
-<span class="sourceLineNo">936</span><a name="line.936"></a>
-<span class="sourceLineNo">937</span>    try {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>        ShutdownHook.install(conf, fs, this, Thread.currentThread());<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        // Initialize the RegionServerCoprocessorHost now that our ephemeral<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        // node was created, in case any coprocessors want to use ZooKeeper<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        this.rsHost = new RegionServerCoprocessorHost(this, this.conf);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      }<a name="line.943"></a>
-<span class="sourceLineNo">944</span><a name="line.944"></a>
-<span class="sourceLineNo">945</span>      // Try and register with the Master; tell it we are here.  Break if server is stopped or the<a name="line.945"></a>
-<span class="sourceLineNo">946</span>      // clusterup flag is down or hdfs went wacky. Once registered successfully, go ahead and start<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      // up all Services. Use RetryCounter to get backoff in case Master is struggling to come up.<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      RetryCounterFactory rcf = new RetryCounterFactory(Integer.MAX_VALUE,<a name="line.948"></a>
-<span class="sourceLineNo">949</span>          this.sleeper.getPeriod(), 1000 * 60 * 5);<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      RetryCounter rc = rcf.create();<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      while (keepLooping()) {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>        RegionServerStartupResponse w = reportForDuty();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>        if (w == null) {<a name="line.953"></a>
-<span class="sourceLineNo">954</span>          long sleepTime = rc.getBackoffTimeAndIncrementAttempts();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>          LOG.warn("reportForDuty failed; sleeping {} ms and then retrying.", sleepTime);<a name="line.955"></a>
-<span class="sourceLineNo">956</span>          this.sleeper.sleep(sleepTime);<a name="line.956"></a>
-<span class="sourceLineNo">957</span>        } else {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>          handleReportForDutyResponse(w);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>          break;<a name="line.959"></a>
-<span class="sourceLineNo">960</span>        }<a name="line.960"></a>
-<span class="sourceLineNo">961</span>      }<a name="line.961"></a>
-<span class="sourceLineNo">962</span><a name="line.962"></a>
-<span class="sourceLineNo">963</span>      if (!isStopped() &amp;&amp; isHealthy()) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        // start the snapshot handler and other procedure handlers,<a name="line.964"></a>
-<span class="sourceLineNo">965</span>        // since the server is ready to run<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        if (this.rspmHost != null) {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>          this.rspmHost.start();<a name="line.967"></a>
-<span class="sourceLineNo">968</span>        }<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        // Start the Quota Manager<a name="line.969"></a>
-<span class="sourceLineNo">970</span>        if (this.rsQuotaManager != null) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>          rsQuotaManager.start(getRpcServer().getScheduler());<a name="line.971"></a>
-<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (this.rsSpaceQuotaManager != null) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          this.rsSpaceQuotaManager.start();<a name="line.974"></a>
+<span class="sourceLineNo">620</span>          masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.620"></a>
+<span class="sourceLineNo">621</span>          masterAddressTracker.start();<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>          clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.623"></a>
+<span class="sourceLineNo">624</span>          clusterStatusTracker.start();<a name="line.624"></a>
+<span class="sourceLineNo">625</span>        } else {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>          masterAddressTracker = null;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>          clusterStatusTracker = null;<a name="line.627"></a>
+<span class="sourceLineNo">628</span>        }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      } else {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        zooKeeper = null;<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        masterAddressTracker = null;<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        clusterStatusTracker = null;<a name="line.632"></a>
+<span class="sourceLineNo">633</span>      }<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      this.rpcServices.start(zooKeeper);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>      // This violates 'no starting stuff in Constructor' but Master depends on the below chore<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      // and executor being created and takes a different startup route. Lots of overlap between HRS<a name="line.636"></a>
+<span class="sourceLineNo">637</span>      // and M (An M IS A HRS now). Need to refactor so less duplication between M and its super<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      // Master expects Constructor to put up web servers. Ugh.<a name="line.638"></a>
+<span class="sourceLineNo">639</span>      // class HRS. TODO.<a name="line.639"></a>
+<span class="sourceLineNo">640</span>      this.choreService = new ChoreService(getName(), true);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>      this.executorService = new ExecutorService(getName());<a name="line.641"></a>
+<span class="sourceLineNo">642</span>      putUpWebUI();<a name="line.642"></a>
+<span class="sourceLineNo">643</span>    } catch (Throwable t) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>      // Make sure we log the exception. HRegionServer is often started via reflection and the<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      // cause of failed startup is lost.<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      LOG.error("Failed construction RegionServer", t);<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      throw t;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>    }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  }<a name="line.649"></a>
+<span class="sourceLineNo">650</span><a name="line.650"></a>
+<span class="sourceLineNo">651</span>  // HMaster should override this method to load the specific config for master<a name="line.651"></a>
+<span class="sourceLineNo">652</span>  protected String getUseThisHostnameInstead(Configuration conf) throws IOException {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>    String hostname = conf.get(RS_HOSTNAME_KEY);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    if (conf.getBoolean(RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, false)) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      if (!StringUtils.isBlank(hostname)) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        String msg = RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY + " and " + RS_HOSTNAME_KEY +<a name="line.656"></a>
+<span class="sourceLineNo">657</span>          " are mutually exclusive. Do not set " + RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY +<a name="line.657"></a>
+<span class="sourceLineNo">658</span>          " to true while " + RS_HOSTNAME_KEY + " is used";<a name="line.658"></a>
+<span class="sourceLineNo">659</span>        throw new IOException(msg);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      } else {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        return rpcServices.isa.getHostName();<a name="line.661"></a>
+<span class="sourceLineNo">662</span>      }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    } else {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      return hostname;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
+<span class="sourceLineNo">669</span>   * If running on Windows, do windows-specific setup.<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   */<a name="line.670"></a>
+<span class="sourceLineNo">671</span>  private static void setupWindows(final Configuration conf, ConfigurationManager cm) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        @Override<a name="line.674"></a>
+<span class="sourceLineNo">675</span>        public void handle(Signal signal) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>          conf.reloadConfiguration();<a name="line.676"></a>
+<span class="sourceLineNo">677</span>          cm.notifyAllObservers(conf);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>        }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>      });<a name="line.679"></a>
+<span class="sourceLineNo">680</span>    }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
+<span class="sourceLineNo">682</span><a name="line.682"></a>
+<span class="sourceLineNo">683</span>  private static NettyEventLoopGroupConfig setupNetty(Configuration conf) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    // Initialize netty event loop group at start as we may use it for rpc server, rpc client &amp; WAL.<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    NettyEventLoopGroupConfig nelgc =<a name="line.685"></a>
+<span class="sourceLineNo">686</span>      new NettyEventLoopGroupConfig(conf, "RS-EventLoopGroup");<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    NettyRpcClientConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.687"></a>
+<span class="sourceLineNo">688</span>    NettyAsyncFSWALConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    return nelgc;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>  }<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>  private void initializeFileSystem() throws IOException {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.693"></a>
+<span class="sourceLineNo">694</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.694"></a>
+<span class="sourceLineNo">695</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.696"></a>
+<span class="sourceLineNo">697</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.698"></a>
+<span class="sourceLineNo">699</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.700"></a>
+<span class="sourceLineNo">701</span>    // (unless all is set to defaults).<a name="line.701"></a>
+<span class="sourceLineNo">702</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.702"></a>
+<span class="sourceLineNo">703</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.704"></a>
+<span class="sourceLineNo">705</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.705"></a>
+<span class="sourceLineNo">706</span>  }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>    return new FSTableDescriptors(this.conf,<a name="line.709"></a>
+<span class="sourceLineNo">710</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false, getMetaTableObserver());<a name="line.710"></a>
+<span class="sourceLineNo">711</span>  }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>    return null;<a name="line.714"></a>
+<span class="sourceLineNo">715</span>  }<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    user.login("hbase.regionserver.keytab.file",<a name="line.718"></a>
+<span class="sourceLineNo">719</span>      "hbase.regionserver.kerberos.principal", host);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>  }<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>  /**<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   * Wait for an active Master.<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * See override in Master superclass for how it is used.<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   */<a name="line.726"></a>
+<span class="sourceLineNo">727</span>  protected void waitForMasterActive() {}<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>  protected String getProcessName() {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>    return REGIONSERVER;<a name="line.730"></a>
+<span class="sourceLineNo">731</span>  }<a name="line.731"></a>
+<span class="sourceLineNo">732</span><a name="line.732"></a>
+<span class="sourceLineNo">733</span>  protected boolean canCreateBaseZNode() {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    return this.masterless;<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>  protected boolean canUpdateTableDescriptor() {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    return false;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>  }<a name="line.739"></a>
+<span class="sourceLineNo">740</span><a name="line.740"></a>
+<span class="sourceLineNo">741</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    return new RSRpcServices(this);<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>  protected void configureInfoServer() {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.747"></a>
+<span class="sourceLineNo">748</span>  }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    return RSDumpServlet.class;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>  }<a name="line.752"></a>
+<span class="sourceLineNo">753</span><a name="line.753"></a>
+<span class="sourceLineNo">754</span>  @Override<a name="line.754"></a>
+<span class="sourceLineNo">755</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    /*<a name="line.756"></a>
+<span class="sourceLineNo">757</span>     * No stacking of instances is allowed for a single executorService name<a name="line.757"></a>
+<span class="sourceLineNo">758</span>     */<a name="line.758"></a>
+<span class="sourceLineNo">759</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        instance.getDescriptorForType();<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.761"></a>
+<span class="sourceLineNo">762</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>      LOG.error("Coprocessor executorService " + serviceName<a name="line.763"></a>
+<span class="sourceLineNo">764</span>          + " already registered, rejecting request from " + instance);<a name="line.764"></a>
+<span class="sourceLineNo">765</span>      return false;<a name="line.765"></a>
+<span class="sourceLineNo">766</span>    }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>    if (LOG.isDebugEnabled()) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>      LOG.debug("Registered regionserver coprocessor executorService: executorService=" + serviceName);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>    }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    return true;<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>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.776"></a>
+<span class="sourceLineNo">777</span>   * the local server; i.e. a short-circuit Connection. Safe to use going to local or remote<a name="line.777"></a>
+<span class="sourceLineNo">778</span>   * server. Create this instance in a method can be intercepted and mocked in tests.<a name="line.778"></a>
+<span class="sourceLineNo">779</span>   * @throws IOException<a name="line.779"></a>
+<span class="sourceLineNo">780</span>   */<a name="line.780"></a>
+<span class="sourceLineNo">781</span>  @VisibleForTesting<a name="line.781"></a>
+<span class="sourceLineNo">782</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.782"></a>
+<span class="sourceLineNo">783</span>    Configuration conf = this.conf;<a name="line.783"></a>
+<span class="sourceLineNo">784</span>    if (conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM) != null) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>      // Use server ZK cluster for server-issued connections, so we clone<a name="line.785"></a>
+<span class="sourceLineNo">786</span>      // the conf and unset the client ZK related properties<a name="line.786"></a>
+<span class="sourceLineNo">787</span>      conf = new Configuration(this.conf);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>      conf.unset(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.788"></a>
+<span class="sourceLineNo">789</span>    }<a name="line.789"></a>
+<span class="sourceLineNo">790</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.790"></a>
+<span class="sourceLineNo">791</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.791"></a>
+<span class="sourceLineNo">792</span>    // and remote invocations.<a name="line.792"></a>
+<span class="sourceLineNo">793</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.793"></a>
+<span class="sourceLineNo">794</span>      serverName, rpcServices, rpcServices);<a name="line.794"></a>
+<span class="sourceLineNo">795</span>  }<a name="line.795"></a>
+<span class="sourceLineNo">796</span><a name="line.796"></a>
+<span class="sourceLineNo">797</span>  /**<a name="line.797"></a>
+<span class="sourceLineNo">798</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.798"></a>
+<span class="sourceLineNo">799</span>   * @param c<a name="line.799"></a>
+<span class="sourceLineNo">800</span>   * @throws IOException<a name="line.800"></a>
+<span class="sourceLineNo">801</span>   */<a name="line.801"></a>
+<span class="sourceLineNo">802</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    // check to see if the codec list is available:<a name="line.803"></a>
+<span class="sourceLineNo">804</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.804"></a>
+<span class="sourceLineNo">805</span>    if (codecs == null) return;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    for (String codec : codecs) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        throw new IOException("Compression codec " + codec +<a name="line.808"></a>
+<span class="sourceLineNo">809</span>          " not supported, aborting RS construction");<a name="line.809"></a>
+<span class="sourceLineNo">810</span>      }<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>  }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>  public String getClusterId() {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    return this.clusterId;<a name="line.815"></a>
+<span class="sourceLineNo">816</span>  }<a name="line.816"></a>
+<span class="sourceLineNo">817</span><a name="line.817"></a>
+<span class="sourceLineNo">818</span>  /**<a name="line.818"></a>
+<span class="sourceLineNo">819</span>   * Setup our cluster connection if not already initialized.<a name="line.819"></a>
+<span class="sourceLineNo">820</span>   * @throws IOException<a name="line.820"></a>
+<span class="sourceLineNo">821</span>   */<a name="line.821"></a>
+<span class="sourceLineNo">822</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    if (clusterConnection == null) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>      clusterConnection = createClusterConnection();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>      metaTableLocator = new MetaTableLocator();<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>  }<a name="line.827"></a>
+<span class="sourceLineNo">828</span><a name="line.828"></a>
+<span class="sourceLineNo">829</span>  /**<a name="line.829"></a>
+<span class="sourceLineNo">830</span>   * All initialization needed before we go register with Master.&lt;br&gt;<a name="line.830"></a>
+<span class="sourceLineNo">831</span>   * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.&lt;br&gt;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>   * In here we just put up the RpcServer, setup Connection, and ZooKeeper.<a name="line.832"></a>
+<span class="sourceLineNo">833</span>   */<a name="line.833"></a>
+<span class="sourceLineNo">834</span>  private void preRegistrationInitialization() {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    try {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>      initializeZooKeeper();<a name="line.836"></a>
+<span class="sourceLineNo">837</span>      setupClusterConnection();<a name="line.837"></a>
+<span class="sourceLineNo">838</span>      // Setup RPC client for master communication<a name="line.838"></a>
+<span class="sourceLineNo">839</span>      this.rpcClient = RpcClientFactory.createClient(conf, clusterId, new InetSocketAddress(<a name="line.839"></a>
+<span class="sourceLineNo">840</span>          this.rpcServices.isa.getAddress(), 0), clusterConnection.getConnectionMetrics());<a name="line.840"></a>
+<span class="sourceLineNo">841</span>    } catch (Throwable t) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>      // Call stop if error or process will stick around for ever since server<a name="line.842"></a>
+<span class="sourceLineNo">843</span>      // puts up non-daemon threads.<a name="line.843"></a>
+<span class="sourceLineNo">844</span>      this.rpcServices.stop();<a name="line.844"></a>
+<span class="sourceLineNo">845</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    }<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Bring up connection to zk ensemble and then wait until a master for this cluster and then after<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * that, wait until cluster 'up' flag has been set. This is the order in which master does things.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * &lt;p&gt;<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * Finally open long-living server short-circuit connection.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    justification="cluster Id znode read would give us correct response")<a name="line.856"></a>
+<span class="sourceLineNo">857</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>    // Nothing to do in here if no Master in the mix.<a name="line.858"></a>
+<span class="sourceLineNo">859</span>    if (this.masterless) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      return;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    }<a name="line.861"></a>
+<span class="sourceLineNo">862</span><a name="line.862"></a>
+<span class="sourceLineNo">863</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.863"></a>
+<span class="sourceLineNo">864</span>    // block until a master is available.  No point in starting up if no master<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    // running.<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.866"></a>
+<span class="sourceLineNo">867</span><a name="line.867"></a>
+<span class="sourceLineNo">868</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.868"></a>
+<span class="sourceLineNo">869</span>    // when ready.<a name="line.869"></a>
+<span class="sourceLineNo">870</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.870"></a>
+<span class="sourceLineNo">871</span><a name="line.871"></a>
+<span class="sourceLineNo">872</span>    // If we are HMaster then the cluster id should have already been set.<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    if (clusterId == null) {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      // Retrieve clusterId<a name="line.874"></a>
+<span class="sourceLineNo">875</span>      // Since cluster status is now up<a name="line.875"></a>
+<span class="sourceLineNo">876</span>      // ID should have already been set by HMaster<a name="line.876"></a>
+<span class="sourceLineNo">877</span>      try {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        if (clusterId == null) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>          this.abort("Cluster ID has not been set");<a name="line.880"></a>
+<span class="sourceLineNo">881</span>        }<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        LOG.info("ClusterId : " + clusterId);<a name="line.882"></a>
+<span class="sourceLineNo">883</span>      } catch (KeeperException e) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        this.abort("Failed to retrieve Cluster ID", e);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>      }<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>    waitForMasterActive();<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    if (isStopped() || isAborted()) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>      return; // No need for further initialization<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    }<a name="line.891"></a>
+<span class="sourceLineNo">892</span><a name="line.892"></a>
+<span class="sourceLineNo">893</span>    // watch for snapshots and other procedures<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    try {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.895"></a>
+<span class="sourceLineNo">896</span>      rspmHost.loadProcedures(conf);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>      rspmHost.initialize(this);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    } catch (KeeperException e) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>  }<a name="line.901"></a>
+<span class="sourceLineNo">902</span><a name="line.902"></a>
+<span class="sourceLineNo">903</span>  /**<a name="line.903"></a>
+<span class="sourceLineNo">904</span>   * Utilty method to wait indefinitely on a znode availability while checking<a name="line.904"></a>
+<span class="sourceLineNo">905</span>   * if the region server is shut down<a name="line.905"></a>
+<span class="sourceLineNo">906</span>   * @param tracker znode tracker to use<a name="line.906"></a>
+<span class="sourceLineNo">907</span>   * @throws IOException any IO exception, plus if the RS is stopped<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * @throws InterruptedException<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   */<a name="line.909"></a>
+<span class="sourceLineNo">910</span>  private void blockAndCheckIfStopped(ZKNodeTracker tracker)<a name="line.910"></a>
+<span class="sourceLineNo">911</span>      throws IOException, InterruptedException {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>    while (tracker.blockUntilAvailable(this.msgInterval, false) == null) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>      if (this.stopped) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>        throw new IOException("Received the shutdown message while waiting.");<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>  }<a name="line.917"></a>
+<span class="sourceLineNo">918</span><a name="line.918"></a>
+<span class="sourceLineNo">919</span>  /**<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   * @return True if the cluster is up.<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   */<a name="line.921"></a>
+<span class="sourceLineNo">922</span>  @Override<a name="line.922"></a>
+<span class="sourceLineNo">923</span>  public boolean isClusterUp() {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>    return this.masterless ||<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        (this.clusterStatusTracker != null &amp;&amp; this.clusterStatusTracker.isClusterUp());<a name="line.925"></a>
+<span class="sourceLineNo">926</span>  }<a name="line.926"></a>
+<span class="sourceLineNo">927</span><a name="line.927"></a>
+<span class="sourceLineNo">928</span>  /**<a name="line.928"></a>
+<span class="sourceLineNo">929</span>   * The HRegionServer sticks in this loop until closed.<a name="line.929"></a>
+<span class="sourceLineNo">930</span>   */<a name="line.930"></a>
+<span class="sourceLineNo">931</span>  @Override<a name="line.931"></a>
+<span class="sourceLineNo">932</span>  public void run() {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    try {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      // Do pre-registration initializations; zookeeper, lease threads, etc.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>      preRegistrationInitialization();<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    } catch (Throwable e) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>      abort("Fatal exception during initialization", e);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>    }<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>    try {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>        ShutdownHook.install(conf, fs, this, Thread.currentThread());<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        // Initialize the RegionServerCoprocessorHost now that our ephemeral<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        // node was created, in case any coprocessors want to use ZooKeeper<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        this.rsHost = new RegionServerCoprocessorHost(this, this.conf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      }<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>      // Try and register with the Master; tell it we are here.  Break if server is stopped or the<a name="line.948"></a>
+<span class="sourceLineNo">949</span>      // clusterup flag is down or hdfs went wacky. Once registered successfully, go ahead and start<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      // up all Services. Use RetryCounter to get backoff in case Master is struggling to come up.<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      RetryCounterFactory rcf = new RetryCounterFactory(Integer.MAX_VALUE,<a name="line.951"></a>
+<span class="sourceLineNo">952</span>          this.sleeper.getPeriod(), 1000 * 60 * 5);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      RetryCounter rc = rcf.create();<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      while (keepLooping()) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>        RegionServerStartupResponse w = reportForDuty();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        if (w == null) {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>          long sleepTime = rc.getBackoffTimeAndIncrementAttempts();<a name="line.957"></a>
+<span class="sourceLineNo">958</span>          LOG.warn("reportForDuty failed; sleeping {} ms and then retrying.", sleepTime);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>          this.sleeper.sleep(sleepTime);<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>          handleReportForDutyResponse(w);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>          break;<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        }<a name="line.963"></a>
+<span class="sourceLineNo">964</span>      }<a name="line.964"></a>
+<span class="sourceLineNo">965</span><a name="line.965"></a>
+<span class="sourceLineNo">966</span>      if (!isStopped() &amp;&amp; isHealthy()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>        // start the snapshot handler and other procedure handlers,<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        // since the server is ready to run<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        if (this.rspmHost != null) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>          this.rspmHost.start();<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        // Start the Quota Manager<a name="line.972"></a>
+<span class="sourceLineNo">973</span>        if (this.rsQuotaManager != null) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>          rsQuotaManager.start(getRpcServer().getScheduler());<a name="line.974"></a>
 <span class="sourceLineNo">975</span>        }<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      }<a name="line.976"></a>
-<span class="sourceLineNo">977</span><a name="line.977"></a>
-<span class="sourceLineNo">978</span>      // We registered with the Master.  Go into run mode.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>      long lastMsg = System.currentTimeMillis();<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      long oldRequestCount = -1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // The main run loop.<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      while (!isStopped() &amp;&amp; isHealthy()) {<a name="line.982"></a>
-<span class="sourceLineNo">983</span>        if (!isClusterUp()) {<a name="line.983"></a>
-<span class="sourceLineNo">984</span>          if (isOnlineRegionsEmpty()) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>            stop("Exiting; cluster shutdown set and not carrying any regions");<a name="line.985"></a>
-<span class="sourceLineNo">986</span>          } else if (!this.stopping) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            this.stopping = true;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>            LOG.info("Closing user regions");<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            closeUserRegions(this.abortRequested);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>          } else if (this.stopping) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>            boolean allUserRegionsOffline = areAllUserRegionsOffline();<a name="line.991"></a>
-<span class="sourceLineNo">992</span>            if (allUserRegionsOffline) {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>              // Set stopped if no more write requests tp meta tables<a name="line.993"></a>
-<span class="sourceLineNo">994</span>              // since last time we went around the loop.  Any open<a name="line.994"></a>
-<span class="sourceLineNo">995</span>              // meta regions will be closed on our way out.<a name="line.995"></a>
-<span class="sourceLineNo">996</span>              if (oldRequestCount == getWriteRequestCount()) {<a name="line.996"></a>
-<span class="sourceLineNo">997</span>                stop("Stopped; only catalog regions remaining online");<a name="line.997"></a>
-<span class="sourceLineNo">998</span>                break;<a name="line.998"></a>
-<span class="sourceLineNo">999</span>              }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>              oldRequestCount = getWriteRequestCount();<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>            } else {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>              // Make sure all regions have been closed -- some regions may<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>              // have not got it because we were splitting at the time of<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>              // the call to closeUserRegions.<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>              closeUserRegions(this.abortRequested);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>            }<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>            LOG.debug("Waiting on " + getOnlineRegionsAsPrintableString());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>          }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>        long now = System.currentTimeMillis();<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>        if ((now - lastMsg) &gt;= msgInterval) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>          tryRegionServerReport(lastMsg, now);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>          lastMsg = System.currentTimeMillis();<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>        }<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>        if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>          this.sleeper.sleep();<a name="line.1016"></a>
+<span class="sourceLineNo">976</span>        if (this.rsSpaceQuotaManager != null) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          this.rsSpaceQuotaManager.start();<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        }<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span><a name="line.980"></a>
+<span class="sourceLineNo">981</span>      // We registered with the Master.  Go into run mode.<a name="line.981"></a>
+<span class="sourceLineNo">982</span>      long lastMsg = System.currentTimeMillis();<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      long oldRequestCount = -1;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // The main run loop.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      while (!isStopped() &amp;&amp; isHealthy()) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>        if (!isClusterUp()) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>          if (isOnlineRegionsEmpty()) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            stop("Exiting; cluster shutdown set and not carrying any regions");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          } else if (!this.stopping) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>            this.stopping = true;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>            LOG.info("Closing user regions");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>            closeUserRegions(this.abortRequested);<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          } else if (this.stopping) {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>            boolean allUserRegionsOffline = areAllUserRegionsOffline();<a name="line.994"></a>
+<span class="sourceLineNo">995</span>            if (allUserRegionsOffline) {<a name="line.995"></a>
+<span class="sourceLineNo">996</span>              // Set stopped if no more write requests tp meta tables<a name="line.996"></a>
+<span class="sourceLineNo">997</span>              // since last time we went around the loop.  Any open<a name="line.997"></a>
+<span class="sourceLineNo">998</span>              // meta regions will be closed on our way out.<a name="line.998"></a>
+<span class="sourceLineNo">999</span>              if (oldRequestCount == getWriteRequestCount()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                stop("Stopped; only catalog regions remaining online");<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                break;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>              }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>              oldRequestCount = getWriteRequestCount();<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>            } else {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>              // Make sure all regions have been closed -- some regions may<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>              // have not got it because we were splitting at the time of<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>              // the call to closeUserRegions.<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>              closeUserRegions(this.abortRequested);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>            }<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>            LOG.debug("Waiting on " + getOnlineRegionsAsPrintableString());<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>          }<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        long now = System.currentTimeMillis();<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        if ((now - lastMsg) &gt;= msgInterval) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>          tryRegionServerReport(lastMsg, now);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>          lastMsg = System.currentTimeMillis();<a name="line.1016"></a>
 <span class="sourceLineNo">1017</span>        }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      } // for<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    } catch (Throwable t) {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      if (!rpcServices.checkOOME(t)) {<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>        String prefix = t instanceof YouAreDeadException? "": "Unhandled: ";<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>        abort(prefix + t.getMessage(), t);<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (this.leases != null) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      this.leases.closeAfterLeasesExpire();<a name="line.1026"></a>
+<span class="sourceLineNo">1018</span>        if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>          this.sleeper.sleep();<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>        }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      } // for<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    } catch (Throwable t) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      if (!rpcServices.checkOOME(t)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        String prefix = t instanceof YouAreDeadException? "": "Unhandled: ";<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        abort(prefix + t.getMessage(), t);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      }<a name="line.1026"></a>
 <span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (this.splitLogWorker != null) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      splitLogWorker.stop();<a name="line.1029"></a>
+<span class="sourceLineNo">1028</span>    if (this.leases != null) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      this.leases.closeAfterLeasesExpire();<a name="line.1029"></a>
 <span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>    if (this.infoServer != null) {<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      LOG.info("Stopping infoServer");<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>      try {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>        this.infoServer.stop();<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      } catch (Exception e) {<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        LOG.error("Failed to stop infoServer", e);<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    // Send cache a shutdown.<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    if (cacheConfig != null &amp;&amp; cacheConfig.isBlockCacheEnabled()) {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>      cacheConfig.getBlockCache().shutdown();<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>    }<a name="lin

<TRUNCATED>

[29/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
index 0f2fd75..bf5af92 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html
@@ -56,638 +56,660 @@
 <span class="sourceLineNo">048</span>  /**<a name="line.48"></a>
 <span class="sourceLineNo">049</span>   * Disabled cache configuration<a name="line.49"></a>
 <span class="sourceLineNo">050</span>   */<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  public static final CacheConfig DISABLED = new CacheConfig();<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  /**<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   * Configuration key to cache data blocks on read. Bloom blocks and index blocks are always be<a name="line.56"></a>
-<span class="sourceLineNo">057</span>   * cached if the block cache is enabled.<a name="line.57"></a>
-<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  public static final String CACHE_DATA_ON_READ_KEY = "hbase.block.data.cacheonread";<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  /**<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   * Configuration key to cache data blocks on write. There are separate<a name="line.62"></a>
-<span class="sourceLineNo">063</span>   * switches for bloom blocks and non-root index blocks.<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   */<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  public static final String CACHE_BLOCKS_ON_WRITE_KEY =<a name="line.65"></a>
-<span class="sourceLineNo">066</span>      "hbase.rs.cacheblocksonwrite";<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>   * Configuration key to cache leaf and intermediate-level index blocks on<a name="line.69"></a>
-<span class="sourceLineNo">070</span>   * write.<a name="line.70"></a>
-<span class="sourceLineNo">071</span>   */<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  public static final String CACHE_INDEX_BLOCKS_ON_WRITE_KEY =<a name="line.72"></a>
-<span class="sourceLineNo">073</span>      "hfile.block.index.cacheonwrite";<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>   * Configuration key to cache compound bloom filter blocks on write.<a name="line.76"></a>
-<span class="sourceLineNo">077</span>   */<a name="line.77"></a>
-<span class="sourceLineNo">078</span>  public static final String CACHE_BLOOM_BLOCKS_ON_WRITE_KEY =<a name="line.78"></a>
-<span class="sourceLineNo">079</span>      "hfile.block.bloom.cacheonwrite";<a name="line.79"></a>
-<span class="sourceLineNo">080</span><a name="line.80"></a>
-<span class="sourceLineNo">081</span>  /**<a name="line.81"></a>
-<span class="sourceLineNo">082</span>   * Configuration key to cache data blocks in compressed and/or encrypted format.<a name="line.82"></a>
-<span class="sourceLineNo">083</span>   */<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  public static final String CACHE_DATA_BLOCKS_COMPRESSED_KEY =<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      "hbase.block.data.cachecompressed";<a name="line.85"></a>
-<span class="sourceLineNo">086</span><a name="line.86"></a>
-<span class="sourceLineNo">087</span>  /**<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   * Configuration key to evict all blocks of a given file from the block cache<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   * when the file is closed.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   */<a name="line.90"></a>
-<span class="sourceLineNo">091</span>  public static final String EVICT_BLOCKS_ON_CLOSE_KEY =<a name="line.91"></a>
-<span class="sourceLineNo">092</span>      "hbase.rs.evictblocksonclose";<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>   * Configuration keys for Bucket cache<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>  /**<a name="line.98"></a>
-<span class="sourceLineNo">099</span>   * If the chosen ioengine can persist its state across restarts, the path to the file to persist<a name="line.99"></a>
-<span class="sourceLineNo">100</span>   * to. This file is NOT the data file. It is a file into which we will serialize the map of<a name="line.100"></a>
-<span class="sourceLineNo">101</span>   * what is in the data file. For example, if you pass the following argument as<a name="line.101"></a>
-<span class="sourceLineNo">102</span>   * BUCKET_CACHE_IOENGINE_KEY ("hbase.bucketcache.ioengine"),<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   * &lt;code&gt;file:/tmp/bucketcache.data &lt;/code&gt;, then we will write the bucketcache data to the file<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * &lt;code&gt;/tmp/bucketcache.data&lt;/code&gt; but the metadata on where the data is in the supplied file<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   * is an in-memory map that needs to be persisted across restarts. Where to store this<a name="line.105"></a>
-<span class="sourceLineNo">106</span>   * in-memory state is what you supply here: e.g. &lt;code&gt;/tmp/bucketcache.map&lt;/code&gt;.<a name="line.106"></a>
-<span class="sourceLineNo">107</span>   */<a name="line.107"></a>
-<span class="sourceLineNo">108</span>  public static final String BUCKET_CACHE_PERSISTENT_PATH_KEY =<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      "hbase.bucketcache.persistent.path";<a name="line.109"></a>
-<span class="sourceLineNo">110</span><a name="line.110"></a>
-<span class="sourceLineNo">111</span>  public static final String BUCKET_CACHE_WRITER_THREADS_KEY = "hbase.bucketcache.writer.threads";<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  public static final String BUCKET_CACHE_WRITER_QUEUE_KEY =<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      "hbase.bucketcache.writer.queuelength";<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>   * A comma-delimited array of values for use as bucket sizes.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   */<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  public static final String BUCKET_CACHE_BUCKETS_KEY = "hbase.bucketcache.bucket.sizes";<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>   * Defaults for Bucket cache<a name="line.121"></a>
-<span class="sourceLineNo">122</span>   */<a name="line.122"></a>
-<span class="sourceLineNo">123</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_THREADS = 3;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_QUEUE = 64;<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span> /**<a name="line.126"></a>
-<span class="sourceLineNo">127</span>   * Configuration key to prefetch all blocks of a given file into the block cache<a name="line.127"></a>
-<span class="sourceLineNo">128</span>   * when the file is opened.<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   */<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  public static final String PREFETCH_BLOCKS_ON_OPEN_KEY =<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      "hbase.rs.prefetchblocksonopen";<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  /**<a name="line.133"></a>
-<span class="sourceLineNo">134</span>   * The target block size used by blockcache instances. Defaults to<a name="line.134"></a>
-<span class="sourceLineNo">135</span>   * {@link HConstants#DEFAULT_BLOCKSIZE}.<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * TODO: this config point is completely wrong, as it's used to determine the<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   * target block size of BlockCache instances. Rename.<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   */<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  public static final String BLOCKCACHE_BLOCKSIZE_KEY = "hbase.offheapcache.minblocksize";<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>  private static final String EXTERNAL_BLOCKCACHE_KEY = "hbase.blockcache.use.external";<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  private static final boolean EXTERNAL_BLOCKCACHE_DEFAULT = false;<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  private static final String EXTERNAL_BLOCKCACHE_CLASS_KEY = "hbase.blockcache.external.class";<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  private static final String DROP_BEHIND_CACHE_COMPACTION_KEY =<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      "hbase.hfile.drop.behind.compaction";<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  private static final boolean DROP_BEHIND_CACHE_COMPACTION_DEFAULT = true;<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>  /**<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * Enum of all built in external block caches.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * This is used for config.<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   */<a name="line.152"></a>
-<span class="sourceLineNo">153</span>  private static enum ExternalBlockCaches {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>    memcached("org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache");<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    // TODO(eclark): Consider more. Redis, etc.<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    Class&lt;? extends BlockCache&gt; clazz;<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    ExternalBlockCaches(String clazzName) {<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      try {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        clazz = (Class&lt;? extends BlockCache&gt;) Class.forName(clazzName);<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      } catch (ClassNotFoundException cnef) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        clazz = null;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    ExternalBlockCaches(Class&lt;? extends BlockCache&gt; clazz) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>      this.clazz = clazz;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    }<a name="line.166"></a>
-<span class="sourceLineNo">167</span>  }<a name="line.167"></a>
-<span class="sourceLineNo">168</span><a name="line.168"></a>
-<span class="sourceLineNo">169</span>  // Defaults<a name="line.169"></a>
-<span class="sourceLineNo">170</span>  public static final boolean DEFAULT_CACHE_DATA_ON_READ = true;<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  public static final boolean DEFAULT_CACHE_DATA_ON_WRITE = false;<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  public static final boolean DEFAULT_IN_MEMORY = false;<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  public static final boolean DEFAULT_CACHE_INDEXES_ON_WRITE = false;<a name="line.173"></a>
-<span class="sourceLineNo">174</span>  public static final boolean DEFAULT_CACHE_BLOOMS_ON_WRITE = false;<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  public static final boolean DEFAULT_EVICT_ON_CLOSE = false;<a name="line.175"></a>
-<span class="sourceLineNo">176</span>  public static final boolean DEFAULT_CACHE_DATA_COMPRESSED = false;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>  public static final boolean DEFAULT_PREFETCH_ON_OPEN = false;<a name="line.177"></a>
-<span class="sourceLineNo">178</span><a name="line.178"></a>
-<span class="sourceLineNo">179</span>  /** Local reference to the block cache, null if completely disabled */<a name="line.179"></a>
-<span class="sourceLineNo">180</span>  private final BlockCache blockCache;<a name="line.180"></a>
-<span class="sourceLineNo">181</span><a name="line.181"></a>
-<span class="sourceLineNo">182</span>  /**<a name="line.182"></a>
-<span class="sourceLineNo">183</span>   * Whether blocks should be cached on read (default is on if there is a<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * cache but this can be turned off on a per-family or per-request basis).<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   * If off we will STILL cache meta blocks; i.e. INDEX and BLOOM types.<a name="line.185"></a>
-<span class="sourceLineNo">186</span>   * This cannot be disabled.<a name="line.186"></a>
-<span class="sourceLineNo">187</span>   */<a name="line.187"></a>
-<span class="sourceLineNo">188</span>  private boolean cacheDataOnRead;<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>  /** Whether blocks should be flagged as in-memory when being cached */<a name="line.190"></a>
-<span class="sourceLineNo">191</span>  private final boolean inMemory;<a name="line.191"></a>
-<span class="sourceLineNo">192</span><a name="line.192"></a>
-<span class="sourceLineNo">193</span>  /** Whether data blocks should be cached when new files are written */<a name="line.193"></a>
-<span class="sourceLineNo">194</span>  private boolean cacheDataOnWrite;<a name="line.194"></a>
-<span class="sourceLineNo">195</span><a name="line.195"></a>
-<span class="sourceLineNo">196</span>  /** Whether index blocks should be cached when new files are written */<a name="line.196"></a>
-<span class="sourceLineNo">197</span>  private final boolean cacheIndexesOnWrite;<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>  /** Whether compound bloom filter blocks should be cached on write */<a name="line.199"></a>
-<span class="sourceLineNo">200</span>  private final boolean cacheBloomsOnWrite;<a name="line.200"></a>
-<span class="sourceLineNo">201</span><a name="line.201"></a>
-<span class="sourceLineNo">202</span>  /** Whether blocks of a file should be evicted when the file is closed */<a name="line.202"></a>
-<span class="sourceLineNo">203</span>  private boolean evictOnClose;<a name="line.203"></a>
-<span class="sourceLineNo">204</span><a name="line.204"></a>
-<span class="sourceLineNo">205</span>  /** Whether data blocks should be stored in compressed and/or encrypted form in the cache */<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  private final boolean cacheDataCompressed;<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>  /** Whether data blocks should be prefetched into the cache */<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  private final boolean prefetchOnOpen;<a name="line.209"></a>
+<span class="sourceLineNo">051</span>  public static final CacheConfig DISABLED = new CacheConfig();<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   * Configuration key to cache data blocks on read. Bloom blocks and index blocks are always be<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   * cached if the block cache is enabled.<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   */<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  public static final String CACHE_DATA_ON_READ_KEY = "hbase.block.data.cacheonread";<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>  /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>   * Configuration key to cache data blocks on write. There are separate<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   * switches for bloom blocks and non-root index blocks.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   */<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  public static final String CACHE_BLOCKS_ON_WRITE_KEY =<a name="line.63"></a>
+<span class="sourceLineNo">064</span>      "hbase.rs.cacheblocksonwrite";<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>   * Configuration key to cache leaf and intermediate-level index blocks on<a name="line.67"></a>
+<span class="sourceLineNo">068</span>   * write.<a name="line.68"></a>
+<span class="sourceLineNo">069</span>   */<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  public static final String CACHE_INDEX_BLOCKS_ON_WRITE_KEY =<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      "hfile.block.index.cacheonwrite";<a name="line.71"></a>
+<span class="sourceLineNo">072</span><a name="line.72"></a>
+<span class="sourceLineNo">073</span>  /**<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   * Configuration key to cache compound bloom filter blocks on write.<a name="line.74"></a>
+<span class="sourceLineNo">075</span>   */<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  public static final String CACHE_BLOOM_BLOCKS_ON_WRITE_KEY =<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      "hfile.block.bloom.cacheonwrite";<a name="line.77"></a>
+<span class="sourceLineNo">078</span><a name="line.78"></a>
+<span class="sourceLineNo">079</span>  /**<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   * Configuration key to cache data blocks in compressed and/or encrypted format.<a name="line.80"></a>
+<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  public static final String CACHE_DATA_BLOCKS_COMPRESSED_KEY =<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      "hbase.block.data.cachecompressed";<a name="line.83"></a>
+<span class="sourceLineNo">084</span><a name="line.84"></a>
+<span class="sourceLineNo">085</span>  /**<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * Configuration key to evict all blocks of a given file from the block cache<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * when the file is closed.<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  public static final String EVICT_BLOCKS_ON_CLOSE_KEY =<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      "hbase.rs.evictblocksonclose";<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>   * Configuration keys for Bucket cache<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>  /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * If the chosen ioengine can persist its state across restarts, the path to the file to persist<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * to. This file is NOT the data file. It is a file into which we will serialize the map of<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   * what is in the data file. For example, if you pass the following argument as<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   * BUCKET_CACHE_IOENGINE_KEY ("hbase.bucketcache.ioengine"),<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * &lt;code&gt;file:/tmp/bucketcache.data &lt;/code&gt;, then we will write the bucketcache data to the file<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   * &lt;code&gt;/tmp/bucketcache.data&lt;/code&gt; but the metadata on where the data is in the supplied file<a name="line.102"></a>
+<span class="sourceLineNo">103</span>   * is an in-memory map that needs to be persisted across restarts. Where to store this<a name="line.103"></a>
+<span class="sourceLineNo">104</span>   * in-memory state is what you supply here: e.g. &lt;code&gt;/tmp/bucketcache.map&lt;/code&gt;.<a name="line.104"></a>
+<span class="sourceLineNo">105</span>   */<a name="line.105"></a>
+<span class="sourceLineNo">106</span>  public static final String BUCKET_CACHE_PERSISTENT_PATH_KEY =<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      "hbase.bucketcache.persistent.path";<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>  public static final String BUCKET_CACHE_WRITER_THREADS_KEY = "hbase.bucketcache.writer.threads";<a name="line.109"></a>
+<span class="sourceLineNo">110</span>  public static final String BUCKET_CACHE_WRITER_QUEUE_KEY =<a name="line.110"></a>
+<span class="sourceLineNo">111</span>      "hbase.bucketcache.writer.queuelength";<a name="line.111"></a>
+<span class="sourceLineNo">112</span><a name="line.112"></a>
+<span class="sourceLineNo">113</span>  /**<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * A comma-delimited array of values for use as bucket sizes.<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   */<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  public static final String BUCKET_CACHE_BUCKETS_KEY = "hbase.bucketcache.bucket.sizes";<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>   * Defaults for Bucket cache<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   */<a name="line.120"></a>
+<span class="sourceLineNo">121</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_THREADS = 3;<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public static final int DEFAULT_BUCKET_CACHE_WRITER_QUEUE = 64;<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>   * Configuration key to prefetch all blocks of a given file into the block cache<a name="line.125"></a>
+<span class="sourceLineNo">126</span>   * when the file is opened.<a name="line.126"></a>
+<span class="sourceLineNo">127</span>   */<a name="line.127"></a>
+<span class="sourceLineNo">128</span>  public static final String PREFETCH_BLOCKS_ON_OPEN_KEY =<a name="line.128"></a>
+<span class="sourceLineNo">129</span>      "hbase.rs.prefetchblocksonopen";<a name="line.129"></a>
+<span class="sourceLineNo">130</span><a name="line.130"></a>
+<span class="sourceLineNo">131</span>  /**<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * The target block size used by blockcache instances. Defaults to<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * {@link HConstants#DEFAULT_BLOCKSIZE}.<a name="line.133"></a>
+<span class="sourceLineNo">134</span>   * TODO: this config point is completely wrong, as it's used to determine the<a name="line.134"></a>
+<span class="sourceLineNo">135</span>   * target block size of BlockCache instances. Rename.<a name="line.135"></a>
+<span class="sourceLineNo">136</span>   */<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  public static final String BLOCKCACHE_BLOCKSIZE_KEY = "hbase.offheapcache.minblocksize";<a name="line.137"></a>
+<span class="sourceLineNo">138</span><a name="line.138"></a>
+<span class="sourceLineNo">139</span>  private static final String EXTERNAL_BLOCKCACHE_KEY = "hbase.blockcache.use.external";<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  private static final boolean EXTERNAL_BLOCKCACHE_DEFAULT = false;<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  private static final String EXTERNAL_BLOCKCACHE_CLASS_KEY = "hbase.blockcache.external.class";<a name="line.142"></a>
+<span class="sourceLineNo">143</span>  private static final String DROP_BEHIND_CACHE_COMPACTION_KEY =<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      "hbase.hfile.drop.behind.compaction";<a name="line.144"></a>
+<span class="sourceLineNo">145</span>  private static final boolean DROP_BEHIND_CACHE_COMPACTION_DEFAULT = true;<a name="line.145"></a>
+<span class="sourceLineNo">146</span><a name="line.146"></a>
+<span class="sourceLineNo">147</span>  /**<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   * Enum of all built in external block caches.<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * This is used for config.<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  private static enum ExternalBlockCaches {<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    memcached("org.apache.hadoop.hbase.io.hfile.MemcachedBlockCache");<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    // TODO(eclark): Consider more. Redis, etc.<a name="line.153"></a>
+<span class="sourceLineNo">154</span>    Class&lt;? extends BlockCache&gt; clazz;<a name="line.154"></a>
+<span class="sourceLineNo">155</span>    ExternalBlockCaches(String clazzName) {<a name="line.155"></a>
+<span class="sourceLineNo">156</span>      try {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        clazz = (Class&lt;? extends BlockCache&gt;) Class.forName(clazzName);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      } catch (ClassNotFoundException cnef) {<a name="line.158"></a>
+<span class="sourceLineNo">159</span>        clazz = null;<a name="line.159"></a>
+<span class="sourceLineNo">160</span>      }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    }<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    ExternalBlockCaches(Class&lt;? extends BlockCache&gt; clazz) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      this.clazz = clazz;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
+<span class="sourceLineNo">165</span>  }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>  // Defaults<a name="line.167"></a>
+<span class="sourceLineNo">168</span>  public static final boolean DEFAULT_CACHE_DATA_ON_READ = true;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  public static final boolean DEFAULT_CACHE_DATA_ON_WRITE = false;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  public static final boolean DEFAULT_IN_MEMORY = false;<a name="line.170"></a>
+<span class="sourceLineNo">171</span>  public static final boolean DEFAULT_CACHE_INDEXES_ON_WRITE = false;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public static final boolean DEFAULT_CACHE_BLOOMS_ON_WRITE = false;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  public static final boolean DEFAULT_EVICT_ON_CLOSE = false;<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  public static final boolean DEFAULT_CACHE_DATA_COMPRESSED = false;<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  public static final boolean DEFAULT_PREFETCH_ON_OPEN = false;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>  /** Local reference to the block cache, null if completely disabled */<a name="line.177"></a>
+<span class="sourceLineNo">178</span>  private final BlockCache blockCache;<a name="line.178"></a>
+<span class="sourceLineNo">179</span><a name="line.179"></a>
+<span class="sourceLineNo">180</span>  /**<a name="line.180"></a>
+<span class="sourceLineNo">181</span>   * Whether blocks should be cached on read (default is on if there is a<a name="line.181"></a>
+<span class="sourceLineNo">182</span>   * cache but this can be turned off on a per-family or per-request basis).<a name="line.182"></a>
+<span class="sourceLineNo">183</span>   * If off we will STILL cache meta blocks; i.e. INDEX and BLOOM types.<a name="line.183"></a>
+<span class="sourceLineNo">184</span>   * This cannot be disabled.<a name="line.184"></a>
+<span class="sourceLineNo">185</span>   */<a name="line.185"></a>
+<span class="sourceLineNo">186</span>  private boolean cacheDataOnRead;<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>  /** Whether blocks should be flagged as in-memory when being cached */<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  private final boolean inMemory;<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  /** Whether data blocks should be cached when new files are written */<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  private boolean cacheDataOnWrite;<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>  /** Whether index blocks should be cached when new files are written */<a name="line.194"></a>
+<span class="sourceLineNo">195</span>  private final boolean cacheIndexesOnWrite;<a name="line.195"></a>
+<span class="sourceLineNo">196</span><a name="line.196"></a>
+<span class="sourceLineNo">197</span>  /** Whether compound bloom filter blocks should be cached on write */<a name="line.197"></a>
+<span class="sourceLineNo">198</span>  private final boolean cacheBloomsOnWrite;<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>  /** Whether blocks of a file should be evicted when the file is closed */<a name="line.200"></a>
+<span class="sourceLineNo">201</span>  private boolean evictOnClose;<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>  /** Whether data blocks should be stored in compressed and/or encrypted form in the cache */<a name="line.203"></a>
+<span class="sourceLineNo">204</span>  private final boolean cacheDataCompressed;<a name="line.204"></a>
+<span class="sourceLineNo">205</span><a name="line.205"></a>
+<span class="sourceLineNo">206</span>  /** Whether data blocks should be prefetched into the cache */<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  private final boolean prefetchOnOpen;<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  private final boolean dropBehindCompaction;<a name="line.209"></a>
 <span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>  private final boolean dropBehindCompaction;<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>   * Create a cache configuration using the specified configuration object and<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   * family descriptor.<a name="line.215"></a>
-<span class="sourceLineNo">216</span>   * @param conf hbase configuration<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   * @param family column family configuration<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   */<a name="line.218"></a>
-<span class="sourceLineNo">219</span>  public CacheConfig(Configuration conf, ColumnFamilyDescriptor family) {<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    this(CacheConfig.instantiateBlockCache(conf),<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>           &amp;&amp; family.isBlockCacheEnabled(),<a name="line.222"></a>
-<span class="sourceLineNo">223</span>        family.isInMemory(),<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        // For the following flags we enable them regardless of per-schema settings<a name="line.224"></a>
-<span class="sourceLineNo">225</span>        // if they are enabled in the global configuration.<a name="line.225"></a>
-<span class="sourceLineNo">226</span>        conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY,<a name="line.226"></a>
-<span class="sourceLineNo">227</span>            DEFAULT_CACHE_DATA_ON_WRITE) || family.isCacheDataOnWrite(),<a name="line.227"></a>
-<span class="sourceLineNo">228</span>        conf.getBoolean(CACHE_INDEX_BLOCKS_ON_WRITE_KEY,<a name="line.228"></a>
-<span class="sourceLineNo">229</span>            DEFAULT_CACHE_INDEXES_ON_WRITE) || family.isCacheIndexesOnWrite(),<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        conf.getBoolean(CACHE_BLOOM_BLOCKS_ON_WRITE_KEY,<a name="line.230"></a>
-<span class="sourceLineNo">231</span>            DEFAULT_CACHE_BLOOMS_ON_WRITE) || family.isCacheBloomsOnWrite(),<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY,<a name="line.232"></a>
-<span class="sourceLineNo">233</span>            DEFAULT_EVICT_ON_CLOSE) || family.isEvictBlocksOnClose(),<a name="line.233"></a>
-<span class="sourceLineNo">234</span>        conf.getBoolean(CACHE_DATA_BLOCKS_COMPRESSED_KEY, DEFAULT_CACHE_DATA_COMPRESSED),<a name="line.234"></a>
-<span class="sourceLineNo">235</span>        conf.getBoolean(PREFETCH_BLOCKS_ON_OPEN_KEY,<a name="line.235"></a>
-<span class="sourceLineNo">236</span>            DEFAULT_PREFETCH_ON_OPEN) || family.isPrefetchBlocksOnOpen(),<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        conf.getBoolean(DROP_BEHIND_CACHE_COMPACTION_KEY, DROP_BEHIND_CACHE_COMPACTION_DEFAULT)<a name="line.237"></a>
-<span class="sourceLineNo">238</span>     );<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    LOG.info("Created cacheConfig for " + family.getNameAsString() + ": " + this);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
-<span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>  /**<a name="line.242"></a>
-<span class="sourceLineNo">243</span>   * Create a cache configuration using the specified configuration object and<a name="line.243"></a>
-<span class="sourceLineNo">244</span>   * defaults for family level settings. Only use if no column family context. Prefer<a name="line.244"></a>
-<span class="sourceLineNo">245</span>   * {@link CacheConfig#CacheConfig(Configuration, ColumnFamilyDescriptor)}<a name="line.245"></a>
-<span class="sourceLineNo">246</span>   * @see #CacheConfig(Configuration, ColumnFamilyDescriptor)<a name="line.246"></a>
-<span class="sourceLineNo">247</span>   * @param conf hbase configuration<a name="line.247"></a>
-<span class="sourceLineNo">248</span>   */<a name="line.248"></a>
-<span class="sourceLineNo">249</span>  public CacheConfig(Configuration conf) {<a name="line.249"></a>
-<span class="sourceLineNo">250</span>    this(CacheConfig.instantiateBlockCache(conf),<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ),<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        DEFAULT_IN_MEMORY, // This is a family-level setting so can't be set<a name="line.252"></a>
-<span class="sourceLineNo">253</span>                           // strictly from conf<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_DATA_ON_WRITE),<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        conf.getBoolean(CACHE_INDEX_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_INDEXES_ON_WRITE),<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        conf.getBoolean(CACHE_BLOOM_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_BLOOMS_ON_WRITE),<a name="line.256"></a>
-<span class="sourceLineNo">257</span>        conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY, DEFAULT_EVICT_ON_CLOSE),<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        conf.getBoolean(CACHE_DATA_BLOCKS_COMPRESSED_KEY, DEFAULT_CACHE_DATA_COMPRESSED),<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        conf.getBoolean(PREFETCH_BLOCKS_ON_OPEN_KEY, DEFAULT_PREFETCH_ON_OPEN),<a name="line.259"></a>
-<span class="sourceLineNo">260</span>        conf.getBoolean(DROP_BEHIND_CACHE_COMPACTION_KEY, DROP_BEHIND_CACHE_COMPACTION_DEFAULT)<a name="line.260"></a>
-<span class="sourceLineNo">261</span>     );<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    LOG.info("Created cacheConfig: " + this);<a name="line.262"></a>
-<span class="sourceLineNo">263</span>  }<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>   * Create a block cache configuration with the specified cache and configuration parameters.<a name="line.266"></a>
-<span class="sourceLineNo">267</span>   * @param blockCache reference to block cache, null if completely disabled<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   * @param cacheDataOnRead whether DATA blocks should be cached on read (we always cache INDEX<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   *          blocks and BLOOM blocks; this cannot be disabled).<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * @param inMemory whether blocks should be flagged as in-memory<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   * @param cacheDataOnWrite whether data blocks should be cached on write<a name="line.271"></a>
-<span class="sourceLineNo">272</span>   * @param cacheIndexesOnWrite whether index blocks should be cached on write<a name="line.272"></a>
-<span class="sourceLineNo">273</span>   * @param cacheBloomsOnWrite whether blooms should be cached on write<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * @param evictOnClose whether blocks should be evicted when HFile is closed<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   * @param cacheDataCompressed whether to store blocks as compressed in the cache<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * @param prefetchOnOpen whether to prefetch blocks upon open<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   * @param cacheDataInL1 If more than one cache tier deployed, if true, cache this column families<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   *          data blocks up in the L1 tier.<a name="line.278"></a>
-<span class="sourceLineNo">279</span>   * @param dropBehindCompaction indicate that we should set drop behind to true when open a store<a name="line.279"></a>
-<span class="sourceLineNo">280</span>   *          file reader for compaction<a name="line.280"></a>
-<span class="sourceLineNo">281</span>   */<a name="line.281"></a>
-<span class="sourceLineNo">282</span>  CacheConfig(final BlockCache blockCache,<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      final boolean cacheDataOnRead, final boolean inMemory,<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      final boolean cacheDataOnWrite, final boolean cacheIndexesOnWrite,<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      final boolean cacheBloomsOnWrite, final boolean evictOnClose,<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      final boolean cacheDataCompressed, final boolean prefetchOnOpen,<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      final boolean dropBehindCompaction) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    this.blockCache = blockCache;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    this.cacheDataOnRead = cacheDataOnRead;<a name="line.289"></a>
-<span class="sourceLineNo">290</span>    this.inMemory = inMemory;<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    this.cacheDataOnWrite = cacheDataOnWrite;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    this.cacheIndexesOnWrite = cacheIndexesOnWrite;<a name="line.292"></a>
-<span class="sourceLineNo">293</span>    this.cacheBloomsOnWrite = cacheBloomsOnWrite;<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    this.evictOnClose = evictOnClose;<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    this.cacheDataCompressed = cacheDataCompressed;<a name="line.295"></a>
-<span class="sourceLineNo">296</span>    this.prefetchOnOpen = prefetchOnOpen;<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    this.dropBehindCompaction = dropBehindCompaction;<a name="line.297"></a>
-<span class="sourceLineNo">298</span>  }<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>   * Constructs a cache configuration copied from the specified configuration.<a name="line.301"></a>
-<span class="sourceLineNo">302</span>   * @param cacheConf<a name="line.302"></a>
-<span class="sourceLineNo">303</span>   */<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  public CacheConfig(CacheConfig cacheConf) {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>    this(cacheConf.blockCache, cacheConf.cacheDataOnRead, cacheConf.inMemory,<a name="line.305"></a>
-<span class="sourceLineNo">306</span>        cacheConf.cacheDataOnWrite, cacheConf.cacheIndexesOnWrite,<a name="line.306"></a>
-<span class="sourceLineNo">307</span>        cacheConf.cacheBloomsOnWrite, cacheConf.evictOnClose,<a name="line.307"></a>
-<span class="sourceLineNo">308</span>        cacheConf.cacheDataCompressed, cacheConf.prefetchOnOpen,<a name="line.308"></a>
-<span class="sourceLineNo">309</span>        cacheConf.dropBehindCompaction);<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>  private CacheConfig() {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    this(null, false, false, false, false, false, false, false, false, false);<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>  /**<a name="line.316"></a>
-<span class="sourceLineNo">317</span>   * Checks whether the block cache is enabled.<a name="line.317"></a>
-<span class="sourceLineNo">318</span>   */<a name="line.318"></a>
-<span class="sourceLineNo">319</span>  public boolean isBlockCacheEnabled() {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    return this.blockCache != null;<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>  /**<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * Returns the block cache.<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   * @return the block cache, or null if caching is completely disabled<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public BlockCache getBlockCache() {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    return this.blockCache;<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>   * Returns whether the DATA blocks of this HFile should be cached on read or not (we always<a name="line.332"></a>
-<span class="sourceLineNo">333</span>   * cache the meta blocks, the INDEX and BLOOM blocks).<a name="line.333"></a>
-<span class="sourceLineNo">334</span>   * @return true if blocks should be cached on read, false if not<a name="line.334"></a>
-<span class="sourceLineNo">335</span>   */<a name="line.335"></a>
-<span class="sourceLineNo">336</span>  public boolean shouldCacheDataOnRead() {<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    return isBlockCacheEnabled() &amp;&amp; cacheDataOnRead;<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>  public boolean shouldDropBehindCompaction() {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>    return dropBehindCompaction;<a name="line.341"></a>
-<span class="sourceLineNo">342</span>  }<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>   * Should we cache a block of a particular category? We always cache<a name="line.345"></a>
-<span class="sourceLineNo">346</span>   * important blocks such as index blocks, as long as the block cache is<a name="line.346"></a>
-<span class="sourceLineNo">347</span>   * available.<a name="line.347"></a>
+<span class="sourceLineNo">211</span>  /**<a name="line.211"></a>
+<span class="sourceLineNo">212</span>   * Create a cache configuration using the specified configuration object and<a name="line.212"></a>
+<span class="sourceLineNo">213</span>   * family descriptor.<a name="line.213"></a>
+<span class="sourceLineNo">214</span>   * @param conf hbase configuration<a name="line.214"></a>
+<span class="sourceLineNo">215</span>   * @param family column family configuration<a name="line.215"></a>
+<span class="sourceLineNo">216</span>   */<a name="line.216"></a>
+<span class="sourceLineNo">217</span>  public CacheConfig(Configuration conf, ColumnFamilyDescriptor family) {<a name="line.217"></a>
+<span class="sourceLineNo">218</span>    this(CacheConfig.instantiateBlockCache(conf),<a name="line.218"></a>
+<span class="sourceLineNo">219</span>        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ)<a name="line.219"></a>
+<span class="sourceLineNo">220</span>           &amp;&amp; family.isBlockCacheEnabled(),<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        family.isInMemory(),<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        // For the following flags we enable them regardless of per-schema settings<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        // if they are enabled in the global configuration.<a name="line.223"></a>
+<span class="sourceLineNo">224</span>        conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY,<a name="line.224"></a>
+<span class="sourceLineNo">225</span>            DEFAULT_CACHE_DATA_ON_WRITE) || family.isCacheDataOnWrite(),<a name="line.225"></a>
+<span class="sourceLineNo">226</span>        conf.getBoolean(CACHE_INDEX_BLOCKS_ON_WRITE_KEY,<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            DEFAULT_CACHE_INDEXES_ON_WRITE) || family.isCacheIndexesOnWrite(),<a name="line.227"></a>
+<span class="sourceLineNo">228</span>        conf.getBoolean(CACHE_BLOOM_BLOCKS_ON_WRITE_KEY,<a name="line.228"></a>
+<span class="sourceLineNo">229</span>            DEFAULT_CACHE_BLOOMS_ON_WRITE) || family.isCacheBloomsOnWrite(),<a name="line.229"></a>
+<span class="sourceLineNo">230</span>        conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY,<a name="line.230"></a>
+<span class="sourceLineNo">231</span>            DEFAULT_EVICT_ON_CLOSE) || family.isEvictBlocksOnClose(),<a name="line.231"></a>
+<span class="sourceLineNo">232</span>        conf.getBoolean(CACHE_DATA_BLOCKS_COMPRESSED_KEY, DEFAULT_CACHE_DATA_COMPRESSED),<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        conf.getBoolean(PREFETCH_BLOCKS_ON_OPEN_KEY,<a name="line.233"></a>
+<span class="sourceLineNo">234</span>            DEFAULT_PREFETCH_ON_OPEN) || family.isPrefetchBlocksOnOpen(),<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        conf.getBoolean(DROP_BEHIND_CACHE_COMPACTION_KEY, DROP_BEHIND_CACHE_COMPACTION_DEFAULT)<a name="line.235"></a>
+<span class="sourceLineNo">236</span>     );<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    LOG.info("Created cacheConfig for " + family.getNameAsString() + ": " + this);<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>  /**<a name="line.240"></a>
+<span class="sourceLineNo">241</span>   * Create a cache configuration using the specified configuration object and<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   * defaults for family level settings. Only use if no column family context. Prefer<a name="line.242"></a>
+<span class="sourceLineNo">243</span>   * {@link CacheConfig#CacheConfig(Configuration, ColumnFamilyDescriptor)}<a name="line.243"></a>
+<span class="sourceLineNo">244</span>   * @see #CacheConfig(Configuration, ColumnFamilyDescriptor)<a name="line.244"></a>
+<span class="sourceLineNo">245</span>   * @param conf hbase configuration<a name="line.245"></a>
+<span class="sourceLineNo">246</span>   */<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  public CacheConfig(Configuration conf) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>    this(conf, true);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>  }<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>  public CacheConfig(Configuration conf, boolean enableBlockCache) {<a name="line.251"></a>
+<span class="sourceLineNo">252</span>    this(conf, enableBlockCache,<a name="line.252"></a>
+<span class="sourceLineNo">253</span>        conf.getBoolean(CACHE_DATA_ON_READ_KEY, DEFAULT_CACHE_DATA_ON_READ),<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        DEFAULT_IN_MEMORY, // This is a family-level setting so can't be set<a name="line.254"></a>
+<span class="sourceLineNo">255</span>                           // strictly from conf<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        conf.getBoolean(CACHE_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_DATA_ON_WRITE),<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        conf.getBoolean(CACHE_INDEX_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_INDEXES_ON_WRITE),<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        conf.getBoolean(CACHE_BLOOM_BLOCKS_ON_WRITE_KEY, DEFAULT_CACHE_BLOOMS_ON_WRITE),<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        conf.getBoolean(EVICT_BLOCKS_ON_CLOSE_KEY, DEFAULT_EVICT_ON_CLOSE),<a name="line.259"></a>
+<span class="sourceLineNo">260</span>        conf.getBoolean(CACHE_DATA_BLOCKS_COMPRESSED_KEY, DEFAULT_CACHE_DATA_COMPRESSED),<a name="line.260"></a>
+<span class="sourceLineNo">261</span>        conf.getBoolean(PREFETCH_BLOCKS_ON_OPEN_KEY, DEFAULT_PREFETCH_ON_OPEN),<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        conf.getBoolean(DROP_BEHIND_CACHE_COMPACTION_KEY, DROP_BEHIND_CACHE_COMPACTION_DEFAULT));<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    LOG.info("Created cacheConfig: " + this);<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>  private CacheConfig(Configuration conf, boolean enableBlockCache,<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      final boolean cacheDataOnRead, final boolean inMemory,<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      final boolean cacheDataOnWrite, final boolean cacheIndexesOnWrite,<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      final boolean cacheBloomsOnWrite, final boolean evictOnClose,<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      final boolean cacheDataCompressed, final boolean prefetchOnOpen,<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      final boolean dropBehindCompaction) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    if (enableBlockCache) {<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      this.blockCache = CacheConfig.instantiateBlockCache(conf);<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    } else {<a name="line.274"></a>
+<span class="sourceLineNo">275</span>      this.blockCache = null;<a name="line.275"></a>
+<span class="sourceLineNo">276</span>    }<a name="line.276"></a>
+<span class="sourceLineNo">277</span>    this.cacheDataOnRead = cacheDataOnRead;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>    this.inMemory = inMemory;<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    this.cacheDataOnWrite = cacheDataOnWrite;<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    this.cacheIndexesOnWrite = cacheIndexesOnWrite;<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    this.cacheBloomsOnWrite = cacheBloomsOnWrite;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    this.evictOnClose = evictOnClose;<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    this.cacheDataCompressed = cacheDataCompressed;<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    this.prefetchOnOpen = prefetchOnOpen;<a name="line.284"></a>
+<span class="sourceLineNo">285</span>    this.dropBehindCompaction = dropBehindCompaction;<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>   * Create a block cache configuration with the specified cache and configuration parameters.<a name="line.289"></a>
+<span class="sourceLineNo">290</span>   * @param blockCache reference to block cache, null if completely disabled<a name="line.290"></a>
+<span class="sourceLineNo">291</span>   * @param cacheDataOnRead whether DATA blocks should be cached on read (we always cache INDEX<a name="line.291"></a>
+<span class="sourceLineNo">292</span>   *          blocks and BLOOM blocks; this cannot be disabled).<a name="line.292"></a>
+<span class="sourceLineNo">293</span>   * @param inMemory whether blocks should be flagged as in-memory<a name="line.293"></a>
+<span class="sourceLineNo">294</span>   * @param cacheDataOnWrite whether data blocks should be cached on write<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * @param cacheIndexesOnWrite whether index blocks should be cached on write<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   * @param cacheBloomsOnWrite whether blooms should be cached on write<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   * @param evictOnClose whether blocks should be evicted when HFile is closed<a name="line.297"></a>
+<span class="sourceLineNo">298</span>   * @param cacheDataCompressed whether to store blocks as compressed in the cache<a name="line.298"></a>
+<span class="sourceLineNo">299</span>   * @param prefetchOnOpen whether to prefetch blocks upon open<a name="line.299"></a>
+<span class="sourceLineNo">300</span>   * @param dropBehindCompaction indicate that we should set drop behind to true when open a store<a name="line.300"></a>
+<span class="sourceLineNo">301</span>   *          file reader for compaction<a name="line.301"></a>
+<span class="sourceLineNo">302</span>   */<a name="line.302"></a>
+<span class="sourceLineNo">303</span>  @VisibleForTesting<a name="line.303"></a>
+<span class="sourceLineNo">304</span>  CacheConfig(final BlockCache blockCache,<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      final boolean cacheDataOnRead, final boolean inMemory,<a name="line.305"></a>
+<span class="sourceLineNo">306</span>      final boolean cacheDataOnWrite, final boolean cacheIndexesOnWrite,<a name="line.306"></a>
+<span class="sourceLineNo">307</span>      final boolean cacheBloomsOnWrite, final boolean evictOnClose,<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      final boolean cacheDataCompressed, final boolean prefetchOnOpen,<a name="line.308"></a>
+<span class="sourceLineNo">309</span>      final boolean dropBehindCompaction) {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    this.blockCache = blockCache;<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    this.cacheDataOnRead = cacheDataOnRead;<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    this.inMemory = inMemory;<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    this.cacheDataOnWrite = cacheDataOnWrite;<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    this.cacheIndexesOnWrite = cacheIndexesOnWrite;<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    this.cacheBloomsOnWrite = cacheBloomsOnWrite;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>    this.evictOnClose = evictOnClose;<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    this.cacheDataCompressed = cacheDataCompressed;<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    this.prefetchOnOpen = prefetchOnOpen;<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    this.dropBehindCompaction = dropBehindCompaction;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  }<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>   * Constructs a cache configuration copied from the specified configuration.<a name="line.323"></a>
+<span class="sourceLineNo">324</span>   * @param cacheConf<a name="line.324"></a>
+<span class="sourceLineNo">325</span>   */<a name="line.325"></a>
+<span class="sourceLineNo">326</span>  public CacheConfig(CacheConfig cacheConf) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    this(cacheConf.blockCache, cacheConf.cacheDataOnRead, cacheConf.inMemory,<a name="line.327"></a>
+<span class="sourceLineNo">328</span>        cacheConf.cacheDataOnWrite, cacheConf.cacheIndexesOnWrite,<a name="line.328"></a>
+<span class="sourceLineNo">329</span>        cacheConf.cacheBloomsOnWrite, cacheConf.evictOnClose,<a name="line.329"></a>
+<span class="sourceLineNo">330</span>        cacheConf.cacheDataCompressed, cacheConf.prefetchOnOpen,<a name="line.330"></a>
+<span class="sourceLineNo">331</span>        cacheConf.dropBehindCompaction);<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 CacheConfig() {<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    this(null, false, false, false, false, false, false, false, false, false);<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>   * Checks whether the block cache is enabled.<a name="line.339"></a>
+<span class="sourceLineNo">340</span>   */<a name="line.340"></a>
+<span class="sourceLineNo">341</span>  public boolean isBlockCacheEnabled() {<a name="line.341"></a>
+<span class="sourceLineNo">342</span>    return this.blockCache != null;<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>  /**<a name="line.345"></a>
+<span class="sourceLineNo">346</span>   * Returns the block cache.<a name="line.346"></a>
+<span class="sourceLineNo">347</span>   * @return the block cache, or null if caching is completely disabled<a name="line.347"></a>
 <span class="sourceLineNo">348</span>   */<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  public boolean shouldCacheBlockOnRead(BlockCategory category) {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    return isBlockCacheEnabled()<a name="line.350"></a>
-<span class="sourceLineNo">351</span>        &amp;&amp; (cacheDataOnRead ||<a name="line.351"></a>
-<span class="sourceLineNo">352</span>            category == BlockCategory.INDEX ||<a name="line.352"></a>
-<span class="sourceLineNo">353</span>            category == BlockCategory.BLOOM ||<a name="line.353"></a>
-<span class="sourceLineNo">354</span>            (prefetchOnOpen &amp;&amp;<a name="line.354"></a>
-<span class="sourceLineNo">355</span>                (category != BlockCategory.META &amp;&amp;<a name="line.355"></a>
-<span class="sourceLineNo">356</span>                 category != BlockCategory.UNKNOWN)));<a name="line.356"></a>
-<span class="sourceLineNo">357</span>  }<a name="line.357"></a>
-<span class="sourceLineNo">358</span><a name="line.358"></a>
-<span class="sourceLineNo">359</span>  /**<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   * @return true if blocks in this file should be flagged as in-memory<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   */<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  public boolean isInMemory() {<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    return isBlockCacheEnabled() &amp;&amp; this.inMemory;<a name="line.363"></a>
+<span class="sourceLineNo">349</span>  public BlockCache getBlockCache() {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    return this.blockCache;<a name="line.350"></a>
+<span class="sourceLineNo">351</span>  }<a name="line.351"></a>
+<span class="sourceLineNo">352</span><a name="line.352"></a>
+<span class="sourceLineNo">353</span>  /**<a name="line.353"></a>
+<span class="sourceLineNo">354</span>   * Returns whether the DATA blocks of this HFile should be cached on read or not (we always<a name="line.354"></a>
+<span class="sourceLineNo">355</span>   * cache the meta blocks, the INDEX and BLOOM blocks).<a name="line.355"></a>
+<span class="sourceLineNo">356</span>   * @return true if blocks should be cached on read, false if not<a name="line.356"></a>
+<span class="sourceLineNo">357</span>   */<a name="line.357"></a>
+<span class="sourceLineNo">358</span>  public boolean shouldCacheDataOnRead() {<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    return isBlockCacheEnabled() &amp;&amp; cacheDataOnRead;<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>  public boolean shouldDropBehindCompaction() {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    return dropBehindCompaction;<a name="line.363"></a>
 <span class="sourceLineNo">364</span>  }<a name="line.364"></a>
 <span class="sourceLineNo">365</span><a name="line.365"></a>
 <span class="sourceLineNo">366</span>  /**<a name="line.366"></a>
-<span class="sourceLineNo">367</span>   * @return true if data blocks should be written to the cache when an HFile is<a name="line.367"></a>
-<span class="sourceLineNo">368</span>   *         written, false if not<a name="line.368"></a>
-<span class="sourceLineNo">369</span>   */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  public boolean shouldCacheDataOnWrite() {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheDataOnWrite;<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>  /**<a name="line.374"></a>
-<span class="sourceLineNo">375</span>   * Only used for testing.<a name="line.375"></a>
-<span class="sourceLineNo">376</span>   * @param cacheDataOnWrite whether data blocks should be written to the cache<a name="line.376"></a>
-<span class="sourceLineNo">377</span>   *                         when an HFile is written<a name="line.377"></a>
-<span class="sourceLineNo">378</span>   */<a name="line.378"></a>
-<span class="sourceLineNo">379</span>  @VisibleForTesting<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  public void setCacheDataOnWrite(boolean cacheDataOnWrite) {<a name="line.380"></a>
-<span class="sourceLineNo">381</span>    this.cacheDataOnWrite = cacheDataOnWrite;<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>  /**<a name="line.384"></a>
-<span class="sourceLineNo">385</span>   * @return true if index blocks should be written to the cache when an HFile<a name="line.385"></a>
-<span class="sourceLineNo">386</span>   *         is written, false if not<a name="line.386"></a>
-<span class="sourceLineNo">387</span>   */<a name="line.387"></a>
-<span class="sourceLineNo">388</span>  public boolean shouldCacheIndexesOnWrite() {<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheIndexesOnWrite;<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>   * @return true if bloom blocks should be written to the cache when an HFile<a name="line.393"></a>
-<span class="sourceLineNo">394</span>   *         is written, false if not<a name="line.394"></a>
-<span class="sourceLineNo">395</span>   */<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  public boolean shouldCacheBloomsOnWrite() {<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheBloomsOnWrite;<a name="line.397"></a>
-<span class="sourceLineNo">398</span>  }<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>   * @return true if blocks should be evicted from the cache when an HFile<a name="line.401"></a>
-<span class="sourceLineNo">402</span>   *         reader is closed, false if not<a name="line.402"></a>
-<span class="sourceLineNo">403</span>   */<a name="line.403"></a>
-<span class="sourceLineNo">404</span>  public boolean shouldEvictOnClose() {<a name="line.404"></a>
-<span class="sourceLineNo">405</span>    return isBlockCacheEnabled() &amp;&amp; this.evictOnClose;<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>   * Only used for testing.<a name="line.409"></a>
-<span class="sourceLineNo">410</span>   * @param evictOnClose whether blocks should be evicted from the cache when an<a name="line.410"></a>
-<span class="sourceLineNo">411</span>   *                     HFile reader is closed<a name="line.411"></a>
-<span class="sourceLineNo">412</span>   */<a name="line.412"></a>
-<span class="sourceLineNo">413</span>  public void setEvictOnClose(boolean evictOnClose) {<a name="line.413"></a>
-<span class="sourceLineNo">414</span>    this.evictOnClose = evictOnClose;<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>  /**<a name="line.417"></a>
-<span class="sourceLineNo">418</span>   * @return true if data blocks should be compressed in the cache, false if not<a name="line.418"></a>
-<span class="sourceLineNo">419</span>   */<a name="line.419"></a>
-<span class="sourceLineNo">420</span>  public boolean shouldCacheDataCompressed() {<a name="line.420"></a>
-<span class="sourceLineNo">421</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<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>  /**<a name="line.424"></a>
-<span class="sourceLineNo">425</span>   * @return true if this {@link BlockCategory} should be compressed in blockcache, false otherwise<a name="line.425"></a>
-<span class="sourceLineNo">426</span>   */<a name="line.426"></a>
-<span class="sourceLineNo">427</span>  public boolean shouldCacheCompressed(BlockCategory category) {<a name="line.427"></a>
-<span class="sourceLineNo">428</span>    if (!isBlockCacheEnabled()) return false;<a name="line.428"></a>
-<span class="sourceLineNo">429</span>    switch (category) {<a name="line.429"></a>
-<span class="sourceLineNo">430</span>      case DATA:<a name="line.430"></a>
-<span class="sourceLineNo">431</span>        return this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<a name="line.431"></a>
-<span class="sourceLineNo">432</span>      default:<a name="line.432"></a>
-<span class="sourceLineNo">433</span>        return false;<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><a name="line.436"></a>
-<span class="sourceLineNo">437</span>  /**<a name="line.437"></a>
-<span class="sourceLineNo">438</span>   * @return true if blocks should be prefetched into the cache on open, false if not<a name="line.438"></a>
-<span class="sourceLineNo">439</span>   */<a name="line.439"></a>
-<span class="sourceLineNo">440</span>  public boolean shouldPrefetchOnOpen() {<a name="line.440"></a>
-<span class="sourceLineNo">441</span>    return isBlockCacheEnabled() &amp;&amp; this.prefetchOnOpen;<a name="line.441"></a>
-<span class="sourceLineNo">442</span>  }<a name="line.442"></a>
-<span class="sourceLineNo">443</span><a name="line.443"></a>
-<span class="sourceLineNo">444</span>  /**<a name="line.444"></a>
-<span class="sourceLineNo">445</span>   * Return true if we may find this type of block in block cache.<a name="line.445"></a>
-<span class="sourceLineNo">446</span>   * &lt;p&gt;<a name="line.446"></a>
-<span class="sourceLineNo">447</span>   * TODO: today {@code family.isBlockCacheEnabled()} only means {@code cacheDataOnRead}, so here we<a name="line.447"></a>
-<span class="sourceLineNo">448</span>   * consider lots of other configurations such as {@code cacheDataOnWrite}. We should fix this in<a name="line.448"></a>
-<span class="sourceLineNo">449</span>   * the future, {@code cacheDataOnWrite} should honor the CF level {@code isBlockCacheEnabled}<a name="line.449"></a>
-<span class="sourceLineNo">450</span>   * configuration.<a name="line.450"></a>
-<span class="sourceLineNo">451</span>   */<a name="line.451"></a>
-<span class="sourceLineNo">452</span>  public boolean shouldReadBlockFromCache(BlockType blockType) {<a name="line.452"></a>
-<span class="sourceLineNo">453</span>    if (!isBlockCacheEnabled()) {<a name="line.453"></a>
-<span class="sourceLineNo">454</span>      return false;<a name="line.454"></a>
-<span class="sourceLineNo">455</span>    }<a name="line.455"></a>
-<span class="sourceLineNo">456</span>    if (cacheDataOnRead) {<a name="line.456"></a>
-<span class="sourceLineNo">457</span>      return true;<a name="line.457"></a>
-<span class="sourceLineNo">458</span>    }<a name="line.458"></a>
-<span class="sourceLineNo">459</span>    if (prefetchOnOpen) {<a name="line.459"></a>
-<span class="sourceLineNo">460</span>      return true;<a name="line.460"></a>
-<span class="sourceLineNo">461</span>    }<a name="line.461"></a>
-<span class="sourceLineNo">462</span>    if (cacheDataOnWrite) {<a name="line.462"></a>
-<span class="sourceLineNo">463</span>      return true;<a name="line.463"></a>
-<span class="sourceLineNo">464</span>    }<a name="line.464"></a>
-<span class="sourceLineNo">465</span>    if (blockType == null) {<a name="line.465"></a>
-<span class="sourceLineNo">466</span>      return true;<a name="line.466"></a>
-<span class="sourceLineNo">467</span>    }<a name="line.467"></a>
-<span class="sourceLineNo">468</span>    if (blockType.getCategory() == BlockCategory.BLOOM ||<a name="line.468"></a>
-<span class="sourceLineNo">469</span>            blockType.getCategory() == BlockCategory.INDEX) {<a name="line.469"></a>
-<span class="sourceLineNo">470</span>      return true;<a name="line.470"></a>
-<span class="sourceLineNo">471</span>    }<a name="line.471"></a>
-<span class="sourceLineNo">472</span>    return false;<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>  /**<a name="line.475"></a>
-<span class="sourceLineNo">476</span>   * If we make sure the block could not be cached, we will not acquire the lock<a name="line.476"></a>
-<span class="sourceLineNo">477</span>   * otherwise we will acquire lock<a name="line.477"></a>
-<span class="sourceLineNo">478</span>   */<a name="line.478"></a>
-<span class="sourceLineNo">479</span>  public boolean shouldLockOnCacheMiss(BlockType blockType) {<a name="line.479"></a>
-<span class="sourceLineNo">480</span>    if (blockType == null) {<a name="line.480"></a>
-<span class="sourceLineNo">481</span>      return true;<a name="line.481"></a>
-<span class="sourceLineNo">482</span>    }<a name="line.482"></a>
-<span class="sourceLineNo">483</span>    return shouldCacheBlockOnRead(blockType.getCategory());<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 String toString() {<a name="line.487"></a>
-<span class="sourceLineNo">488</span>    if (!isBlockCacheEnabled()) {<a name="line.488"></a>
-<span class="sourceLineNo">489</span>      return "CacheConfig:disabled";<a name="line.489"></a>
-<span class="sourceLineNo">490</span>    }<a name="line.490"></a>
-<span class="sourceLineNo">491</span>    return "blockCache=" + getBlockCache() +<a name="line.491"></a>
-<span class="sourceLineNo">492</span>      ", cacheDataOnRead=" + shouldCacheDataOnRead() +<a name="line.492"></a>
-<span class="sourceLineNo">493</span>      ", cacheDataOnWrite=" + shouldCacheDataOnWrite() +<a name="line.493"></a>
-<span class="sourceLineNo">494</span>      ", cacheIndexesOnWrite=" + shouldCacheIndexesOnWrite() +<a name="line.494"></a>
-<span class="sourceLineNo">495</span>      ", cacheBloomsOnWrite=" + shouldCacheBloomsOnWrite() +<a name="line.495"></a>
-<span class="sourceLineNo">496</span>      ", cacheEvictOnClose=" + shouldEvictOnClose() +<a name="line.496"></a>
-<span class="sourceLineNo">497</span>      ", cacheDataCompressed=" + shouldCacheDataCompressed() +<a name="line.497"></a>
-<span class="sourceLineNo">498</span>      ", prefetchOnOpen=" + shouldPrefetchOnOpen();<a name="line.498"></a>
-<span class="sourceLineNo">499</span>  }<a name="line.499"></a>
-<span class="sourceLineNo">500</span><a name="line.500"></a>
-<span class="sourceLineNo">501</span>  // Static block cache reference and methods<a name="line.501"></a>
-<span class="sourceLineNo">502</span><a name="line.502"></a>
-<span class="sourceLineNo">503</span>  /**<a name="line.503"></a>
-<span class="sourceLineNo">504</span>   * Static reference to the block cache, or null if no caching should be used<a name="line.504"></a>
-<span class="sourceLineNo">505</span>   * at all.<a name="line.505"></a>
-<span class="sourceLineNo">506</span>   */<a name="line.506"></a>
-<span class="sourceLineNo">507</span>  // Clear this if in tests you'd make more than one block cache instance.<a name="line.507"></a>
-<span class="sourceLineNo">508</span>  @VisibleForTesting<a name="line.508"></a>
-<span class="sourceLineNo">509</span>  static BlockCache GLOBAL_BLOCK_CACHE_INSTANCE;<a name="line.509"></a>
-<span class="sourceLineNo">510</span>  private static LruBlockCache ONHEAP_CACHE_INSTANCE = null;<a name="line.510"></a>
-<span class="sourceLineNo">511</span>  private static BlockCache L2_CACHE_INSTANCE = null;// Can be BucketCache or External cache.<a name="line.511"></a>
-<span class="sourceLineNo">512</span><a name="line.512"></a>
-<span class="sourceLineNo">513</span>  /** Boolean whether we have disabled the block cache entirely. */<a name="line.513"></a>
-<span class="sourceLineNo">514</span>  @VisibleForTesting<a name="line.514"></a>
-<span class="sourceLineNo">515</span>  static boolean blockCacheDisabled = false;<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>   * @param c Configuration to use.<a name="line.518"></a>
-<span class="sourceLineNo">519</span>   * @return An L1 instance.  Currently an instance of LruBlockCache.<a name="line.519"></a>
-<span class="sourceLineNo">520</span>   */<a name="line.520"></a>
-<span class="sourceLineNo">521</span>  public static LruBlockCache getOnHeapCache(final Configuration c) {<a name="line.521"></a>
-<span class="sourceLineNo">522</span>    return getOnHeapCacheInternal(c);<a name="line.522"></a>
-<span class="sourceLineNo">523</span>  }<a name="line.523"></a>
+<span class="sourceLineNo">367</span>   * Should we cache a block of a particular category? We always cache<a name="line.367"></a>
+<span class="sourceLineNo">368</span>   * important blocks such as index blocks, as long as the block cache is<a name="line.368"></a>
+<span class="sourceLineNo">369</span>   * available.<a name="line.369"></a>
+<span class="sourceLineNo">370</span>   */<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  public boolean shouldCacheBlockOnRead(BlockCategory category) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    return isBlockCacheEnabled()<a name="line.372"></a>
+<span class="sourceLineNo">373</span>        &amp;&amp; (cacheDataOnRead ||<a name="line.373"></a>
+<span class="sourceLineNo">374</span>            category == BlockCategory.INDEX ||<a name="line.374"></a>
+<span class="sourceLineNo">375</span>            category == BlockCategory.BLOOM ||<a name="line.375"></a>
+<span class="sourceLineNo">376</span>            (prefetchOnOpen &amp;&amp;<a name="line.376"></a>
+<span class="sourceLineNo">377</span>                (category != BlockCategory.META &amp;&amp;<a name="line.377"></a>
+<span class="sourceLineNo">378</span>                 category != BlockCategory.UNKNOWN)));<a name="line.378"></a>
+<span class="sourceLineNo">379</span>  }<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span class="sourceLineNo">381</span>  /**<a name="line.381"></a>
+<span class="sourceLineNo">382</span>   * @return true if blocks in this file should be flagged as in-memory<a name="line.382"></a>
+<span class="sourceLineNo">383</span>   */<a name="line.383"></a>
+<span class="sourceLineNo">384</span>  public boolean isInMemory() {<a name="line.384"></a>
+<span class="sourceLineNo">385</span>    return isBlockCacheEnabled() &amp;&amp; this.inMemory;<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>   * @return true if data blocks should be written to the cache when an HFile is<a name="line.389"></a>
+<span class="sourceLineNo">390</span>   *         written, false if not<a name="line.390"></a>
+<span class="sourceLineNo">391</span>   */<a name="line.391"></a>
+<span class="sourceLineNo">392</span>  public boolean shouldCacheDataOnWrite() {<a name="line.392"></a>
+<span class="sourceLineNo">393</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheDataOnWrite;<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>  /**<a name="line.396"></a>
+<span class="sourceLineNo">397</span>   * Only used for testing.<a name="line.397"></a>
+<span class="sourceLineNo">398</span>   * @param cacheDataOnWrite whether data blocks should be written to the cache<a name="line.398"></a>
+<span class="sourceLineNo">399</span>   *                         when an HFile is written<a name="line.399"></a>
+<span class="sourceLineNo">400</span>   */<a name="line.400"></a>
+<span class="sourceLineNo">401</span>  @VisibleForTesting<a name="line.401"></a>
+<span class="sourceLineNo">402</span>  public void setCacheDataOnWrite(boolean cacheDataOnWrite) {<a name="line.402"></a>
+<span class="sourceLineNo">403</span>    this.cacheDataOnWrite = cacheDataOnWrite;<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>  /**<a name="line.406"></a>
+<span class="sourceLineNo">407</span>   * @return true if index blocks should be written to the cache when an HFile<a name="line.407"></a>
+<span class="sourceLineNo">408</span>   *         is written, false if not<a name="line.408"></a>
+<span class="sourceLineNo">409</span>   */<a name="line.409"></a>
+<span class="sourceLineNo">410</span>  public boolean shouldCacheIndexesOnWrite() {<a name="line.410"></a>
+<span class="sourceLineNo">411</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheIndexesOnWrite;<a name="line.411"></a>
+<span class="sourceLineNo">412</span>  }<a name="line.412"></a>
+<span class="sourceLineNo">413</span><a name="line.413"></a>
+<span class="sourceLineNo">414</span>  /**<a name="line.414"></a>
+<span class="sourceLineNo">415</span>   * @return true if bloom blocks should be written to the cache when an HFile<a name="line.415"></a>
+<span class="sourceLineNo">416</span>   *         is written, false if not<a name="line.416"></a>
+<span class="sourceLineNo">417</span>   */<a name="line.417"></a>
+<span class="sourceLineNo">418</span>  public boolean shouldCacheBloomsOnWrite() {<a name="line.418"></a>
+<span class="sourceLineNo">419</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheBloomsOnWrite;<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>   * @return true if blocks should be evicted from the cache when an HFile<a name="line.423"></a>
+<span class="sourceLineNo">424</span>   *         reader is closed, false if not<a name="line.424"></a>
+<span class="sourceLineNo">425</span>   */<a name="line.425"></a>
+<span class="sourceLineNo">426</span>  public boolean shouldEvictOnClose() {<a name="line.426"></a>
+<span class="sourceLineNo">427</span>    return isBlockCacheEnabled() &amp;&amp; this.evictOnClose;<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>   * Only used for testing.<a name="line.431"></a>
+<span class="sourceLineNo">432</span>   * @param evictOnClose whether blocks should be evicted from the cache when an<a name="line.432"></a>
+<span class="sourceLineNo">433</span>   *                     HFile reader is closed<a name="line.433"></a>
+<span class="sourceLineNo">434</span>   */<a name="line.434"></a>
+<span class="sourceLineNo">435</span>  public void setEvictOnClose(boolean evictOnClose) {<a name="line.435"></a>
+<span class="sourceLineNo">436</span>    this.evictOnClose = evictOnClose;<a name="line.436"></a>
+<span class="sourceLineNo">437</span>  }<a name="line.437"></a>
+<span class="sourceLineNo">438</span><a name="line.438"></a>
+<span class="sourceLineNo">439</span>  /**<a name="line.439"></a>
+<span class="sourceLineNo">440</span>   * @return true if data blocks should be compressed in the cache, false if not<a name="line.440"></a>
+<span class="sourceLineNo">441</span>   */<a name="line.441"></a>
+<span class="sourceLineNo">442</span>  public boolean shouldCacheDataCompressed() {<a name="line.442"></a>
+<span class="sourceLineNo">443</span>    return isBlockCacheEnabled() &amp;&amp; this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<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">446</span>  /**<a name="line.446"></a>
+<span class="sourceLineNo">447</span>   * @return true if this {@link BlockCategory} should be compressed in blockcache, false otherwise<a name="line.447"></a>
+<span class="sourceLineNo">448</span>   */<a name="line.448"></a>
+<span class="sourceLineNo">449</span>  public boolean shouldCacheCompressed(BlockCategory category) {<a name="line.449"></a>
+<span class="sourceLineNo">450</span>    if (!isBlockCacheEnabled()) return false;<a name="line.450"></a>
+<span class="sourceLineNo">451</span>    switch (category) {<a name="line.451"></a>
+<span class="sourceLineNo">452</span>      case DATA:<a name="line.452"></a>
+<span class="sourceLineNo">453</span>        return this.cacheDataOnRead &amp;&amp; this.cacheDataCompressed;<a name="line.453"></a>
+<span class="sourceLineNo">454</span>      default:<a name="line.454"></a>
+<span class="sourceLineNo">455</span>        return false;<a name="line.455"></a>
+<span class="sourceLineNo">456</span>    }<a name="line.456"></a>
+<span class="sourceLineNo">457</span>  }<a name="line.457"></a>
+<span class="sourceLineNo">458</span><a name="line.458"></a>
+<span class="sourceLineNo">459</span>  /**<a name="line.459"></a>
+<span class="sourceLineNo">460</span>   * @return true if blocks should be prefetched into the cache on open, false if not<a name="line.460"></a>
+<span class="sourceLineNo">461</span>   */<a name="line.461"></a>
+<span class="sourceLineNo">462</span>  public boolean shouldPrefetchOnOpen() {<a name="line.462"></a>
+<span class="sourceLineNo">463</span>    return isBlockCacheEnabled() &amp;&amp; this.prefetchOnOpen;<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>  /**<a name="line.466"></a>
+<span class="sourceLineNo">467</span>   * Return true if we may find this type of block in block cache.<a name="line.467"></a>
+<span class="sourceLineNo">468</span>   * &lt;p&gt;<a name="line.468"></a>
+<span class="sourceLineNo">469</span>   * TODO:

<TRUNCATED>

[37/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index d7a3ead..6ca5195 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -291,10 +291,10 @@
 <th><img src="images/icon_warning_sml.gif" alt="" />&#160;Warnings</th>
 <th><img src="images/icon_error_sml.gif" alt="" />&#160;Errors</th></tr>
 <tr class="b">
-<td>3762</td>
+<td>3772</td>
 <td>0</td>
 <td>0</td>
-<td>15156</td></tr></table></div>
+<td>15150</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -739,1190 +739,1180 @@
 <td>0</td>
 <td>1</td></tr>
 <tr class="a">
-<td><a href="#org.apache.hadoop.hbase.TestCheckTestClasses.java">org/apache/hadoop/hbase/TestCheckTestClasses.java</a></td>
-<td>0</td>
-<td>0</td>
-<td>2</td></tr>
-<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestClassFinder.java">org/apache/hadoop/hbase/TestClassFinder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestClientClusterStatus.java">org/apache/hadoop/hbase/TestClientClusterStatus.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestClientOperationTimeout.java">org/apache/hadoop/hbase/TestClientOperationTimeout.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestClusterPortAssignment.java">org/apache/hadoop/hbase/TestClusterPortAssignment.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestFSTableDescriptorForceCreation.java">org/apache/hadoop/hbase/TestFSTableDescriptorForceCreation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestGlobalMemStoreSize.java">org/apache/hadoop/hbase/TestGlobalMemStoreSize.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestHBaseConfiguration.java">org/apache/hadoop/hbase/TestHBaseConfiguration.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestHBaseTestingUtility.java">org/apache/hadoop/hbase/TestHBaseTestingUtility.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestHColumnDescriptor.java">org/apache/hadoop/hbase/TestHColumnDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestHColumnDescriptorDefaultVersions.java">org/apache/hadoop/hbase/TestHColumnDescriptorDefaultVersions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestHTableDescriptor.java">org/apache/hadoop/hbase/TestHTableDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestIOFencing.java">org/apache/hadoop/hbase/TestIOFencing.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestInfoServers.java">org/apache/hadoop/hbase/TestInfoServers.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestJMXConnectorServer.java">org/apache/hadoop/hbase/TestJMXConnectorServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestKeyValue.java">org/apache/hadoop/hbase/TestKeyValue.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestLocalHBaseCluster.java">org/apache/hadoop/hbase/TestLocalHBaseCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestMetaTableAccessor.java">org/apache/hadoop/hbase/TestMetaTableAccessor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestMetaTableAccessorNoCluster.java">org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestMetaTableLocator.java">org/apache/hadoop/hbase/TestMetaTableLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>41</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestMovedRegionsCleaner.java">org/apache/hadoop/hbase/TestMovedRegionsCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestMultiVersions.java">org/apache/hadoop/hbase/TestMultiVersions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestNamespace.java">org/apache/hadoop/hbase/TestNamespace.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestNodeHealthCheckChore.java">org/apache/hadoop/hbase/TestNodeHealthCheckChore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestPartialResultsFromClientSide.java">org/apache/hadoop/hbase/TestPartialResultsFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>24</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestPerformanceEvaluation.java">org/apache/hadoop/hbase/TestPerformanceEvaluation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestRegionRebalancing.java">org/apache/hadoop/hbase/TestRegionRebalancing.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestSerialization.java">org/apache/hadoop/hbase/TestSerialization.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestServerSideScanMetricsFromClientSide.java">org/apache/hadoop/hbase/TestServerSideScanMetricsFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TestStochasticBalancerJmxMetrics.java">org/apache/hadoop/hbase/TestStochasticBalancerJmxMetrics.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.TestTimeout.java">org/apache/hadoop/hbase/TestTimeout.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.TimestampTestBase.java">org/apache/hadoop/hbase/TimestampTestBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.UnknownRegionException.java">org/apache/hadoop/hbase/UnknownRegionException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.Waiter.java">org/apache/hadoop/hbase/Waiter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.ZKNamespaceManager.java">org/apache/hadoop/hbase/ZKNamespaceManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.ZNodeClearer.java">org/apache/hadoop/hbase/ZNodeClearer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.BackupDriver.java">org/apache/hadoop/hbase/backup/BackupDriver.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.FailedArchiveException.java">org/apache/hadoop/hbase/backup/FailedArchiveException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.HFileArchiver.java">org/apache/hadoop/hbase/backup/HFileArchiver.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.TestBackupMerge.java">org/apache/hadoop/hbase/backup/TestBackupMerge.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.TestHFileArchiving.java">org/apache/hadoop/hbase/backup/TestHFileArchiving.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.example.HFileArchiveManager.java">org/apache/hadoop/hbase/backup/example/HFileArchiveManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.example.LongTermArchivingHFileCleaner.java">org/apache/hadoop/hbase/backup/example/LongTermArchivingHFileCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.example.TableHFileArchiveTracker.java">org/apache/hadoop/hbase/backup/example/TableHFileArchiveTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.example.TestZooKeeperTableArchiveClient.java">org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.example.ZKTableArchiveClient.java">org/apache/hadoop/hbase/backup/example/ZKTableArchiveClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.impl.BackupCommands.java">org/apache/hadoop/hbase/backup/impl/BackupCommands.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.backup.impl.BackupManager.java">org/apache/hadoop/hbase/backup/impl/BackupManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.backup.impl.BackupSystemTable.java">org/apache/hadoop/hbase/backup/impl/BackupSystemTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.Action.java">org/apache/hadoop/hbase/chaos/actions/Action.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.ChangeCompressionAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeCompressionAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.ChangeEncodingAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeEncodingAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.ChangeSplitPolicyAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeSplitPolicyAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.ChangeVersionsAction.java">org/apache/hadoop/hbase/chaos/actions/ChangeVersionsAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.FlushRandomRegionOfTableAction.java">org/apache/hadoop/hbase/chaos/actions/FlushRandomRegionOfTableAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.RestartRandomDataNodeAction.java">org/apache/hadoop/hbase/chaos/actions/RestartRandomDataNodeAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.RollingBatchRestartRsAction.java">org/apache/hadoop/hbase/chaos/actions/RollingBatchRestartRsAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>20</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.SplitAllRegionOfTableAction.java">org/apache/hadoop/hbase/chaos/actions/SplitAllRegionOfTableAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.actions.TruncateTableAction.java">org/apache/hadoop/hbase/chaos/actions/TruncateTableAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.MasterKillingMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MasterKillingMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.MobNoKillMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MobNoKillMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.MobSlowDeterministicMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MobSlowDeterministicMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>24</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.MonkeyConstants.java">org/apache/hadoop/hbase/chaos/factories/MonkeyConstants.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.MonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/MonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.NoKillMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/NoKillMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.ServerKillingMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/ServerKillingMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.SlowDeterministicMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/SlowDeterministicMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>42</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.factories.StressAssignmentManagerMonkeyFactory.java">org/apache/hadoop/hbase/chaos/factories/StressAssignmentManagerMonkeyFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.monkies.PolicyBasedChaosMonkey.java">org/apache/hadoop/hbase/chaos/monkies/PolicyBasedChaosMonkey.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.chaos.policies.PeriodicPolicy.java">org/apache/hadoop/hbase/chaos/policies/PeriodicPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.chaos.policies.TwoConcurrentActionPolicy.java">org/apache/hadoop/hbase/chaos/policies/TwoConcurrentActionPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AbstractClientScanner.java">org/apache/hadoop/hbase/client/AbstractClientScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AbstractResponse.java">org/apache/hadoop/hbase/client/AbstractResponse.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Action.java">org/apache/hadoop/hbase/client/Action.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Admin.java">org/apache/hadoop/hbase/client/Admin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>107</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Append.java">org/apache/hadoop/hbase/client/Append.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncAdmin.java">org/apache/hadoop/hbase/client/AsyncAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncAdminBuilder.java">org/apache/hadoop/hbase/client/AsyncAdminBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncAdminRequestRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncAdminRequestRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncBatchRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncBatchRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncClientScanner.java">org/apache/hadoop/hbase/client/AsyncClientScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncConnectionConfiguration.java">org/apache/hadoop/hbase/client/AsyncConnectionConfiguration.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncConnectionImpl.java">org/apache/hadoop/hbase/client/AsyncConnectionImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncHBaseAdmin.java">org/apache/hadoop/hbase/client/AsyncHBaseAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncMasterRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncMasterRequestRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncMetaRegionLocator.java">org/apache/hadoop/hbase/client/AsyncMetaRegionLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncNonMetaRegionLocator.java">org/apache/hadoop/hbase/client/AsyncNonMetaRegionLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncProcess.java">org/apache/hadoop/hbase/client/AsyncProcess.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncProcessTask.java">org/apache/hadoop/hbase/client/AsyncProcessTask.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncRegionLocator.java">org/apache/hadoop/hbase/client/AsyncRegionLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncRegistryFactory.java">org/apache/hadoop/hbase/client/AsyncRegistryFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncRequestFuture.java">org/apache/hadoop/hbase/client/AsyncRequestFuture.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncRequestFutureImpl.java">org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncRpcRetryingCallerFactory.java">org/apache/hadoop/hbase/client/AsyncRpcRetryingCallerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncScanSingleRegionRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncServerRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncServerRequestRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncSingleRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/AsyncSingleRequestRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncTableImpl.java">org/apache/hadoop/hbase/client/AsyncTableImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.AsyncTableResultScanner.java">org/apache/hadoop/hbase/client/AsyncTableResultScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.BatchErrors.java">org/apache/hadoop/hbase/client/BatchErrors.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.BatchScanResultCache.java">org/apache/hadoop/hbase/client/BatchScanResultCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.BufferingScanResultConsumer.java">org/apache/hadoop/hbase/client/BufferingScanResultConsumer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.CancellableRegionServerCallable.java">org/apache/hadoop/hbase/client/CancellableRegionServerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ClientAsyncPrefetchScanner.java">org/apache/hadoop/hbase/client/ClientAsyncPrefetchScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ClientIdGenerator.java">org/apache/hadoop/hbase/client/ClientIdGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ClientScanner.java">org/apache/hadoop/hbase/client/ClientScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ClientServiceCallable.java">org/apache/hadoop/hbase/client/ClientServiceCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ClientSideRegionScanner.java">org/apache/hadoop/hbase/client/ClientSideRegionScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ClientSimpleScanner.java">org/apache/hadoop/hbase/client/ClientSimpleScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ClientUtil.java">org/apache/hadoop/hbase/client/ClientUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ClusterConnection.java">org/apache/hadoop/hbase/client/ClusterConnection.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ColumnCountOnRowFilter.java">org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ColumnFamilyDescriptor.java">org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ColumnFamilyDescriptorBuilder.java">org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>54</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.CompactType.java">org/apache/hadoop/hbase/client/CompactType.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.CompleteScanResultCache.java">org/apache/hadoop/hbase/client/CompleteScanResultCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ConnectionFactory.java">org/apache/hadoop/hbase/client/ConnectionFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ConnectionImplementation.java">org/apache/hadoop/hbase/client/ConnectionImplementation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ConnectionUtils.java">org/apache/hadoop/hbase/client/ConnectionUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.DelayingRunner.java">org/apache/hadoop/hbase/client/DelayingRunner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Delete.java">org/apache/hadoop/hbase/client/Delete.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Get.java">org/apache/hadoop/hbase/client/Get.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.HBaseAdmin.java">org/apache/hadoop/hbase/client/HBaseAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>96</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.HBaseHbck.java">org/apache/hadoop/hbase/client/HBaseHbck.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.HConnectionTestingUtility.java">org/apache/hadoop/hbase/client/HConnectionTestingUtility.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.HRegionLocator.java">org/apache/hadoop/hbase/client/HRegionLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.HTable.java">org/apache/hadoop/hbase/client/HTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>51</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.HTableMultiplexer.java">org/apache/hadoop/hbase/client/HTableMultiplexer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ImmutableHColumnDescriptor.java">org/apache/hadoop/hbase/client/ImmutableHColumnDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ImmutableHRegionInfo.java">org/apache/hadoop/hbase/client/ImmutableHRegionInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ImmutableHTableDescriptor.java">org/apache/hadoop/hbase/client/ImmutableHTableDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Increment.java">org/apache/hadoop/hbase/client/Increment.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.MasterCallable.java">org/apache/hadoop/hbase/client/MasterCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.MasterCoprocessorRpcChannelImpl.java">org/apache/hadoop/hbase/client/MasterCoprocessorRpcChannelImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.MasterKeepAliveConnection.java">org/apache/hadoop/hbase/client/MasterKeepAliveConnection.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.MetaCache.java">org/apache/hadoop/hbase/client/MetaCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.MetricsConnection.java">org/apache/hadoop/hbase/client/MetricsConnection.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>41</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.MultiAction.java">org/apache/hadoop/hbase/client/MultiAction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.MultiResponse.java">org/apache/hadoop/hbase/client/MultiResponse.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.MultiServerCallable.java">org/apache/hadoop/hbase/client/MultiServerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Mutation.java">org/apache/hadoop/hbase/client/Mutation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>23</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.NoOpRetryableCallerInterceptor.java">org/apache/hadoop/hbase/client/NoOpRetryableCallerInterceptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.NoncedRegionServerCallable.java">org/apache/hadoop/hbase/client/NoncedRegionServerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Operation.java">org/apache/hadoop/hbase/client/Operation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.PackagePrivateFieldAccessor.java">org/apache/hadoop/hbase/client/PackagePrivateFieldAccessor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.PreemptiveFastFailInterceptor.java">org/apache/hadoop/hbase/client/PreemptiveFastFailInterceptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Put.java">org/apache/hadoop/hbase/client/Put.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Query.java">org/apache/hadoop/hbase/client/Query.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.QuotaStatusCalls.java">org/apache/hadoop/hbase/client/QuotaStatusCalls.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RawAsyncHBaseAdmin.java">org/apache/hadoop/hbase/client/RawAsyncHBaseAdmin.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>87</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionAdminServiceCallable.java">org/apache/hadoop/hbase/client/RegionAdminServiceCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionCoprocessorRpcChannel.java">org/apache/hadoop/hbase/client/RegionCoprocessorRpcChannel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionCoprocessorRpcChannelImpl.java">org/apache/hadoop/hbase/client/RegionCoprocessorRpcChannelImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionCoprocessorServiceExec.java">org/apache/hadoop/hbase/client/RegionCoprocessorServiceExec.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionInfo.java">org/apache/hadoop/hbase/client/RegionInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>57</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionInfoBuilder.java">org/apache/hadoop/hbase/client/RegionInfoBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionInfoDisplay.java">org/apache/hadoop/hbase/client/RegionInfoDisplay.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionLocator.java">org/apache/hadoop/hbase/client/RegionLocator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionReplicaUtil.java">org/apache/hadoop/hbase/client/RegionReplicaUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RegionServerCallable.java">org/apache/hadoop/hbase/client/RegionServerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RegionServerCoprocessorRpcChannelImpl.java">org/apache/hadoop/hbase/client/RegionServerCoprocessorRpcChannelImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RequestController.java">org/apache/hadoop/hbase/client/RequestController.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RequestControllerFactory.java">org/apache/hadoop/hbase/client/RequestControllerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Result.java">org/apache/hadoop/hbase/client/Result.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ResultBoundedCompletionService.java">org/apache/hadoop/hbase/client/ResultBoundedCompletionService.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ResultScanner.java">org/apache/hadoop/hbase/client/ResultScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RetriesExhaustedException.java">org/apache/hadoop/hbase/client/RetriesExhaustedException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException.java">org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RetryingCallerInterceptor.java">org/apache/hadoop/hbase/client/RetryingCallerInterceptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ReversedClientScanner.java">org/apache/hadoop/hbase/client/ReversedClientScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ReversedScannerCallable.java">org/apache/hadoop/hbase/client/ReversedScannerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RowAccess.java">org/apache/hadoop/hbase/client/RowAccess.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RowMutations.java">org/apache/hadoop/hbase/client/RowMutations.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RpcRetryingCaller.java">org/apache/hadoop/hbase/client/RpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.java">org/apache/hadoop/hbase/client/RpcRetryingCallerImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.RpcRetryingCallerWithReadReplicas.java">org/apache/hadoop/hbase/client/RpcRetryingCallerWithReadReplicas.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.Scan.java">org/apache/hadoop/hbase/client/Scan.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ScannerCallable.java">org/apache/hadoop/hbase/client/ScannerCallable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ScannerCallableWithReplicas.java">org/apache/hadoop/hbase/client/ScannerCallableWithReplicas.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.SecureBulkLoadClient.java">org/apache/hadoop/hbase/client/SecureBulkLoadClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.ServerStatisticTracker.java">org/apache/hadoop/hbase/client/ServerStatisticTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.ShortCircuitMasterConnection.java">org/apache/hadoop/hbase/client/ShortCircuitMasterConnection.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.SimpleRequestController.java">org/apache/hadoop/hbase/client/SimpleRequestController.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.SimpleScanResultConsumer.java">org/apache/hadoop/hbase/client/SimpleScanResultConsumer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.SyncCoprocessorRpcChannel.java">org/apache/hadoop/hbase/client/SyncCoprocessorRpcChannel.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.Table.java">org/apache/hadoop/hbase/client/Table.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TableDescriptor.java">org/apache/hadoop/hbase/client/TableDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TableDescriptorBuilder.java">org/apache/hadoop/hbase/client/TableDescriptorBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>32</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TableState.java">org/apache/hadoop/hbase/client/TableState.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>35</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAdmin1.java">org/apache/hadoop/hbase/client/TestAdmin1.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>36</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAdmin2.java">org/apache/hadoop/hbase/client/TestAdmin2.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAppendFromClientSide.java">org/apache/hadoop/hbase/client/TestAppendFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncClusterAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncClusterAdminApi.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncNamespaceAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncNamespaceAdminApi.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncProcess.java">org/apache/hadoop/hbase/client/TestAsyncProcess.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncQuotaAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncQuotaAdminApi.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncRegionAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncRegionAdminApi2.java">org/apache/hadoop/hbase/client/TestAsyncRegionAdminApi2.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncReplicationAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncReplicationAdminApi.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncSingleRequestRpcRetryingCaller.java">org/apache/hadoop/hbase/client/TestAsyncSingleRequestRpcRetryingCaller.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncTable.java">org/apache/hadoop/hbase/client/TestAsyncTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncTableAdminApi.java">org/apache/hadoop/hbase/client/TestAsyncTableAdminApi.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncTableAdminApi2.java">org/apache/hadoop/hbase/client/TestAsyncTableAdminApi2.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncTableAdminApi3.java">org/apache/hadoop/hbase/client/TestAsyncTableAdminApi3.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncTableScanMetrics.java">org/apache/hadoop/hbase/client/TestAsyncTableScanMetrics.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAsyncTableScanner.java">org/apache/hadoop/hbase/client/TestAsyncTableScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestAttributes.java">org/apache/hadoop/hbase/client/TestAttributes.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestAvoidCellReferencesIntoShippedBlocks.java">org/apache/hadoop/hbase/client/TestAvoidCellReferencesIntoShippedBlocks.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestBlockEvictionFromClient.java">org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestBufferedMutator.java">org/apache/hadoop/hbase/client/TestBufferedMutator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestCheckAndMutate.java">org/apache/hadoop/hbase/client/TestCheckAndMutate.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientExponentialBackoff.java">org/apache/hadoop/hbase/client/TestClientExponentialBackoff.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientNoCluster.java">org/apache/hadoop/hbase/client/TestClientNoCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>37</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientPushback.java">org/apache/hadoop/hbase/client/TestClientPushback.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientScanner.java">org/apache/hadoop/hbase/client/TestClientScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestClientTimeouts.java">org/apache/hadoop/hbase/client/TestClientTimeouts.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestColumnFamilyDescriptorBuilder.java">org/apache/hadoop/hbase/client/TestColumnFamilyDescriptorBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestConnectionImplementation.java">org/apache/hadoop/hbase/client/TestConnectionImplementation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestEnableTable.java">org/apache/hadoop/hbase/client/TestEnableTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestFastFail.java">org/apache/hadoop/hbase/client/TestFastFail.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestFromClientSide.java">org/apache/hadoop/hbase/client/TestFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>100</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestFromClientSide3.java">org/apache/hadoop/hbase/client/TestFromClientSide3.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestFromClientSideNoCodec.java">org/apache/hadoop/hbase/client/TestFromClientSideNoCodec.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestFromClientSideScanExcpetion.java">org/apache/hadoop/hbase/client/TestFromClientSideScanExcpetion.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestGet.java">org/apache/hadoop/hbase/client/TestGet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestHBaseAdminNoCluster.java">org/apache/hadoop/hbase/client/TestHBaseAdminNoCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestHTableMultiplexer.java">org/apache/hadoop/hbase/client/TestHTableMultiplexer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestHTableMultiplexerFlushCache.java">org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestImmutableHTableDescriptor.java">org/apache/hadoop/hbase/client/TestImmutableHTableDescriptor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestIncrementsFromClientSide.java">org/apache/hadoop/hbase/client/TestIncrementsFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestIntraRowPagination.java">org/apache/hadoop/hbase/client/TestIntraRowPagination.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestLeaseRenewal.java">org/apache/hadoop/hbase/client/TestLeaseRenewal.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestLimitedScanWithFilter.java">org/apache/hadoop/hbase/client/TestLimitedScanWithFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestMetaCache.java">org/apache/hadoop/hbase/client/TestMetaCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.client.TestMetricsConnection.java">org/apache/hadoop/hbase/client/TestMetricsConnection.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
-<td><a href="#org.apache.hadoop.hbase.client.TestMobCloneSnapshotFromClient.java">org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.java</a></td>
-<td>0</td>
-<td>0</td>
-<td>1</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.client.TestMultiParallel.java">org/apache/hadoop/hbase/client/TestMultiParallel.java</a></td>
 <td>0</td>
@@ -3312,7 +3302,7 @@
 <td><a href="#org.apache.hadoop.hbase.io.hfile.CacheConfig.java">org/apache/hadoop/hbase/io/hfile/CacheConfig.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>10</td></tr>
+<td>9</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.io.hfile.CacheStats.java">org/apache/hadoop/hbase/io/hfile/CacheStats.java</a></td>
 <td>0</td>
@@ -8632,7 +8622,7 @@
 <td><a href="#org.apache.hadoop.hbase.snapshot.MobSnapshotTestingUtils.java">org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>8</td></tr>
+<td>6</td></tr>
 <tr class="b">
 <td><a href="#org.apache.hadoop.hbase.snapshot.RestoreSnapshotException.java">org/apache/hadoop/hbase/snapshot/RestoreSnapshotException.java</a></td>
 <td>0</td>
@@ -9816,12 +9806,12 @@
 <li>sortStaticImportsAlphabetically: <tt>&quot;true&quot;</tt></li>
 <li>groups: <tt>&quot;*,org.apache.hbase.thirdparty,org.apache.hadoop.hbase.shaded&quot;</tt></li>
 <li>option: <tt>&quot;top&quot;</tt></li></ul></td>
-<td>1147</td>
+<td>1144</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_imports.html#RedundantImport">RedundantImport</a></td>
-<td>26</td>
+<td>25</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td></td>
@@ -9839,7 +9829,7 @@
 <li>caseIndent: <tt>&quot;2&quot;</tt></li>
 <li>basicOffset: <tt>&quot;2&quot;</tt></li>
 <li>lineWrappingIndentation: <tt>&quot;2&quot;</tt></li></ul></td>
-<td>4813</td>
+<td>4812</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>javadoc</td>
@@ -9869,7 +9859,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>1485</td>
+<td>1484</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td></td>
@@ -17961,7 +17951,7 @@
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>245</td></tr></table></div>
 <div class="section">
-<h3 id="org.apache.hadoop.hbase.TestCheckTestClasses.java">org/apache/hadoop/hbase/TestCheckTestClasses.java</h3>
+<h3 id="org.apache.hadoop.hbase.TestClassFinder.java">org/apache/hadoop/hbase/TestClassFinder.java</h3>
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Severity</th>
@@ -17971,32 +17961,11 @@
 <th>Line</th></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.testclassification.MediumTests' import.</td>
-<td>26</td></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
-<td>imports</td>
-<td>RedundantImport</td>
-<td>Duplicate import to line 24 - org.apache.hadoop.hbase.testclassification.MediumTests.</td>
-<td>26</td></tr></table></div>
-<div class="section">
-<h3 id="org.apache.hadoop.hbase.TestClassFinder.java">org/apache/hadoop/hbase/TestClassFinder.java</h3>
-<table border="0" class="table table-striped">
-<tr class="b">
-<th>Severity</th>
-<th>Category</th>
-<th>Rule</th>
-<th>Message</th>
-<th>Line</th></tr>
-<tr class="a">
-<td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>189</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>
@@ -18005,19 +17974,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestClientClusterStatus.java">org/apache/hadoop/hbase/TestClientClusterStatus.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.util.Threads.</td>
 <td>40</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>
@@ -18026,13 +17995,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestClientOperationTimeout.java">org/apache/hadoop/hbase/TestClientOperationTimeout.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="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>
@@ -18041,13 +18010,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestClusterPortAssignment.java">org/apache/hadoop/hbase/TestClusterPortAssignment.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="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>UnusedImports</td>
@@ -18056,13 +18025,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestFSTableDescriptorForceCreation.java">org/apache/hadoop/hbase/TestFSTableDescriptorForceCreation.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="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>sizes</td>
 <td>LineLength</td>
@@ -18071,43 +18040,43 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestGlobalMemStoreSize.java">org/apache/hadoop/hbase/TestGlobalMemStoreSize.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="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>73</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>153</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>154</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>155</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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>158</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>
@@ -18116,13 +18085,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestHBaseConfiguration.java">org/apache/hadoop/hbase/TestHBaseConfiguration.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>
@@ -18131,55 +18100,55 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestHBaseTestingUtility.java">org/apache/hadoop/hbase/TestHBaseTestingUtility.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>UnusedImports</td>
 <td>Unused import - java.io.IOException.</td>
 <td>29</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - java.util.HashMap.</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>UnusedImports</td>
 <td>Unused import - java.util.Map.</td>
 <td>32</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>UnusedImports</td>
 <td>Unused import - java.util.Map.Entry.</td>
 <td>33</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>79</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 followed by whitespace.</td>
 <td>202</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>'(' is followed by whitespace.</td>
 <td>206</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>
@@ -18188,13 +18157,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestHColumnDescriptor.java">org/apache/hadoop/hbase/TestHColumnDescriptor.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="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>annotation</td>
 <td>MissingDeprecated</td>
@@ -18203,13 +18172,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestHColumnDescriptorDefaultVersions.java">org/apache/hadoop/hbase/TestHColumnDescriptorDefaultVersions.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="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>
@@ -18218,73 +18187,73 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestHTableDescriptor.java">org/apache/hadoop/hbase/TestHTableDescriptor.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="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>annotation</td>
 <td>MissingDeprecated</td>
 <td>Must include both @java.lang.Deprecated annotation and @deprecated Javadoc tag with description.</td>
 <td>45</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>121</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>138</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>175</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>188</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>'array initialization' child has incorrect indentation level 6, expected level should be one of the following: 4, 31.</td>
 <td>189</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>'array initialization' child has incorrect indentation level 6, expected level should be one of the following: 4, 31.</td>
 <td>191</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>'array initialization' child has incorrect indentation level 6, expected level should be one of the following: 4, 31.</td>
 <td>192</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
 <td>Array brackets at illegal position.</td>
 <td>194</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>'array initialization' child has incorrect indentation level 6, expected level should be one of the following: 4, 33.</td>
 <td>195</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>
@@ -18293,25 +18262,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestIOFencing.java">org/apache/hadoop/hbase/TestIOFencing.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="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>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.regionserver.Store.</td>
 <td>44</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>92</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>misc</td>
 <td>ArrayTypeStyle</td>
@@ -18320,13 +18289,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestInfoServers.java">org/apache/hadoop/hbase/TestInfoServers.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="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>sizes</td>
 <td>LineLength</td>
@@ -18335,25 +18304,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestJMXConnectorServer.java">org/apache/hadoop/hbase/TestJMXConnectorServer.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="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>UnusedImports</td>
 <td>Unused import - org.apache.hadoop.hbase.security.access.AccessControlLists.</td>
 <td>31</td></tr>
-<tr class="b">
+<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.util.Threads.</td>
 <td>35</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>
@@ -18362,25 +18331,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestKeyValue.java">org/apache/hadoop/hbase/TestKeyValue.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="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>'HBaseClassTestRule' has incorrect indentation level 2, expected level should be 4.</td>
 <td>51</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>188</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>
@@ -18389,13 +18358,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestLocalHBaseCluster.java">org/apache/hadoop/hbase/TestLocalHBaseCluster.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>imports</td>
 <td>AvoidStarImport</td>
@@ -18404,55 +18373,55 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestMetaTableAccessor.java">org/apache/hadoop/hbase/TestMetaTableAccessor.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="a">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>indentation</td>
 <td>Indentation</td>
 <td>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>130</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>234</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>235</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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>251</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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>289</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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>312</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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>324</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>
@@ -18461,49 +18430,49 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestMetaTableAccessorNoCluster.java">org/apache/hadoop/hbase/TestMetaTableAccessorNoCluster.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>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
 <td>116</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>126</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>127</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>'(' has incorrect indentation level 6, expected level should be 8.</td>
 <td>194</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>'(' should be on the previous line.</td>
 <td>194</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 122).</td>
 <td>205</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>
@@ -18512,253 +18481,253 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestMetaTableLocator.java">org/apache/hadoop/hbase/TestMetaTableLocator.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>129</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>150</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>151</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>152</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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>155</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 call' child has incorrect indentation level 4, expected level should be 6.</td>
 <td>160</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>'while' construct must use '{}'s.</td>
 <td>176</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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>186</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>210</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>211</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>212</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>213</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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>217</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>230</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>231</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>232</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>233</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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>237</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>243</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>244</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>245</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>246</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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>250</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 has incorrect indentation level 8, expected level should be 4.</td>
 <td>260</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 has incorrect indentation level 8, expected level should be 4.</td>
 <td>261</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 has incorrect indentation level 8, expected level should be 4.</td>
 <td>263</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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>276</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>282</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>283</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>284</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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>287</td></tr>
-<tr class="a">
+<tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
 <td>306</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 109).</td>
 <td>309</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>310</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>311</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>312</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>315</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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>319</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>346</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>'while' construct must use '{}'s.</td>
 <td>375</td></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>coding</td>
 <td>EmptyStatement</td>
@@ -18767,19 +18736,19 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestMovedRegionsCleaner.java">org/apache/hadoop/hbase/TestMovedRegionsCleaner.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>77</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>
@@ -18788,31 +18757,31 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestMultiVersions.java">org/apache/hadoop/hbase/TestMultiVersions.java</h3>
 <table border="0" class="table table-striped">
-<tr class="b">
+<tr class="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>'throws' has incorrect indentation level 2, expected level should be 4.</td>
 <td>84</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' has incorrect indentation level 5, expected level should be one of the following: 4, 6.</td>
 <td>112</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>197</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>
@@ -18821,25 +18790,25 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestNamespace.java">org/apache/hadoop/hbase/TestNamespace.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>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 105).</td>
 <td>225</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>355</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>
@@ -18848,13 +18817,13 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestNodeHealthCheckChore.java">org/apache/hadoop/hbase/TestNodeHealthCheckChore.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
@@ -18863,151 +18832,151 @@
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.TestPartialResultsFromClientSide.java">org/apache/hadoop/hbase/TestPartialResultsFromClientSide.java</h3>
 <table border="0" class="table table-striped">
-<tr class="a">
+<tr class="b">
 <th>Severity</th>
 <th>Category</th>
 <th>Rule</th>
 <th>Message</th>
 <th>Line</th></tr>
-<tr class="b">
+<tr class="a">
 <td><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>142</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>177</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>210</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>248</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>321</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>341</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>375</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>396</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>404</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>407</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-emp

<TRUNCATED>

[28/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
index f808b16..f359a0c 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/master/HMaster.InitializationMonitor.html
@@ -1715,2239 +1715,2246 @@
 <span class="sourceLineNo">1707</span>        for (RegionPlan plan: plans) {<a name="line.1707"></a>
 <span class="sourceLineNo">1708</span>          LOG.info("balance " + plan);<a name="line.1708"></a>
 <span class="sourceLineNo">1709</span>          //TODO: bulk assign<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>          this.assignmentManager.moveAsync(plan);<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          rpCount++;<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span><a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>            cutoffTime);<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span><a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>            // a security net for now)<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>                + this.maxBlancingTime);<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>            break;<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>          }<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>        }<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>      }<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span><a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>      if (this.cpHost != null) {<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>        try {<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>        } catch (IOException ioe) {<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>          // balancing already succeeded so don't change the result<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>        }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>      }<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>    }<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>    // Return true indicating a success.<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>    return true;<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>  }<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span><a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>  @Override<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>  @VisibleForTesting<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>    return this.normalizer;<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>  }<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span><a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>  /**<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>   *<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span>   *    is globally disabled)<a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>   */<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>  public boolean normalizeRegions() throws IOException {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>    if (!isInitialized()) {<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>      return false;<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>    }<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span><a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>      return false;<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>    }<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span><a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>    synchronized (this.normalizer) {<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>      // Don't run the normalizer concurrently<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span><a name="line.1774"></a>
-<span class="sourceLineNo">1775</span>      Collections.shuffle(allEnabledTables);<a name="line.1775"></a>
+<span class="sourceLineNo">1710</span>          try {<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>            this.assignmentManager.moveAsync(plan);<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>          } catch (HBaseIOException hioe) {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>            //should ignore failed plans here, avoiding the whole balance plans be aborted<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>            //later calls of balance() can fetch up the failed and skipped plans<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>            LOG.warn("Failed balance plan: {}, just skip it", plan, hioe);<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>          }<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>          //rpCount records balance plans processed, does not care if a plan succeeds<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>          rpCount++;<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span><a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>          balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>            cutoffTime);<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span><a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>          // if performing next balance exceeds cutoff time, exit the loop<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>          if (rpCount &lt; plans.size() &amp;&amp; System.currentTimeMillis() &gt; cutoffTime) {<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>            // TODO: After balance, there should not be a cutoff time (keeping it as<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>            // a security net for now)<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>            LOG.debug("No more balancing till next balance run; maxBalanceTime="<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                + this.maxBlancingTime);<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>            break;<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>      }<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span><a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>      if (this.cpHost != null) {<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>        try {<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>          this.cpHost.postBalance(rpCount &lt; plans.size() ? plans.subList(0, rpCount) : plans);<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>        } catch (IOException ioe) {<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>          // balancing already succeeded so don't change the result<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>          LOG.error("Error invoking master coprocessor postBalance()", ioe);<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>        }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>      }<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>    // If LoadBalancer did not generate any plans, it means the cluster is already balanced.<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span>    // Return true indicating a success.<a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>    return true;<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>  }<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span><a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>  @Override<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>  @VisibleForTesting<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>  public RegionNormalizer getRegionNormalizer() {<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>    return this.normalizer;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>  }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span><a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>  /**<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>   * Perform normalization of cluster (invoked by {@link RegionNormalizerChore}).<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>   *<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>   * @return true if normalization step was performed successfully, false otherwise<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>   *    (specifically, if HMaster hasn't been initialized properly or normalization<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>   *    is globally disabled)<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>   */<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>  public boolean normalizeRegions() throws IOException {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>    if (!isInitialized()) {<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>      LOG.debug("Master has not been initialized, don't run region normalizer.");<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>      return false;<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>    if (isInMaintenanceMode()) {<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>      LOG.info("Master is in maintenance mode, don't run region normalizer.");<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>      return false;<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>    }<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span><a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>    if (!this.regionNormalizerTracker.isNormalizerOn()) {<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>      LOG.debug("Region normalization is disabled, don't run region normalizer.");<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>      return false;<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>    }<a name="line.1775"></a>
 <span class="sourceLineNo">1776</span><a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>      for (TableName table : allEnabledTables) {<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>        if (isInMaintenanceMode()) {<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>          return false;<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>        }<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span><a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>        TableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span>          LOG.trace("Skipping normalization for {}, as it's either system"<a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>              + " table or doesn't have auto normalization turned on", table);<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>          continue;<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>        }<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>        if (plans != null) {<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>          for (NormalizationPlan plan : plans) {<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>              splitPlanCount++;<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span>              mergePlanCount++;<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>        }<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>      }<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>    }<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span>    // Return true indicating a success.<a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>    return true;<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>  }<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>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>   */<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>  @Override<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>  public String getClientIdAuditPrefix() {<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>    return "Client=" + RpcServer.getRequestUserName().orElse(null)<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>        + "/" + RpcServer.getRemoteAddress().orElse(null);<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>  }<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span><a name="line.1816"></a>
-<span class="sourceLineNo">1817</span>  /**<a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>   * Switch for the background CatalogJanitor thread.<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>   * if disabled.<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>   */<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>  }<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span><a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>  @Override<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>  public long mergeRegions(<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>      final RegionInfo[] regionsToMerge,<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>      final boolean forcible,<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>      final long nonceGroup,<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>      final long nonce) throws IOException {<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>    checkInitialized();<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span><a name="line.1834"></a>
-<span class="sourceLineNo">1835</span>    assert(regionsToMerge.length == 2);<a name="line.1835"></a>
-<span class="sourceLineNo">1836</span><a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>    }<a name="line.1840"></a>
+<span class="sourceLineNo">1777</span>    synchronized (this.normalizer) {<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>      // Don't run the normalizer concurrently<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>      List&lt;TableName&gt; allEnabledTables = new ArrayList&lt;&gt;(<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>        this.tableStateManager.getTablesInStates(TableState.State.ENABLED));<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span><a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>      Collections.shuffle(allEnabledTables);<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span><a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>      for (TableName table : allEnabledTables) {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>        if (isInMaintenanceMode()) {<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>          LOG.debug("Master is in maintenance mode, stop running region normalizer.");<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span>          return false;<a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>        }<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span><a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>        TableDescriptor tblDesc = getTableDescriptors().get(table);<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>        if (table.isSystemTable() || (tblDesc != null &amp;&amp;<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>            !tblDesc.isNormalizationEnabled())) {<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>          LOG.trace("Skipping normalization for {}, as it's either system"<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>              + " table or doesn't have auto normalization turned on", table);<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>          continue;<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>        }<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>        List&lt;NormalizationPlan&gt; plans = this.normalizer.computePlanForTable(table);<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span>        if (plans != null) {<a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>          for (NormalizationPlan plan : plans) {<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>            plan.execute(clusterConnection.getAdmin());<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>            if (plan.getType() == PlanType.SPLIT) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>              splitPlanCount++;<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>            } else if (plan.getType() == PlanType.MERGE) {<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>              mergePlanCount++;<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span>            }<a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>          }<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>    }<a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>    // If Region did not generate any plans, it means the cluster is already balanced.<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    // Return true indicating a success.<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    return true;<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>  }<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span><a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>  /**<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>   * @return Client info for use as prefix on an audit log string; who did an action<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>   */<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span>  @Override<a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>  public String getClientIdAuditPrefix() {<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>    return "Client=" + RpcServer.getRequestUserName().orElse(null)<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>        + "/" + RpcServer.getRemoteAddress().orElse(null);<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>  /**<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>   * Switch for the background CatalogJanitor thread.<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>   * Used for testing.  The thread will continue to run.  It will just be a noop<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>   * if disabled.<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>   * @param b If false, the catalog janitor won't do anything.<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>   */<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>  public void setCatalogJanitorEnabled(final boolean b) {<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>    this.catalogJanitorChore.setEnabled(b);<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>  }<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span><a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>  @Override<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  public long mergeRegions(<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span>      final RegionInfo[] regionsToMerge,<a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>      final boolean forcible,<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>      final long nonceGroup,<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>      final long nonce) throws IOException {<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>    checkInitialized();<a name="line.1840"></a>
 <span class="sourceLineNo">1841</span><a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>      throw new IOException (<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>    }<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span><a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>    if (RegionInfo.COMPARATOR.compare(regionsToMerge[0], regionsToMerge[1]) == 0) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>      throw new MergeRegionException(<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>    }<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span><a name="line.1852"></a>
-<span class="sourceLineNo">1853</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1853"></a>
-<span class="sourceLineNo">1854</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>      @Override<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>      protected void run() throws IOException {<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span><a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span><a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span>          regionsToMerge, forcible));<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span><a name="line.1864"></a>
-<span class="sourceLineNo">1865</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>      }<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span><a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>      @Override<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>      protected String getDescription() {<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>        return "MergeTableProcedure";<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>      }<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>    });<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>  }<a name="line.1873"></a>
+<span class="sourceLineNo">1842</span>    assert(regionsToMerge.length == 2);<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span><a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>    TableName tableName = regionsToMerge[0].getTable();<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>    if (tableName == null || regionsToMerge[1].getTable() == null) {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>      throw new UnknownRegionException ("Can't merge regions without table associated");<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>    }<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span><a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>    if (!tableName.equals(regionsToMerge[1].getTable())) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>      throw new IOException (<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>        "Cannot merge regions from two different tables " + regionsToMerge[0].getTable()<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>        + " and " + regionsToMerge[1].getTable());<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>    }<a name="line.1853"></a>
+<span class="sourceLineNo">1854</span><a name="line.1854"></a>
+<span class="sourceLineNo">1855</span>    if (RegionInfo.COMPARATOR.compare(regionsToMerge[0], regionsToMerge[1]) == 0) {<a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>      throw new MergeRegionException(<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>        "Cannot merge a region to itself " + regionsToMerge[0] + ", " + regionsToMerge[1]);<a name="line.1857"></a>
+<span class="sourceLineNo">1858</span>    }<a name="line.1858"></a>
+<span class="sourceLineNo">1859</span><a name="line.1859"></a>
+<span class="sourceLineNo">1860</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1860"></a>
+<span class="sourceLineNo">1861</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1861"></a>
+<span class="sourceLineNo">1862</span>      @Override<a name="line.1862"></a>
+<span class="sourceLineNo">1863</span>      protected void run() throws IOException {<a name="line.1863"></a>
+<span class="sourceLineNo">1864</span>        getMaster().getMasterCoprocessorHost().preMergeRegions(regionsToMerge);<a name="line.1864"></a>
+<span class="sourceLineNo">1865</span><a name="line.1865"></a>
+<span class="sourceLineNo">1866</span>        LOG.info(getClientIdAuditPrefix() + " Merge regions " +<a name="line.1866"></a>
+<span class="sourceLineNo">1867</span>          regionsToMerge[0].getEncodedName() + " and " + regionsToMerge[1].getEncodedName());<a name="line.1867"></a>
+<span class="sourceLineNo">1868</span><a name="line.1868"></a>
+<span class="sourceLineNo">1869</span>        submitProcedure(new MergeTableRegionsProcedure(procedureExecutor.getEnvironment(),<a name="line.1869"></a>
+<span class="sourceLineNo">1870</span>          regionsToMerge, forcible));<a name="line.1870"></a>
+<span class="sourceLineNo">1871</span><a name="line.1871"></a>
+<span class="sourceLineNo">1872</span>        getMaster().getMasterCoprocessorHost().postMergeRegions(regionsToMerge);<a name="line.1872"></a>
+<span class="sourceLineNo">1873</span>      }<a name="line.1873"></a>
 <span class="sourceLineNo">1874</span><a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>  @Override<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>  public long splitRegion(final RegionInfo regionInfo, final byte[] splitRow,<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>      final long nonceGroup, final long nonce)<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>  throws IOException {<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>    checkInitialized();<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>      @Override<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>      protected void run() throws IOException {<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>        LOG.info(getClientIdAuditPrefix() + " split " + regionInfo.getRegionNameAsString());<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span><a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>        // Execute the operation asynchronously<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>        submitProcedure(getAssignmentManager().createSplitProcedure(regionInfo, splitRow));<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>      }<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span><a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>      @Override<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>      protected String getDescription() {<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span>        return "SplitTableProcedure";<a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>      }<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>    });<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span>  }<a name="line.1896"></a>
+<span class="sourceLineNo">1875</span>      @Override<a name="line.1875"></a>
+<span class="sourceLineNo">1876</span>      protected String getDescription() {<a name="line.1876"></a>
+<span class="sourceLineNo">1877</span>        return "MergeTableProcedure";<a name="line.1877"></a>
+<span class="sourceLineNo">1878</span>      }<a name="line.1878"></a>
+<span class="sourceLineNo">1879</span>    });<a name="line.1879"></a>
+<span class="sourceLineNo">1880</span>  }<a name="line.1880"></a>
+<span class="sourceLineNo">1881</span><a name="line.1881"></a>
+<span class="sourceLineNo">1882</span>  @Override<a name="line.1882"></a>
+<span class="sourceLineNo">1883</span>  public long splitRegion(final RegionInfo regionInfo, final byte[] splitRow,<a name="line.1883"></a>
+<span class="sourceLineNo">1884</span>      final long nonceGroup, final long nonce)<a name="line.1884"></a>
+<span class="sourceLineNo">1885</span>  throws IOException {<a name="line.1885"></a>
+<span class="sourceLineNo">1886</span>    checkInitialized();<a name="line.1886"></a>
+<span class="sourceLineNo">1887</span>    return MasterProcedureUtil.submitProcedure(<a name="line.1887"></a>
+<span class="sourceLineNo">1888</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.1888"></a>
+<span class="sourceLineNo">1889</span>      @Override<a name="line.1889"></a>
+<span class="sourceLineNo">1890</span>      protected void run() throws IOException {<a name="line.1890"></a>
+<span class="sourceLineNo">1891</span>        getMaster().getMasterCoprocessorHost().preSplitRegion(regionInfo.getTable(), splitRow);<a name="line.1891"></a>
+<span class="sourceLineNo">1892</span>        LOG.info(getClientIdAuditPrefix() + " split " + regionInfo.getRegionNameAsString());<a name="line.1892"></a>
+<span class="sourceLineNo">1893</span><a name="line.1893"></a>
+<span class="sourceLineNo">1894</span>        // Execute the operation asynchronously<a name="line.1894"></a>
+<span class="sourceLineNo">1895</span>        submitProcedure(getAssignmentManager().createSplitProcedure(regionInfo, splitRow));<a name="line.1895"></a>
+<span class="sourceLineNo">1896</span>      }<a name="line.1896"></a>
 <span class="sourceLineNo">1897</span><a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>  // Public so can be accessed by tests. Blocks until move is done.<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>  // Replace with an async implementation from which you can get<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>  // a success/failure result.<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>  @VisibleForTesting<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>  public void move(final byte[] encodedRegionName, byte[] destServerName) throws HBaseIOException {<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span><a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>    RegionInfo hri;<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span>    if (regionState != null) {<a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>      hri = regionState.getRegion();<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>    } else {<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>    }<a name="line.1911"></a>
+<span class="sourceLineNo">1898</span>      @Override<a name="line.1898"></a>
+<span class="sourceLineNo">1899</span>      protected String getDescription() {<a name="line.1899"></a>
+<span class="sourceLineNo">1900</span>        return "SplitTableProcedure";<a name="line.1900"></a>
+<span class="sourceLineNo">1901</span>      }<a name="line.1901"></a>
+<span class="sourceLineNo">1902</span>    });<a name="line.1902"></a>
+<span class="sourceLineNo">1903</span>  }<a name="line.1903"></a>
+<span class="sourceLineNo">1904</span><a name="line.1904"></a>
+<span class="sourceLineNo">1905</span>  // Public so can be accessed by tests. Blocks until move is done.<a name="line.1905"></a>
+<span class="sourceLineNo">1906</span>  // Replace with an async implementation from which you can get<a name="line.1906"></a>
+<span class="sourceLineNo">1907</span>  // a success/failure result.<a name="line.1907"></a>
+<span class="sourceLineNo">1908</span>  @VisibleForTesting<a name="line.1908"></a>
+<span class="sourceLineNo">1909</span>  public void move(final byte[] encodedRegionName, byte[] destServerName) throws HBaseIOException {<a name="line.1909"></a>
+<span class="sourceLineNo">1910</span>    RegionState regionState = assignmentManager.getRegionStates().<a name="line.1910"></a>
+<span class="sourceLineNo">1911</span>      getRegionState(Bytes.toString(encodedRegionName));<a name="line.1911"></a>
 <span class="sourceLineNo">1912</span><a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>    ServerName dest;<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>    List&lt;ServerName&gt; exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>        : new ArrayList&lt;&gt;(1);<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>    if (destServerName != null &amp;&amp; exclude.contains(ServerName.valueOf(Bytes.toString(destServerName)))) {<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>      LOG.info(<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>          Bytes.toString(encodedRegionName) + " can not move to " + Bytes.toString(destServerName)<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>              + " because the server is in exclude list");<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      destServerName = null;<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>    }<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>        "choosing a server at random");<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>      exclude.add(regionState.getServerName());<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(exclude);<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>      if (dest == null) {<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>        return;<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>      }<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>    } else {<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1934"></a>
+<span class="sourceLineNo">1913</span>    RegionInfo hri;<a name="line.1913"></a>
+<span class="sourceLineNo">1914</span>    if (regionState != null) {<a name="line.1914"></a>
+<span class="sourceLineNo">1915</span>      hri = regionState.getRegion();<a name="line.1915"></a>
+<span class="sourceLineNo">1916</span>    } else {<a name="line.1916"></a>
+<span class="sourceLineNo">1917</span>      throw new UnknownRegionException(Bytes.toStringBinary(encodedRegionName));<a name="line.1917"></a>
+<span class="sourceLineNo">1918</span>    }<a name="line.1918"></a>
+<span class="sourceLineNo">1919</span><a name="line.1919"></a>
+<span class="sourceLineNo">1920</span>    ServerName dest;<a name="line.1920"></a>
+<span class="sourceLineNo">1921</span>    List&lt;ServerName&gt; exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span>        : new ArrayList&lt;&gt;(1);<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span>    if (destServerName != null &amp;&amp; exclude.contains(ServerName.valueOf(Bytes.toString(destServerName)))) {<a name="line.1923"></a>
+<span class="sourceLineNo">1924</span>      LOG.info(<a name="line.1924"></a>
+<span class="sourceLineNo">1925</span>          Bytes.toString(encodedRegionName) + " can not move to " + Bytes.toString(destServerName)<a name="line.1925"></a>
+<span class="sourceLineNo">1926</span>              + " because the server is in exclude list");<a name="line.1926"></a>
+<span class="sourceLineNo">1927</span>      destServerName = null;<a name="line.1927"></a>
+<span class="sourceLineNo">1928</span>    }<a name="line.1928"></a>
+<span class="sourceLineNo">1929</span>    if (destServerName == null || destServerName.length == 0) {<a name="line.1929"></a>
+<span class="sourceLineNo">1930</span>      LOG.info("Passed destination servername is null/empty so " +<a name="line.1930"></a>
+<span class="sourceLineNo">1931</span>        "choosing a server at random");<a name="line.1931"></a>
+<span class="sourceLineNo">1932</span>      exclude.add(regionState.getServerName());<a name="line.1932"></a>
+<span class="sourceLineNo">1933</span>      final List&lt;ServerName&gt; destServers = this.serverManager.createDestinationServersList(exclude);<a name="line.1933"></a>
+<span class="sourceLineNo">1934</span>      dest = balancer.randomAssignment(hri, destServers);<a name="line.1934"></a>
 <span class="sourceLineNo">1935</span>      if (dest == null) {<a name="line.1935"></a>
 <span class="sourceLineNo">1936</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1936"></a>
 <span class="sourceLineNo">1937</span>        return;<a name="line.1937"></a>
 <span class="sourceLineNo">1938</span>      }<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>      // TODO: What is this? I don't get it.<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>        // regions on master.<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>          + " because it should not be on master");<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>        return;<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>      }<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>    }<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span><a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>      return;<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>    }<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span><a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>    // Now we can do the move<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>    assert rp.getDestination() != null: rp.toString() + " " + dest;<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span><a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>    try {<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>      checkInitialized();<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      if (this.cpHost != null) {<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>        this.cpHost.preMove(hri, rp.getSource(), rp.getDestination());<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      }<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>      // Warmup the region on the destination before initiating the move. this call<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>      // closed<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1969"></a>
-<span class="sourceLineNo">1970</span><a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>      Future&lt;byte []&gt; future = this.assignmentManager.moveAsync(rp);<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>      try {<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>        // Is this going to work? Will we throw exception on error?<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span>        // TODO: CompletableFuture rather than this stunted Future.<a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>        future.get();<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>      } catch (InterruptedException | ExecutionException e) {<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>        throw new HBaseIOException(e);<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span>      }<a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>      if (this.cpHost != null) {<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span>      }<a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>    } catch (IOException ioe) {<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>      if (ioe instanceof HBaseIOException) {<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>        throw (HBaseIOException)ioe;<a name="line.1985"></a>
+<span class="sourceLineNo">1939</span>    } else {<a name="line.1939"></a>
+<span class="sourceLineNo">1940</span>      ServerName candidate = ServerName.valueOf(Bytes.toString(destServerName));<a name="line.1940"></a>
+<span class="sourceLineNo">1941</span>      dest = balancer.randomAssignment(hri, Lists.newArrayList(candidate));<a name="line.1941"></a>
+<span class="sourceLineNo">1942</span>      if (dest == null) {<a name="line.1942"></a>
+<span class="sourceLineNo">1943</span>        LOG.debug("Unable to determine a plan to assign " + hri);<a name="line.1943"></a>
+<span class="sourceLineNo">1944</span>        return;<a name="line.1944"></a>
+<span class="sourceLineNo">1945</span>      }<a name="line.1945"></a>
+<span class="sourceLineNo">1946</span>      // TODO: What is this? I don't get it.<a name="line.1946"></a>
+<span class="sourceLineNo">1947</span>      if (dest.equals(serverName) &amp;&amp; balancer instanceof BaseLoadBalancer<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span>          &amp;&amp; !((BaseLoadBalancer)balancer).shouldBeOnMaster(hri)) {<a name="line.1948"></a>
+<span class="sourceLineNo">1949</span>        // To avoid unnecessary region moving later by balancer. Don't put user<a name="line.1949"></a>
+<span class="sourceLineNo">1950</span>        // regions on master.<a name="line.1950"></a>
+<span class="sourceLineNo">1951</span>        LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1951"></a>
+<span class="sourceLineNo">1952</span>          + " to avoid unnecessary region moving later by load balancer,"<a name="line.1952"></a>
+<span class="sourceLineNo">1953</span>          + " because it should not be on master");<a name="line.1953"></a>
+<span class="sourceLineNo">1954</span>        return;<a name="line.1954"></a>
+<span class="sourceLineNo">1955</span>      }<a name="line.1955"></a>
+<span class="sourceLineNo">1956</span>    }<a name="line.1956"></a>
+<span class="sourceLineNo">1957</span><a name="line.1957"></a>
+<span class="sourceLineNo">1958</span>    if (dest.equals(regionState.getServerName())) {<a name="line.1958"></a>
+<span class="sourceLineNo">1959</span>      LOG.debug("Skipping move of region " + hri.getRegionNameAsString()<a name="line.1959"></a>
+<span class="sourceLineNo">1960</span>        + " because region already assigned to the same server " + dest + ".");<a name="line.1960"></a>
+<span class="sourceLineNo">1961</span>      return;<a name="line.1961"></a>
+<span class="sourceLineNo">1962</span>    }<a name="line.1962"></a>
+<span class="sourceLineNo">1963</span><a name="line.1963"></a>
+<span class="sourceLineNo">1964</span>    // Now we can do the move<a name="line.1964"></a>
+<span class="sourceLineNo">1965</span>    RegionPlan rp = new RegionPlan(hri, regionState.getServerName(), dest);<a name="line.1965"></a>
+<span class="sourceLineNo">1966</span>    assert rp.getDestination() != null: rp.toString() + " " + dest;<a name="line.1966"></a>
+<span class="sourceLineNo">1967</span><a name="line.1967"></a>
+<span class="sourceLineNo">1968</span>    try {<a name="line.1968"></a>
+<span class="sourceLineNo">1969</span>      checkInitialized();<a name="line.1969"></a>
+<span class="sourceLineNo">1970</span>      if (this.cpHost != null) {<a name="line.1970"></a>
+<span class="sourceLineNo">1971</span>        this.cpHost.preMove(hri, rp.getSource(), rp.getDestination());<a name="line.1971"></a>
+<span class="sourceLineNo">1972</span>      }<a name="line.1972"></a>
+<span class="sourceLineNo">1973</span>      // Warmup the region on the destination before initiating the move. this call<a name="line.1973"></a>
+<span class="sourceLineNo">1974</span>      // is synchronous and takes some time. doing it before the source region gets<a name="line.1974"></a>
+<span class="sourceLineNo">1975</span>      // closed<a name="line.1975"></a>
+<span class="sourceLineNo">1976</span>      serverManager.sendRegionWarmup(rp.getDestination(), hri);<a name="line.1976"></a>
+<span class="sourceLineNo">1977</span><a name="line.1977"></a>
+<span class="sourceLineNo">1978</span>      LOG.info(getClientIdAuditPrefix() + " move " + rp + ", running balancer");<a name="line.1978"></a>
+<span class="sourceLineNo">1979</span>      Future&lt;byte []&gt; future = this.assignmentManager.moveAsync(rp);<a name="line.1979"></a>
+<span class="sourceLineNo">1980</span>      try {<a name="line.1980"></a>
+<span class="sourceLineNo">1981</span>        // Is this going to work? Will we throw exception on error?<a name="line.1981"></a>
+<span class="sourceLineNo">1982</span>        // TODO: CompletableFuture rather than this stunted Future.<a name="line.1982"></a>
+<span class="sourceLineNo">1983</span>        future.get();<a name="line.1983"></a>
+<span class="sourceLineNo">1984</span>      } catch (InterruptedException | ExecutionException e) {<a name="line.1984"></a>
+<span class="sourceLineNo">1985</span>        throw new HBaseIOException(e);<a name="line.1985"></a>
 <span class="sourceLineNo">1986</span>      }<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span>      throw new HBaseIOException(ioe);<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span>    }<a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>  }<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span><a name="line.1990"></a>
-<span class="sourceLineNo">1991</span>  @Override<a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>  public long createTable(<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>      final TableDescriptor tableDescriptor,<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>      final byte [][] splitKeys,<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>      final long nonceGroup,<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span>      final long nonce) throws IOException {<a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>    checkInitialized();<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span><a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>    String namespace = tableDescriptor.getTableName().getNamespaceAsString();<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.2000"></a>
-<span class="sourceLineNo">2001</span><a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, splitKeys);<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    sanityCheckTableDescriptor(tableDescriptor);<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span><a name="line.2004"></a>
-<span class="sourceLineNo">2005</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2005"></a>
-<span class="sourceLineNo">2006</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2006"></a>
-<span class="sourceLineNo">2007</span>      @Override<a name="line.2007"></a>
-<span class="sourceLineNo">2008</span>      protected void run() throws IOException {<a name="line.2008"></a>
-<span class="sourceLineNo">2009</span>        getMaster().getMasterCoprocessorHost().preCreateTable(tableDescriptor, newRegions);<a name="line.2009"></a>
-<span class="sourceLineNo">2010</span><a name="line.2010"></a>
-<span class="sourceLineNo">2011</span>        LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2011"></a>
-<span class="sourceLineNo">2012</span><a name="line.2012"></a>
-<span class="sourceLineNo">2013</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.2013"></a>
-<span class="sourceLineNo">2014</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.2014"></a>
-<span class="sourceLineNo">2015</span>        //<a name="line.2015"></a>
-<span class="sourceLineNo">2016</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2016"></a>
-<span class="sourceLineNo">2017</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2017"></a>
-<span class="sourceLineNo">2018</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2018"></a>
-<span class="sourceLineNo">2019</span>        submitProcedure(new CreateTableProcedure(<a name="line.2019"></a>
-<span class="sourceLineNo">2020</span>            procedureExecutor.getEnvironment(), tableDescriptor, newRegions, latch));<a name="line.2020"></a>
-<span class="sourceLineNo">2021</span>        latch.await();<a name="line.2021"></a>
-<span class="sourceLineNo">2022</span><a name="line.2022"></a>
-<span class="sourceLineNo">2023</span>        getMaster().getMasterCoprocessorHost().postCreateTable(tableDescriptor, newRegions);<a name="line.2023"></a>
-<span class="sourceLineNo">2024</span>      }<a name="line.2024"></a>
-<span class="sourceLineNo">2025</span><a name="line.2025"></a>
-<span class="sourceLineNo">2026</span>      @Override<a name="line.2026"></a>
-<span class="sourceLineNo">2027</span>      protected String getDescription() {<a name="line.2027"></a>
-<span class="sourceLineNo">2028</span>        return "CreateTableProcedure";<a name="line.2028"></a>
-<span class="sourceLineNo">2029</span>      }<a name="line.2029"></a>
-<span class="sourceLineNo">2030</span>    });<a name="line.2030"></a>
-<span class="sourceLineNo">2031</span>  }<a name="line.2031"></a>
+<span class="sourceLineNo">1987</span>      if (this.cpHost != null) {<a name="line.1987"></a>
+<span class="sourceLineNo">1988</span>        this.cpHost.postMove(hri, rp.getSource(), rp.getDestination());<a name="line.1988"></a>
+<span class="sourceLineNo">1989</span>      }<a name="line.1989"></a>
+<span class="sourceLineNo">1990</span>    } catch (IOException ioe) {<a name="line.1990"></a>
+<span class="sourceLineNo">1991</span>      if (ioe instanceof HBaseIOException) {<a name="line.1991"></a>
+<span class="sourceLineNo">1992</span>        throw (HBaseIOException)ioe;<a name="line.1992"></a>
+<span class="sourceLineNo">1993</span>      }<a name="line.1993"></a>
+<span class="sourceLineNo">1994</span>      throw new HBaseIOException(ioe);<a name="line.1994"></a>
+<span class="sourceLineNo">1995</span>    }<a name="line.1995"></a>
+<span class="sourceLineNo">1996</span>  }<a name="line.1996"></a>
+<span class="sourceLineNo">1997</span><a name="line.1997"></a>
+<span class="sourceLineNo">1998</span>  @Override<a name="line.1998"></a>
+<span class="sourceLineNo">1999</span>  public long createTable(<a name="line.1999"></a>
+<span class="sourceLineNo">2000</span>      final TableDescriptor tableDescriptor,<a name="line.2000"></a>
+<span class="sourceLineNo">2001</span>      final byte [][] splitKeys,<a name="line.2001"></a>
+<span class="sourceLineNo">2002</span>      final long nonceGroup,<a name="line.2002"></a>
+<span class="sourceLineNo">2003</span>      final long nonce) throws IOException {<a name="line.2003"></a>
+<span class="sourceLineNo">2004</span>    checkInitialized();<a name="line.2004"></a>
+<span class="sourceLineNo">2005</span><a name="line.2005"></a>
+<span class="sourceLineNo">2006</span>    String namespace = tableDescriptor.getTableName().getNamespaceAsString();<a name="line.2006"></a>
+<span class="sourceLineNo">2007</span>    this.clusterSchemaService.getNamespace(namespace);<a name="line.2007"></a>
+<span class="sourceLineNo">2008</span><a name="line.2008"></a>
+<span class="sourceLineNo">2009</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, splitKeys);<a name="line.2009"></a>
+<span class="sourceLineNo">2010</span>    sanityCheckTableDescriptor(tableDescriptor);<a name="line.2010"></a>
+<span class="sourceLineNo">2011</span><a name="line.2011"></a>
+<span class="sourceLineNo">2012</span>    return MasterProcedureUtil.submitProcedure(<a name="line.2012"></a>
+<span class="sourceLineNo">2013</span>        new MasterProcedureUtil.NonceProcedureRunnable(this, nonceGroup, nonce) {<a name="line.2013"></a>
+<span class="sourceLineNo">2014</span>      @Override<a name="line.2014"></a>
+<span class="sourceLineNo">2015</span>      protected void run() throws IOException {<a name="line.2015"></a>
+<span class="sourceLineNo">2016</span>        getMaster().getMasterCoprocessorHost().preCreateTable(tableDescriptor, newRegions);<a name="line.2016"></a>
+<span class="sourceLineNo">2017</span><a name="line.2017"></a>
+<span class="sourceLineNo">2018</span>        LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2018"></a>
+<span class="sourceLineNo">2019</span><a name="line.2019"></a>
+<span class="sourceLineNo">2020</span>        // TODO: We can handle/merge duplicate requests, and differentiate the case of<a name="line.2020"></a>
+<span class="sourceLineNo">2021</span>        //       TableExistsException by saying if the schema is the same or not.<a name="line.2021"></a>
+<span class="sourceLineNo">2022</span>        //<a name="line.2022"></a>
+<span class="sourceLineNo">2023</span>        // We need to wait for the procedure to potentially fail due to "prepare" sanity<a name="line.2023"></a>
+<span class="sourceLineNo">2024</span>        // checks. This will block only the beginning of the procedure. See HBASE-19953.<a name="line.2024"></a>
+<span class="sourceLineNo">2025</span>        ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch();<a name="line.2025"></a>
+<span class="sourceLineNo">2026</span>        submitProcedure(new CreateTableProcedure(<a name="line.2026"></a>
+<span class="sourceLineNo">2027</span>            procedureExecutor.getEnvironment(), tableDescriptor, newRegions, latch));<a name="line.2027"></a>
+<span class="sourceLineNo">2028</span>        latch.await();<a name="line.2028"></a>
+<span class="sourceLineNo">2029</span><a name="line.2029"></a>
+<span class="sourceLineNo">2030</span>        getMaster().getMasterCoprocessorHost().postCreateTable(tableDescriptor, newRegions);<a name="line.2030"></a>
+<span class="sourceLineNo">2031</span>      }<a name="line.2031"></a>
 <span class="sourceLineNo">2032</span><a name="line.2032"></a>
-<span class="sourceLineNo">2033</span>  @Override<a name="line.2033"></a>
-<span class="sourceLineNo">2034</span>  public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException {<a name="line.2034"></a>
-<span class="sourceLineNo">2035</span>    if (isStopped()) {<a name="line.2035"></a>
-<span class="sourceLineNo">2036</span>      throw new MasterNotRunningException();<a name="line.2036"></a>
-<span class="sourceLineNo">2037</span>    }<a name="line.2037"></a>
-<span class="sourceLineNo">2038</span><a name="line.2038"></a>
-<span class="sourceLineNo">2039</span>    TableName tableName = tableDescriptor.getTableName();<a name="line.2039"></a>
-<span class="sourceLineNo">2040</span>    if (!(tableName.isSystemTable())) {<a name="line.2040"></a>
-<span class="sourceLineNo">2041</span>      throw new IllegalArgumentException(<a name="line.2041"></a>
-<span class="sourceLineNo">2042</span>        "Only system table creation can use this createSystemTable API");<a name="line.2042"></a>
-<span class="sourceLineNo">2043</span>    }<a name="line.2043"></a>
-<span class="sourceLineNo">2044</span><a name="line.2044"></a>
-<span class="sourceLineNo">2045</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, null);<a name="line.2045"></a>
-<span class="sourceLineNo">2046</span><a name="line.2046"></a>
-<span class="sourceLineNo">2047</span>    LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2047"></a>
-<span class="sourceLineNo">2048</span><a name="line.2048"></a>
-<span class="sourceLineNo">2049</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.2049"></a>
-<span class="sourceLineNo">2050</span>    // to use nonce to detect duplicated RPC call.<a name="line.2050"></a>
-<span class="sourceLineNo">2051</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.2051"></a>
-<span class="sourceLineNo">2052</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), tableDescriptor, newRegions));<a name="line.2052"></a>
+<span class="sourceLineNo">2033</span>      @Override<a name="line.2033"></a>
+<span class="sourceLineNo">2034</span>      protected String getDescription() {<a name="line.2034"></a>
+<span class="sourceLineNo">2035</span>        return "CreateTableProcedure";<a name="line.2035"></a>
+<span class="sourceLineNo">2036</span>      }<a name="line.2036"></a>
+<span class="sourceLineNo">2037</span>    });<a name="line.2037"></a>
+<span class="sourceLineNo">2038</span>  }<a name="line.2038"></a>
+<span class="sourceLineNo">2039</span><a name="line.2039"></a>
+<span class="sourceLineNo">2040</span>  @Override<a name="line.2040"></a>
+<span class="sourceLineNo">2041</span>  public long createSystemTable(final TableDescriptor tableDescriptor) throws IOException {<a name="line.2041"></a>
+<span class="sourceLineNo">2042</span>    if (isStopped()) {<a name="line.2042"></a>
+<span class="sourceLineNo">2043</span>      throw new MasterNotRunningException();<a name="line.2043"></a>
+<span class="sourceLineNo">2044</span>    }<a name="line.2044"></a>
+<span class="sourceLineNo">2045</span><a name="line.2045"></a>
+<span class="sourceLineNo">2046</span>    TableName tableName = tableDescriptor.getTableName();<a name="line.2046"></a>
+<span class="sourceLineNo">2047</span>    if (!(tableName.isSystemTable())) {<a name="line.2047"></a>
+<span class="sourceLineNo">2048</span>      throw new IllegalArgumentException(<a name="line.2048"></a>
+<span class="sourceLineNo">2049</span>        "Only system table creation can use this createSystemTable API");<a name="line.2049"></a>
+<span class="sourceLineNo">2050</span>    }<a name="line.2050"></a>
+<span class="sourceLineNo">2051</span><a name="line.2051"></a>
+<span class="sourceLineNo">2052</span>    RegionInfo[] newRegions = ModifyRegionUtils.createRegionInfos(tableDescriptor, null);<a name="line.2052"></a>
 <span class="sourceLineNo">2053</span><a name="line.2053"></a>
-<span class="sourceLineNo">2054</span>    return procId;<a name="line.2054"></a>
-<span class="sourceLineNo">2055</span>  }<a name="line.2055"></a>
-<span class="sourceLineNo">2056</span><a name="line.2056"></a>
-<span class="sourceLineNo">2057</span>  /**<a name="line.2057"></a>
-<span class="sourceLineNo">2058</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.2058"></a>
-<span class="sourceLineNo">2059</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.2059"></a>
-<span class="sourceLineNo">2060</span>   * @throws IOException<a name="line.2060"></a>
-<span class="sourceLineNo">2061</span>   */<a name="line.2061"></a>
-<span class="sourceLineNo">2062</span>  private void sanityCheckTableDescriptor(final TableDescriptor htd) throws IOException {<a name="line.2062"></a>
-<span class="sourceLineNo">2063</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.2063"></a>
-<span class="sourceLineNo">2064</span>    boolean logWarn = false;<a name="line.2064"></a>
-<span class="sourceLineNo">2065</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.2065"></a>
-<span class="sourceLineNo">2066</span>      logWarn = true;<a name="line.2066"></a>
-<span class="sourceLineNo">2067</span>    }<a name="line.2067"></a>
-<span class="sourceLineNo">2068</span>    String tableVal = htd.getValue(CONF_KEY);<a name="line.2068"></a>
-<span class="sourceLineNo">2069</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.2069"></a>
-<span class="sourceLineNo">2070</span>      logWarn = true;<a name="line.2070"></a>
-<span class="sourceLineNo">2071</span>    }<a name="line.2071"></a>
-<span class="sourceLineNo">2072</span><a name="line.2072"></a>
-<span class="sourceLineNo">2073</span>    // check max file size<a name="line.2073"></a>
-<span class="sourceLineNo">2074</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.2074"></a>
-<span class="sourceLineNo">2075</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.2075"></a>
-<span class="sourceLineNo">2076</span>    if (maxFileSize &lt; 0) {<a name="line.2076"></a>
-<span class="sourceLineNo">2077</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.2077"></a>
+<span class="sourceLineNo">2054</span>    LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor);<a name="line.2054"></a>
+<span class="sourceLineNo">2055</span><a name="line.2055"></a>
+<span class="sourceLineNo">2056</span>    // This special create table is called locally to master.  Therefore, no RPC means no need<a name="line.2056"></a>
+<span class="sourceLineNo">2057</span>    // to use nonce to detect duplicated RPC call.<a name="line.2057"></a>
+<span class="sourceLineNo">2058</span>    long procId = this.procedureExecutor.submitProcedure(<a name="line.2058"></a>
+<span class="sourceLineNo">2059</span>      new CreateTableProcedure(procedureExecutor.getEnvironment(), tableDescriptor, newRegions));<a name="line.2059"></a>
+<span class="sourceLineNo">2060</span><a name="line.2060"></a>
+<span class="sourceLineNo">2061</span>    return procId;<a name="line.2061"></a>
+<span class="sourceLineNo">2062</span>  }<a name="line.2062"></a>
+<span class="sourceLineNo">2063</span><a name="line.2063"></a>
+<span class="sourceLineNo">2064</span>  /**<a name="line.2064"></a>
+<span class="sourceLineNo">2065</span>   * Checks whether the table conforms to some sane limits, and configured<a name="line.2065"></a>
+<span class="sourceLineNo">2066</span>   * values (compression, etc) work. Throws an exception if something is wrong.<a name="line.2066"></a>
+<span class="sourceLineNo">2067</span>   * @throws IOException<a name="line.2067"></a>
+<span class="sourceLineNo">2068</span>   */<a name="line.2068"></a>
+<span class="sourceLineNo">2069</span>  private void sanityCheckTableDescriptor(final TableDescriptor htd) throws IOException {<a name="line.2069"></a>
+<span class="sourceLineNo">2070</span>    final String CONF_KEY = "hbase.table.sanity.checks";<a name="line.2070"></a>
+<span class="sourceLineNo">2071</span>    boolean logWarn = false;<a name="line.2071"></a>
+<span class="sourceLineNo">2072</span>    if (!conf.getBoolean(CONF_KEY, true)) {<a name="line.2072"></a>
+<span class="sourceLineNo">2073</span>      logWarn = true;<a name="line.2073"></a>
+<span class="sourceLineNo">2074</span>    }<a name="line.2074"></a>
+<span class="sourceLineNo">2075</span>    String tableVal = htd.getValue(CONF_KEY);<a name="line.2075"></a>
+<span class="sourceLineNo">2076</span>    if (tableVal != null &amp;&amp; !Boolean.valueOf(tableVal)) {<a name="line.2076"></a>
+<span class="sourceLineNo">2077</span>      logWarn = true;<a name="line.2077"></a>
 <span class="sourceLineNo">2078</span>    }<a name="line.2078"></a>
-<span class="sourceLineNo">2079</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.2079"></a>
-<span class="sourceLineNo">2080</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.2080"></a>
-<span class="sourceLineNo">2081</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.2081"></a>
-<span class="sourceLineNo">2082</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.2082"></a>
-<span class="sourceLineNo">2083</span>          + "number of regions.";<a name="line.2083"></a>
-<span class="sourceLineNo">2084</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2084"></a>
+<span class="sourceLineNo">2079</span><a name="line.2079"></a>
+<span class="sourceLineNo">2080</span>    // check max file size<a name="line.2080"></a>
+<span class="sourceLineNo">2081</span>    long maxFileSizeLowerLimit = 2 * 1024 * 1024L; // 2M is the default lower limit<a name="line.2081"></a>
+<span class="sourceLineNo">2082</span>    long maxFileSize = htd.getMaxFileSize();<a name="line.2082"></a>
+<span class="sourceLineNo">2083</span>    if (maxFileSize &lt; 0) {<a name="line.2083"></a>
+<span class="sourceLineNo">2084</span>      maxFileSize = conf.getLong(HConstants.HREGION_MAX_FILESIZE, maxFileSizeLowerLimit);<a name="line.2084"></a>
 <span class="sourceLineNo">2085</span>    }<a name="line.2085"></a>
-<span class="sourceLineNo">2086</span><a name="line.2086"></a>
-<span class="sourceLineNo">2087</span>    // check flush size<a name="line.2087"></a>
-<span class="sourceLineNo">2088</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.2088"></a>
-<span class="sourceLineNo">2089</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.2089"></a>
-<span class="sourceLineNo">2090</span>    if (flushSize &lt; 0) {<a name="line.2090"></a>
-<span class="sourceLineNo">2091</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.2091"></a>
+<span class="sourceLineNo">2086</span>    if (maxFileSize &lt; conf.getLong("hbase.hregion.max.filesize.limit", maxFileSizeLowerLimit)) {<a name="line.2086"></a>
+<span class="sourceLineNo">2087</span>      String message = "MAX_FILESIZE for table descriptor or "<a name="line.2087"></a>
+<span class="sourceLineNo">2088</span>          + "\"hbase.hregion.max.filesize\" (" + maxFileSize<a name="line.2088"></a>
+<span class="sourceLineNo">2089</span>          + ") is too small, which might cause over splitting into unmanageable "<a name="line.2089"></a>
+<span class="sourceLineNo">2090</span>          + "number of regions.";<a name="line.2090"></a>
+<span class="sourceLineNo">2091</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2091"></a>
 <span class="sourceLineNo">2092</span>    }<a name="line.2092"></a>
-<span class="sourceLineNo">2093</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.2093"></a>
-<span class="sourceLineNo">2094</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.2094"></a>
-<span class="sourceLineNo">2095</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.2095"></a>
-<span class="sourceLineNo">2096</span>          + " very frequent flushing.";<a name="line.2096"></a>
-<span class="sourceLineNo">2097</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2097"></a>
-<span class="sourceLineNo">2098</span>    }<a name="line.2098"></a>
-<span class="sourceLineNo">2099</span><a name="line.2099"></a>
-<span class="sourceLineNo">2100</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.2100"></a>
-<span class="sourceLineNo">2101</span>    try {<a name="line.2101"></a>
-<span class="sourceLineNo">2102</span>      checkClassLoading(conf, htd);<a name="line.2102"></a>
-<span class="sourceLineNo">2103</span>    } catch (Exception ex) {<a name="line.2103"></a>
-<span class="sourceLineNo">2104</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.2104"></a>
+<span class="sourceLineNo">2093</span><a name="line.2093"></a>
+<span class="sourceLineNo">2094</span>    // check flush size<a name="line.2094"></a>
+<span class="sourceLineNo">2095</span>    long flushSizeLowerLimit = 1024 * 1024L; // 1M is the default lower limit<a name="line.2095"></a>
+<span class="sourceLineNo">2096</span>    long flushSize = htd.getMemStoreFlushSize();<a name="line.2096"></a>
+<span class="sourceLineNo">2097</span>    if (flushSize &lt; 0) {<a name="line.2097"></a>
+<span class="sourceLineNo">2098</span>      flushSize = conf.getLong(HConstants.HREGION_MEMSTORE_FLUSH_SIZE, flushSizeLowerLimit);<a name="line.2098"></a>
+<span class="sourceLineNo">2099</span>    }<a name="line.2099"></a>
+<span class="sourceLineNo">2100</span>    if (flushSize &lt; conf.getLong("hbase.hregion.memstore.flush.size.limit", flushSizeLowerLimit)) {<a name="line.2100"></a>
+<span class="sourceLineNo">2101</span>      String message = "MEMSTORE_FLUSHSIZE for table descriptor or "<a name="line.2101"></a>
+<span class="sourceLineNo">2102</span>          + "\"hbase.hregion.memstore.flush.size\" ("+flushSize+") is too small, which might cause"<a name="line.2102"></a>
+<span class="sourceLineNo">2103</span>          + " very frequent flushing.";<a name="line.2103"></a>
+<span class="sourceLineNo">2104</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2104"></a>
 <span class="sourceLineNo">2105</span>    }<a name="line.2105"></a>
 <span class="sourceLineNo">2106</span><a name="line.2106"></a>
-<span class="sourceLineNo">2107</span>    // check compression can be loaded<a name="line.2107"></a>
+<span class="sourceLineNo">2107</span>    // check that coprocessors and other specified plugin classes can be loaded<a name="line.2107"></a>
 <span class="sourceLineNo">2108</span>    try {<a name="line.2108"></a>
-<span class="sourceLineNo">2109</span>      checkCompression(htd);<a name="line.2109"></a>
-<span class="sourceLineNo">2110</span>    } catch (IOException e) {<a name="line.2110"></a>
-<span class="sourceLineNo">2111</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2111"></a>
+<span class="sourceLineNo">2109</span>      checkClassLoading(conf, htd);<a name="line.2109"></a>
+<span class="sourceLineNo">2110</span>    } catch (Exception ex) {<a name="line.2110"></a>
+<span class="sourceLineNo">2111</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, ex.getMessage(), null);<a name="line.2111"></a>
 <span class="sourceLineNo">2112</span>    }<a name="line.2112"></a>
 <span class="sourceLineNo">2113</span><a name="line.2113"></a>
-<span class="sourceLineNo">2114</span>    // check encryption can be loaded<a name="line.2114"></a>
+<span class="sourceLineNo">2114</span>    // check compression can be loaded<a name="line.2114"></a>
 <span class="sourceLineNo">2115</span>    try {<a name="line.2115"></a>
-<span class="sourceLineNo">2116</span>      checkEncryption(conf, htd);<a name="line.2116"></a>
+<span class="sourceLineNo">2116</span>      checkCompression(htd);<a name="line.2116"></a>
 <span class="sourceLineNo">2117</span>    } catch (IOException e) {<a name="line.2117"></a>
 <span class="sourceLineNo">2118</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2118"></a>
 <span class="sourceLineNo">2119</span>    }<a name="line.2119"></a>
-<span class="sourceLineNo">2120</span>    // Verify compaction policy<a name="line.2120"></a>
-<span class="sourceLineNo">2121</span>    try{<a name="line.2121"></a>
-<span class="sourceLineNo">2122</span>      checkCompactionPolicy(conf, htd);<a name="line.2122"></a>
-<span class="sourceLineNo">2123</span>    } catch(IOException e){<a name="line.2123"></a>
-<span class="sourceLineNo">2124</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.2124"></a>
-<span class="sourceLineNo">2125</span>    }<a name="line.2125"></a>
-<span class="sourceLineNo">2126</span>    // check that we have at least 1 CF<a name="line.2126"></a>
-<span class="sourceLineNo">2127</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.2127"></a>
-<span class="sourceLineNo">2128</span>      String message = "Table should have at least one column family.";<a name="line.2128"></a>
-<span class="sourceLineNo">2129</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2129"></a>
-<span class="sourceLineNo">2130</span>    }<a name="line.2130"></a>
-<span class="sourceLineNo">2131</span><a name="line.2131"></a>
-<span class="sourceLineNo">2132</span>    for (ColumnFamilyDescriptor hcd : htd.getColumnFamilies()) {<a name="line.2132"></a>
-<span class="sourceLineNo">2133</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.2133"></a>
-<span class="sourceLineNo">2134</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.2134"></a>
-<span class="sourceLineNo">2135</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2135"></a>
-<span class="sourceLineNo">2136</span>      }<a name="line.2136"></a>
-<span class="sourceLineNo">2137</span><a name="line.2137"></a>
-<span class="sourceLineNo">2138</span>      // check blockSize<a name="line.2138"></a>
-<span class="sourceLineNo">2139</span>      if (hcd.getBlocksize() &lt; 1024 || hcd.getBlocksize() &gt; 16 * 1024 * 1024) {<a name="line.2139"></a>
-<span class="sourceLineNo">2140</span>        String message = "Block size for column family " + hcd.getNameAsString()<a name="line.2140"></a>
-<span class="sourceLineNo">2141</span>            + "  must be between 1K and 16MB.";<a name="line.2141"></a>
+<span class="sourceLineNo">2120</span><a name="line.2120"></a>
+<span class="sourceLineNo">2121</span>    // check encryption can be loaded<a name="line.2121"></a>
+<span class="sourceLineNo">2122</span>    try {<a name="line.2122"></a>
+<span class="sourceLineNo">2123</span>      checkEncryption(conf, htd);<a name="line.2123"></a>
+<span class="sourceLineNo">2124</span>    } catch (IOException e) {<a name="line.2124"></a>
+<span class="sourceLineNo">2125</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e);<a name="line.2125"></a>
+<span class="sourceLineNo">2126</span>    }<a name="line.2126"></a>
+<span class="sourceLineNo">2127</span>    // Verify compaction policy<a name="line.2127"></a>
+<span class="sourceLineNo">2128</span>    try{<a name="line.2128"></a>
+<span class="sourceLineNo">2129</span>      checkCompactionPolicy(conf, htd);<a name="line.2129"></a>
+<span class="sourceLineNo">2130</span>    } catch(IOException e){<a name="line.2130"></a>
+<span class="sourceLineNo">2131</span>      warnOrThrowExceptionForFailure(false, CONF_KEY, e.getMessage(), e);<a name="line.2131"></a>
+<span class="sourceLineNo">2132</span>    }<a name="line.2132"></a>
+<span class="sourceLineNo">2133</span>    // check that we have at least 1 CF<a name="line.2133"></a>
+<span class="sourceLineNo">2134</span>    if (htd.getColumnFamilyCount() == 0) {<a name="line.2134"></a>
+<span class="sourceLineNo">2135</span>      String message = "Table should have at least one column family.";<a name="line.2135"></a>
+<span class="sourceLineNo">2136</span>      warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2136"></a>
+<span class="sourceLineNo">2137</span>    }<a name="line.2137"></a>
+<span class="sourceLineNo">2138</span><a name="line.2138"></a>
+<span class="sourceLineNo">2139</span>    for (ColumnFamilyDescriptor hcd : htd.getColumnFamilies()) {<a name="line.2139"></a>
+<span class="sourceLineNo">2140</span>      if (hcd.getTimeToLive() &lt;= 0) {<a name="line.2140"></a>
+<span class="sourceLineNo">2141</span>        String message = "TTL for column family " + hcd.getNameAsString() + " must be positive.";<a name="line.2141"></a>
 <span class="sourceLineNo">2142</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2142"></a>
 <span class="sourceLineNo">2143</span>      }<a name="line.2143"></a>
 <span class="sourceLineNo">2144</span><a name="line.2144"></a>
-<span class="sourceLineNo">2145</span>      // check versions<a name="line.2145"></a>
-<span class="sourceLineNo">2146</span>      if (hcd.getMinVersions() &lt; 0) {<a name="line.2146"></a>
-<span class="sourceLineNo">2147</span>        String message = "Min versions for column family " + hcd.getNameAsString()<a name="line.2147"></a>
-<span class="sourceLineNo">2148</span>          + "  must be positive.";<a name="line.2148"></a>
+<span class="sourceLineNo">2145</span>      // check blockSize<a name="line.2145"></a>
+<span class="sourceLineNo">2146</span>      if (hcd.getBlocksize() &lt; 1024 || hcd.getBlocksize() &gt; 16 * 1024 * 1024) {<a name="line.2146"></a>
+<span class="sourceLineNo">2147</span>        String message = "Block size for column family " + hcd.getNameAsString()<a name="line.2147"></a>
+<span class="sourceLineNo">2148</span>            + "  must be between 1K and 16MB.";<a name="line.2148"></a>
 <span class="sourceLineNo">2149</span>        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);<a name="line.2149"></a>
 <span class="sourceLineNo">2150</span>      }<a name="line.2150"></a>
-<span class="sourceLineNo">2151</span>      // max versions already being checked<a name="line.2151"></a>
-<span class="sourceLineNo">2152</span><a name="line.2152"></a>
-<span class="sourceLineNo">2153</span>      // HBASE-13776 Setting illegal versions for ColumnFamilyDescriptor<a name="line.2153"></a>
-<span class="sourceLineNo">2154</span>      //  does not throw IllegalArgumentException<a name="line.2154"></a>
-<span class="sourceLineNo">2155</span>      // check minVersions &lt;= maxVerions<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span>      if (hcd.getMinVersions() &gt; hcd.getMaxVersions()) {<a name="line.2156"></a>
-<span class="sourceLineNo">2157</span>        String message = "Min versions for column family " + hcd.getNameAsString()<a name="line.2157"></a>
-<span class="sourceLineNo">2158</span>            + " must be less than the Max versions.";<a name="line.2158"></a>
-<span class="sourceLineNo">2159</span> 

<TRUNCATED>

[14/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
index 4b1f2eb..68a607d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/class-use/HBaseTestingUtility.html
@@ -706,165 +706,165 @@
 <td class="colLast"><span class="typeNameLabel">TestAdmin2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin2.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
-<td class="colLast"><span class="typeNameLabel">TestCloneSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncTableBatch.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableBatch.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestScannersFromClientSide2.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScannersFromClientSide2.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestBlockEvictionFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestBlockEvictionFromClient.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncMetaRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncMetaRegionLocator.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncTableNoncedRetry.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableNoncedRetry.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestRegionLocationCaching.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRegionLocationCaching.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestMetaCache.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaCache.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestClientScannerRPCTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestClientScannerRPCTimeout.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestScannersFromClientSide.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScannersFromClientSide.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestHTableMultiplexer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestHTableMultiplexer.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncRegionLocatorTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncRegionLocatorTimeout.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestUpdateConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestUpdateConfiguration.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAdmin1.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAdmin1.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestIllegalTableDescriptor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestIllegalTableDescriptor.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestGetScanPartialResult.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestGetScanPartialResult.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestResultFromCoprocessor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestResultFromCoprocessor.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">AbstractTestScanCursor.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/AbstractTestScanCursor.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestPutWithDelete.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestPutWithDelete.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestEnableTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestEnableTable.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestLeaseRenewal.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestLeaseRenewal.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncAdminBase.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBase.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestTableFavoredNodes.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableFavoredNodes.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestFromClientSideNoCodec.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestFromClientSideNoCodec.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncTableLocatePrefetch.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableLocatePrefetch.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestMalformedCellFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMalformedCellFromClient.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestTimestampsFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestTimestampsFilter.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncTableScanRenewLease.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncTableScanRenewLease.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncNonMetaRegionLocator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncNonMetaRegionLocator.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestSmallReversedScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSmallReversedScanner.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestSnapshotWithAcl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSnapshotWithAcl.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestSizeFailures.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSizeFailures.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestScannerTimeout.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestScannerTimeout.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestCheckAndMutate.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCheckAndMutate.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestServerBusyException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestServerBusyException.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestMetaWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaWithReplicas.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestSplitOrMergeStatus.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestSplitOrMergeStatus.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncNonMetaRegionLocatorConcurrenyLimit.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncNonMetaRegionLocatorConcurrenyLimit.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncAdminBuilder.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncAdminBuilder.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestIntraRowPagination.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestIntraRowPagination.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CloneSnapshotFromClientTestBase.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestAsyncBufferMutator.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestAsyncBufferMutator.html#TEST_UTIL">TEST_UTIL</a></span></code>&nbsp;</td>
@@ -1001,63 +1001,55 @@
                        int&nbsp;expectedRegionSize)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><span class="typeNameLabel">TestMobCloneSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-byte:A:A-int-byte:A...-">createMobTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
-              org.apache.hadoop.hbase.TableName&nbsp;tableName,
-              byte[][]&nbsp;splitKeys,
-              int&nbsp;regionReplication,
-              byte[]...&nbsp;families)</code>&nbsp;</td>
-</tr>
-<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">TestEnableTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestEnableTable.html#createTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.HTableDescriptor-byte:A:A-">createTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;testUtil,
            org.apache.hadoop.hbase.HTableDescriptor&nbsp;htd,
            byte[][]&nbsp;splitKeys)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">TestTableSnapshotScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableSnapshotScanner.html#createTableAndSnapshot-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-java.lang.String-int-">createTableAndSnapshot</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
                       org.apache.hadoop.hbase.TableName&nbsp;tableName,
                       <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;snapshotName,
                       int&nbsp;numRegions)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">TestEnableTable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestEnableTable.html#deleteTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-">deleteTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;testUtil,
            org.apache.hadoop.hbase.TableName&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">TestMetaWithReplicas.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMetaWithReplicas.html#shutdownMetaAndDoValidations-org.apache.hadoop.hbase.HBaseTestingUtility-">shutdownMetaAndDoValidations</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">TestTableSnapshotScanner.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestTableSnapshotScanner.html#testScanner-org.apache.hadoop.hbase.HBaseTestingUtility-java.lang.String-int-boolean-">testScanner</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
            <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;snapshotName,
            int&nbsp;numRegions,
            boolean&nbsp;shutdownCluster)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">TestMobCloneSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
+<td class="colLast"><span class="typeNameLabel">TestMobCloneSnapshotFromClientNormal.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
               org.apache.hadoop.hbase.TableName&nbsp;tableName,
               long&nbsp;expectedRows)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">TestRestoreSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestRestoreSnapshotFromClient.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
               org.apache.hadoop.hbase.TableName&nbsp;tableName,
               long&nbsp;expectedRows)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">TestCloneSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
+<td class="colLast"><span class="typeNameLabel">TestMobRestoreSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
               org.apache.hadoop.hbase.TableName&nbsp;tableName,
               long&nbsp;expectedRows)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
-<td class="colLast"><span class="typeNameLabel">TestMobRestoreSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobRestoreSnapshotFromClient.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
+<td class="colLast"><span class="typeNameLabel">CloneSnapshotFromClientTestBase.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
               org.apache.hadoop.hbase.TableName&nbsp;tableName,
               long&nbsp;expectedRows)</code>&nbsp;</td>
 </tr>
@@ -4283,7 +4275,7 @@
 </td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>private static void</code></td>
+<td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">MobSnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-byte:A:A-int-byte:A...-">createMobTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
               org.apache.hadoop.hbase.TableName&nbsp;tableName,
               byte[][]&nbsp;splitKeys,
@@ -4292,6 +4284,15 @@
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">MobSnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-byte:A:A-int-java.lang.String-byte:A...-">createMobTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
+              org.apache.hadoop.hbase.TableName&nbsp;tableName,
+              byte[][]&nbsp;splitKeys,
+              int&nbsp;regionReplication,
+              <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;cpClassName,
+              byte[]...&nbsp;families)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">MobSnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#createMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-int-byte:A...-">createMobTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
               org.apache.hadoop.hbase.TableName&nbsp;tableName,
               int&nbsp;regionReplication,
@@ -4299,34 +4300,34 @@
 <div class="block">Create the Mob Table.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">MobSnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#createPreSplitMobTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-int-byte:A...-">createPreSplitMobTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
                       org.apache.hadoop.hbase.TableName&nbsp;tableName,
                       int&nbsp;nRegions,
                       byte[]...&nbsp;families)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">SnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html#createPreSplitTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-int-byte:A...-">createPreSplitTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
                    org.apache.hadoop.hbase.TableName&nbsp;tableName,
                    int&nbsp;nRegions,
                    byte[]...&nbsp;families)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">SnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html#createTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-byte:A...-">createTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
            org.apache.hadoop.hbase.TableName&nbsp;tableName,
            byte[]...&nbsp;families)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">SnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html#createTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-int-byte:A...-">createTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
            org.apache.hadoop.hbase.TableName&nbsp;tableName,
            int&nbsp;regionReplication,
            byte[]...&nbsp;families)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">SnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html#createTable-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-int-int-byte:A...-">createTable</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
            org.apache.hadoop.hbase.TableName&nbsp;tableName,
@@ -4334,61 +4335,61 @@
            int&nbsp;nRegions,
            byte[]...&nbsp;families)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">SnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html#deleteArchiveDirectory-org.apache.hadoop.hbase.HBaseTestingUtility-">deleteArchiveDirectory</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">SnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html#loadData-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.client.BufferedMutator-int-byte:A...-">loadData</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
         org.apache.hadoop.hbase.client.BufferedMutator&nbsp;mutator,
         int&nbsp;rows,
         byte[]...&nbsp;families)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">SnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html#loadData-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-int-byte:A...-">loadData</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
         org.apache.hadoop.hbase.TableName&nbsp;tableName,
         int&nbsp;rows,
         byte[]...&nbsp;families)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">MobSnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#verifyMobRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyMobRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
                  org.apache.hadoop.hbase.TableName&nbsp;tableName,
                  long&nbsp;expectedRows)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">TestRestoreFlushSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/TestRestoreFlushSnapshotFromClient.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
               org.apache.hadoop.hbase.TableName&nbsp;tableName,
               long&nbsp;expectedRows)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">TestMobFlushSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/TestMobFlushSnapshotFromClient.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
               org.apache.hadoop.hbase.TableName&nbsp;tableName,
               long&nbsp;expectedRows)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">TestFlushSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/TestFlushSnapshotFromClient.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
               org.apache.hadoop.hbase.TableName&nbsp;tableName,
               long&nbsp;expectedRows)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">SnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
               org.apache.hadoop.hbase.TableName&nbsp;tableName,
               long&nbsp;expectedRows)</code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected void</code></td>
 <td class="colLast"><span class="typeNameLabel">TestMobRestoreFlushSnapshotFromClient.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/TestMobRestoreFlushSnapshotFromClient.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
               org.apache.hadoop.hbase.TableName&nbsp;tableName,
               long&nbsp;expectedRows)</code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>static void</code></td>
 <td class="colLast"><span class="typeNameLabel">SnapshotTestingUtils.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/snapshot/SnapshotTestingUtils.html#waitForTableToBeOnline-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-">waitForTableToBeOnline</a></span>(<a href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtility.html" title="class in org.apache.hadoop.hbase">HBaseTestingUtility</a>&nbsp;util,
                       org.apache.hadoop.hbase.TableName&nbsp;tableName)</code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/BufferingScanResultConsumer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/BufferingScanResultConsumer.html b/testdevapidocs/org/apache/hadoop/hbase/client/BufferingScanResultConsumer.html
index af3d3dd..9c26512 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/client/BufferingScanResultConsumer.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/BufferingScanResultConsumer.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/client/AbstractTestShell.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/BufferingScanResultConsumer.html" target="_top">Frames</a></li>
@@ -422,7 +422,7 @@ implements org.apache.hadoop.hbase.client.AdvancedScanResultConsumer</pre>
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/client/AbstractTestShell.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/client/ColumnCountOnRowFilter.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/BufferingScanResultConsumer.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html b/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html
new file mode 100644
index 0000000..0cee850
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html
@@ -0,0 +1,328 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CloneSnapshotFromClientAfterSplittingRegionTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CloneSnapshotFromClientAfterSplittingRegionTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloneSnapshotFromClientAfterSplittingRegionTestBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/BufferingScanResultConsumer.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientAfterSplittingRegionTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class CloneSnapshotFromClientAfterSplittingRegionTestBase" class="title">Class CloneSnapshotFromClientAfterSplittingRegionTestBase</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.CloneSnapshotFromClientAfterSplittingRegionTestBase</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientAfterSplittingRegion</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#line.31">CloneSnapshotFromClientAfterSplittingRegionTestBase</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#CloneSnapshotFromClientAfterSplittingRegionTestBase--">CloneSnapshotFromClientAfterSplittingRegionTestBase</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</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/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#splitRegion-org.apache.hadoop.hbase.client.RegionInfo-">splitRegion</a></span>(org.apache.hadoop.hbase.client.RegionInfo&nbsp;regionInfo)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#testCloneSnapshotAfterSplittingRegion--">testCloneSnapshotAfterSplittingRegion</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotF
 romClientTestBase.html#setupConfiguration--">setupConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CloneSnapshotFromClientAfterSplittingRegionTestBase--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CloneSnapshotFromClientAfterSplittingRegionTestBase</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#line.31">CloneSnapshotFromClientAfterSplittingRegionTestBase</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="splitRegion-org.apache.hadoop.hbase.client.RegionInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>splitRegion</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#line.34">splitRegion</a>(org.apache.hadoop.hbase.client.RegionInfo&nbsp;regionInfo)
+                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="testCloneSnapshotAfterSplittingRegion--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testCloneSnapshotAfterSplittingRegion</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#line.40">testCloneSnapshotAfterSplittingRegion</a>()
+                                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloneSnapshotFromClientAfterSplittingRegionTestBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/BufferingScanResultConsumer.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientAfterSplittingRegionTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html b/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html
new file mode 100644
index 0000000..b270802
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CloneSnapshotFromClientCloneLinksAfterDeleteTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CloneSnapshotFromClientCloneLinksAfterDeleteTestBase (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.client</div>
+<h2 title="Class CloneSnapshotFromClientCloneLinksAfterDeleteTestBase" class="title">Class CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.client.CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientCloneLinksAfterDelete</a>, <a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html#line.24">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#admin">admin</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#emptySnapshot">emptySnapshot</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#FAMILY">FAMILY</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#name">name</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot0Rows">snapshot0Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshot1Rows">snapshot1Rows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName0">snapshotName0</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName1">snapshotName1</a>, <a href="../../../../../org/apa
 che/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#snapshotName2">snapshotName2</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tableName">tableName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#TEST_UTIL">TEST_UTIL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html#CloneSnapshotFromClientCloneLinksAfterDeleteTestBase--">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html#testCloneLinksAfterDelete--">testCloneLinksAfterDelete</a></span>()</code>
+<div class="block">Verify that tables created from the snapshot are still alive after source table deletion.</div>
+</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/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html#waitCleanerRun--">waitCleanerRun</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#countRows-org.apache.hadoop.hbase.client.Table-">countRows</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#createTable--">createTable</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getNumReplicas--">getNumReplicas</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#getValidMethodName--">getValidMethodName</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#numRowsToLoad--">numRowsToLoad</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setup--">setup</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#setUpBeforeClass--">setUpBeforeClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotF
 romClientTestBase.html#setupConfiguration--">setupConfiguration</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDown--">tearDown</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#tearDownAfterClass--">tearDownAfterClass</a>, <a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#verifyRowCount-org.apache.hadoop.hbase.HBaseTestingUtility-org.apache.hadoop.hbase.TableName-long-">verifyRowCount</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/ja
 va/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CloneSnapshotFromClientCloneLinksAfterDeleteTestBase--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html#line.24">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="testCloneLinksAfterDelete--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>testCloneLinksAfterDelete</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html#line.31">testCloneLinksAfterDelete</a>()
+                               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
+                                      <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<div class="block">Verify that tables created from the snapshot are still alive after source table deletion.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="waitCleanerRun--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>waitCleanerRun</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html#line.82">waitCleanerRun</a>()
+                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" target="_top">Frames</a></li>
+<li><a href="CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2018 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>


[21/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 cb9d178..90087b4 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
@@ -598,3212 +598,3215 @@
 <span class="sourceLineNo">590</span>      Superusers.initialize(conf);<a name="line.590"></a>
 <span class="sourceLineNo">591</span><a name="line.591"></a>
 <span class="sourceLineNo">592</span>      regionServerAccounting = new RegionServerAccounting(conf);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      cacheConfig = new CacheConfig(conf);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      mobCacheConfig = new MobCacheConfig(conf);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
-<span class="sourceLineNo">597</span>        public void uncaughtException(Thread t, Throwable e) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span>          abort("Uncaught exception in executorService thread " + t.getName(), e);<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><a name="line.601"></a>
-<span class="sourceLineNo">602</span>      initializeFileSystem();<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.603"></a>
+<span class="sourceLineNo">593</span>      boolean isMasterNotCarryTable =<a name="line.593"></a>
+<span class="sourceLineNo">594</span>          this instanceof HMaster &amp;&amp; !LoadBalancer.isTablesOnMaster(conf) &amp;&amp; !LoadBalancer<a name="line.594"></a>
+<span class="sourceLineNo">595</span>              .isSystemTablesOnlyOnMaster(conf);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>      cacheConfig = new CacheConfig(conf, !isMasterNotCarryTable);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>      mobCacheConfig = new MobCacheConfig(conf, !isMasterNotCarryTable);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>        @Override<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        public void uncaughtException(Thread t, Throwable e) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>          abort("Uncaught exception in executorService thread " + t.getName(), e);<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      };<a name="line.603"></a>
 <span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>      this.configurationManager = new ConfigurationManager();<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      setupWindows(getConfiguration(), getConfigurationManager());<a name="line.606"></a>
+<span class="sourceLineNo">605</span>      initializeFileSystem();<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.606"></a>
 <span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        // Open connection to zookeeper and set primary watcher<a name="line.610"></a>
-<span class="sourceLineNo">611</span>        zooKeeper = new ZKWatcher(conf, getProcessName() + ":" +<a name="line.611"></a>
-<span class="sourceLineNo">612</span>          rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        // If no master in cluster, skip trying to track one or look for a cluster status.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        if (!this.masterless) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>          this.csm = new ZkCoordinatedStateManager(this);<a name="line.615"></a>
-<span class="sourceLineNo">616</span><a name="line.616"></a>
-<span class="sourceLineNo">617</span>          masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>          masterAddressTracker.start();<a name="line.618"></a>
+<span class="sourceLineNo">608</span>      this.configurationManager = new ConfigurationManager();<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      setupWindows(getConfiguration(), getConfigurationManager());<a name="line.609"></a>
+<span class="sourceLineNo">610</span><a name="line.610"></a>
+<span class="sourceLineNo">611</span>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.611"></a>
+<span class="sourceLineNo">612</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        // Open connection to zookeeper and set primary watcher<a name="line.613"></a>
+<span class="sourceLineNo">614</span>        zooKeeper = new ZKWatcher(conf, getProcessName() + ":" +<a name="line.614"></a>
+<span class="sourceLineNo">615</span>          rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        // If no master in cluster, skip trying to track one or look for a cluster status.<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        if (!this.masterless) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>          this.csm = new ZkCoordinatedStateManager(this);<a name="line.618"></a>
 <span class="sourceLineNo">619</span><a name="line.619"></a>
-<span class="sourceLineNo">620</span>          clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>          clusterStatusTracker.start();<a name="line.621"></a>
-<span class="sourceLineNo">622</span>        } else {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>          masterAddressTracker = null;<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          clusterStatusTracker = null;<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        }<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      } else {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>        zooKeeper = null;<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        masterAddressTracker = null;<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        clusterStatusTracker = null;<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      }<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      this.rpcServices.start(zooKeeper);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      // This violates 'no starting stuff in Constructor' but Master depends on the below chore<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      // and executor being created and takes a different startup route. Lots of overlap between HRS<a name="line.633"></a>
-<span class="sourceLineNo">634</span>      // and M (An M IS A HRS now). Need to refactor so less duplication between M and its super<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      // Master expects Constructor to put up web servers. Ugh.<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      // class HRS. TODO.<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      this.choreService = new ChoreService(getName(), true);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      this.executorService = new ExecutorService(getName());<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      putUpWebUI();<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    } catch (Throwable t) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      // Make sure we log the exception. HRegionServer is often started via reflection and the<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      // cause of failed startup is lost.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>      LOG.error("Failed construction RegionServer", t);<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      throw t;<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  }<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>  // HMaster should override this method to load the specific config for master<a name="line.648"></a>
-<span class="sourceLineNo">649</span>  protected String getUseThisHostnameInstead(Configuration conf) throws IOException {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    String hostname = conf.get(RS_HOSTNAME_KEY);<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    if (conf.getBoolean(RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, false)) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      if (!StringUtils.isBlank(hostname)) {<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        String msg = RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY + " and " + RS_HOSTNAME_KEY +<a name="line.653"></a>
-<span class="sourceLineNo">654</span>          " are mutually exclusive. Do not set " + RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY +<a name="line.654"></a>
-<span class="sourceLineNo">655</span>          " to true while " + RS_HOSTNAME_KEY + " is used";<a name="line.655"></a>
-<span class="sourceLineNo">656</span>        throw new IOException(msg);<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      } else {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>        return rpcServices.isa.getHostName();<a name="line.658"></a>
-<span class="sourceLineNo">659</span>      }<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    } else {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>      return hostname;<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    }<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  }<a name="line.663"></a>
-<span class="sourceLineNo">664</span><a name="line.664"></a>
-<span class="sourceLineNo">665</span>  /**<a name="line.665"></a>
-<span class="sourceLineNo">666</span>   * If running on Windows, do windows-specific setup.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>   */<a name="line.667"></a>
-<span class="sourceLineNo">668</span>  private static void setupWindows(final Configuration conf, ConfigurationManager cm) {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>        @Override<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        public void handle(Signal signal) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>          conf.reloadConfiguration();<a name="line.673"></a>
-<span class="sourceLineNo">674</span>          cm.notifyAllObservers(conf);<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        }<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      });<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    }<a name="line.677"></a>
-<span class="sourceLineNo">678</span>  }<a name="line.678"></a>
-<span class="sourceLineNo">679</span><a name="line.679"></a>
-<span class="sourceLineNo">680</span>  private static NettyEventLoopGroupConfig setupNetty(Configuration conf) {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    // Initialize netty event loop group at start as we may use it for rpc server, rpc client &amp; WAL.<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    NettyEventLoopGroupConfig nelgc =<a name="line.682"></a>
-<span class="sourceLineNo">683</span>      new NettyEventLoopGroupConfig(conf, "RS-EventLoopGroup");<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    NettyRpcClientConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    NettyAsyncFSWALConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    return nelgc;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  }<a name="line.687"></a>
-<span class="sourceLineNo">688</span><a name="line.688"></a>
-<span class="sourceLineNo">689</span>  private void initializeFileSystem() throws IOException {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.694"></a>
-<span class="sourceLineNo">695</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.697"></a>
-<span class="sourceLineNo">698</span>    // (unless all is set to defaults).<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>    return new FSTableDescriptors(this.conf,<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false, getMetaTableObserver());<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 Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return null;<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 login(UserProvider user, String host) throws IOException {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    user.login("hbase.regionserver.keytab.file",<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      "hbase.regionserver.kerberos.principal", host);<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><a name="line.719"></a>
-<span class="sourceLineNo">720</span>  /**<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   * Wait for an active Master.<a name="line.721"></a>
-<span class="sourceLineNo">722</span>   * See override in Master superclass for how it is used.<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   */<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  protected void waitForMasterActive() {}<a name="line.724"></a>
-<span class="sourceLineNo">725</span><a name="line.725"></a>
-<span class="sourceLineNo">726</span>  protected String getProcessName() {<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    return REGIONSERVER;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  }<a name="line.728"></a>
-<span class="sourceLineNo">729</span><a name="line.729"></a>
-<span class="sourceLineNo">730</span>  protected boolean canCreateBaseZNode() {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    return this.masterless;<a name="line.731"></a>
-<span class="sourceLineNo">732</span>  }<a name="line.732"></a>
-<span class="sourceLineNo">733</span><a name="line.733"></a>
-<span class="sourceLineNo">734</span>  protected boolean canUpdateTableDescriptor() {<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    return false;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>  }<a name="line.736"></a>
-<span class="sourceLineNo">737</span><a name="line.737"></a>
-<span class="sourceLineNo">738</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    return new RSRpcServices(this);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  protected void configureInfoServer() {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.744"></a>
-<span class="sourceLineNo">745</span>  }<a name="line.745"></a>
-<span class="sourceLineNo">746</span><a name="line.746"></a>
-<span class="sourceLineNo">747</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    return RSDumpServlet.class;<a name="line.748"></a>
-<span class="sourceLineNo">749</span>  }<a name="line.749"></a>
-<span class="sourceLineNo">750</span><a name="line.750"></a>
-<span class="sourceLineNo">751</span>  @Override<a name="line.751"></a>
-<span class="sourceLineNo">752</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    /*<a name="line.753"></a>
-<span class="sourceLineNo">754</span>     * No stacking of instances is allowed for a single executorService name<a name="line.754"></a>
-<span class="sourceLineNo">755</span>     */<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.756"></a>
-<span class="sourceLineNo">757</span>        instance.getDescriptorForType();<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.758"></a>
-<span class="sourceLineNo">759</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.759"></a>
-<span class="sourceLineNo">760</span>      LOG.error("Coprocessor executorService " + serviceName<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          + " already registered, rejecting request from " + instance);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      return false;<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    }<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    if (LOG.isDebugEnabled()) {<a name="line.766"></a>
-<span class="sourceLineNo">767</span>      LOG.debug("Registered regionserver coprocessor executorService: executorService=" + serviceName);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    }<a name="line.768"></a>
-<span class="sourceLineNo">769</span>    return true;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>  }<a name="line.770"></a>
-<span class="sourceLineNo">771</span><a name="line.771"></a>
-<span class="sourceLineNo">772</span>  /**<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   * the local server; i.e. a short-circuit Connection. Safe to use going to local or remote<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   * server. Create this instance in a method can be intercepted and mocked in tests.<a name="line.775"></a>
-<span class="sourceLineNo">776</span>   * @throws IOException<a name="line.776"></a>
-<span class="sourceLineNo">777</span>   */<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  @VisibleForTesting<a name="line.778"></a>
-<span class="sourceLineNo">779</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    Configuration conf = this.conf;<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    if (conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM) != null) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>      // Use server ZK cluster for server-issued connections, so we clone<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      // the conf and unset the client ZK related properties<a name="line.783"></a>
-<span class="sourceLineNo">784</span>      conf = new Configuration(this.conf);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      conf.unset(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    }<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.788"></a>
-<span class="sourceLineNo">789</span>    // and remote invocations.<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      serverName, rpcServices, rpcServices);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>  }<a name="line.792"></a>
-<span class="sourceLineNo">793</span><a name="line.793"></a>
-<span class="sourceLineNo">794</span>  /**<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   * @param c<a name="line.796"></a>
-<span class="sourceLineNo">797</span>   * @throws IOException<a name="line.797"></a>
-<span class="sourceLineNo">798</span>   */<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    // check to see if the codec list is available:<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.801"></a>
-<span class="sourceLineNo">802</span>    if (codecs == null) return;<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    for (String codec : codecs) {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>        throw new IOException("Compression codec " + codec +<a name="line.805"></a>
-<span class="sourceLineNo">806</span>          " not supported, aborting RS construction");<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      }<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    }<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>  public String getClusterId() {<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    return this.clusterId;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>  }<a name="line.813"></a>
-<span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>  /**<a name="line.815"></a>
-<span class="sourceLineNo">816</span>   * Setup our cluster connection if not already initialized.<a name="line.816"></a>
-<span class="sourceLineNo">817</span>   * @throws IOException<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   */<a name="line.818"></a>
-<span class="sourceLineNo">819</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    if (clusterConnection == null) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>      clusterConnection = createClusterConnection();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      metaTableLocator = new MetaTableLocator();<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>  }<a name="line.824"></a>
-<span class="sourceLineNo">825</span><a name="line.825"></a>
-<span class="sourceLineNo">826</span>  /**<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * All initialization needed before we go register with Master.&lt;br&gt;<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.&lt;br&gt;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * In here we just put up the RpcServer, setup Connection, and ZooKeeper.<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   */<a name="line.830"></a>
-<span class="sourceLineNo">831</span>  private void preRegistrationInitialization() {<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    try {<a name="line.832"></a>
-<span class="sourceLineNo">833</span>      initializeZooKeeper();<a name="line.833"></a>
-<span class="sourceLineNo">834</span>      setupClusterConnection();<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      // Setup RPC client for master communication<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      this.rpcClient = RpcClientFactory.createClient(conf, clusterId, new InetSocketAddress(<a name="line.836"></a>
-<span class="sourceLineNo">837</span>          this.rpcServices.isa.getAddress(), 0), clusterConnection.getConnectionMetrics());<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    } catch (Throwable t) {<a name="line.838"></a>
-<span class="sourceLineNo">839</span>      // Call stop if error or process will stick around for ever since server<a name="line.839"></a>
-<span class="sourceLineNo">840</span>      // puts up non-daemon threads.<a name="line.840"></a>
-<span class="sourceLineNo">841</span>      this.rpcServices.stop();<a name="line.841"></a>
-<span class="sourceLineNo">842</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    }<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Bring up connection to zk ensemble and then wait until a master for this cluster and then after<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * that, wait until cluster 'up' flag has been set. This is the order in which master does things.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * &lt;p&gt;<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * Finally open long-living server short-circuit connection.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    justification="cluster Id znode read would give us correct response")<a name="line.853"></a>
-<span class="sourceLineNo">854</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>    // Nothing to do in here if no Master in the mix.<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    if (this.masterless) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      return;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // block until a master is available.  No point in starting up if no master<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    // running.<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.863"></a>
-<span class="sourceLineNo">864</span><a name="line.864"></a>
-<span class="sourceLineNo">865</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    // when ready.<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.867"></a>
-<span class="sourceLineNo">868</span><a name="line.868"></a>
-<span class="sourceLineNo">869</span>    // If we are HMaster then the cluster id should have already been set.<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    if (clusterId == null) {<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      // Retrieve clusterId<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      // Since cluster status is now up<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      // ID should have already been set by HMaster<a name="line.873"></a>
-<span class="sourceLineNo">874</span>      try {<a name="line.874"></a>
-<span class="sourceLineNo">875</span>        clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        if (clusterId == null) {<a name="line.876"></a>
-<span class="sourceLineNo">877</span>          this.abort("Cluster ID has not been set");<a name="line.877"></a>
-<span class="sourceLineNo">878</span>        }<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        LOG.info("ClusterId : " + clusterId);<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      } catch (KeeperException e) {<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        this.abort("Failed to retrieve Cluster ID", e);<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      }<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    }<a name="line.883"></a>
-<span class="sourceLineNo">884</span><a name="line.884"></a>
-<span class="sourceLineNo">885</span>    waitForMasterActive();<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    if (isStopped() || isAborted()) {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>      return; // No need for further initialization<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>    // watch for snapshots and other procedures<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    try {<a name="line.891"></a>
-<span class="sourceLineNo">892</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.892"></a>
-<span class="sourceLineNo">893</span>      rspmHost.loadProcedures(conf);<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      rspmHost.initialize(this);<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    } catch (KeeperException e) {<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    }<a name="line.897"></a>
-<span class="sourceLineNo">898</span>  }<a name="line.898"></a>
-<span class="sourceLineNo">899</span><a name="line.899"></a>
-<span class="sourceLineNo">900</span>  /**<a name="line.900"></a>
-<span class="sourceLineNo">901</span>   * Utilty method to wait indefinitely on a znode availability while checking<a name="line.901"></a>
-<span class="sourceLineNo">902</span>   * if the region server is shut down<a name="line.902"></a>
-<span class="sourceLineNo">903</span>   * @param tracker znode tracker to use<a name="line.903"></a>
-<span class="sourceLineNo">904</span>   * @throws IOException any IO exception, plus if the RS is stopped<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * @throws InterruptedException<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   */<a name="line.906"></a>
-<span class="sourceLineNo">907</span>  private void blockAndCheckIfStopped(ZKNodeTracker tracker)<a name="line.907"></a>
-<span class="sourceLineNo">908</span>      throws IOException, InterruptedException {<a name="line.908"></a>
-<span class="sourceLineNo">909</span>    while (tracker.blockUntilAvailable(this.msgInterval, false) == null) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>      if (this.stopped) {<a name="line.910"></a>
-<span class="sourceLineNo">911</span>        throw new IOException("Received the shutdown message while waiting.");<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      }<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  }<a name="line.914"></a>
-<span class="sourceLineNo">915</span><a name="line.915"></a>
-<span class="sourceLineNo">916</span>  /**<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @return True if the cluster is up.<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   */<a name="line.918"></a>
-<span class="sourceLineNo">919</span>  @Override<a name="line.919"></a>
-<span class="sourceLineNo">920</span>  public boolean isClusterUp() {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>    return this.masterless ||<a name="line.921"></a>
-<span class="sourceLineNo">922</span>        (this.clusterStatusTracker != null &amp;&amp; this.clusterStatusTracker.isClusterUp());<a name="line.922"></a>
-<span class="sourceLineNo">923</span>  }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>  /**<a name="line.925"></a>
-<span class="sourceLineNo">926</span>   * The HRegionServer sticks in this loop until closed.<a name="line.926"></a>
-<span class="sourceLineNo">927</span>   */<a name="line.927"></a>
-<span class="sourceLineNo">928</span>  @Override<a name="line.928"></a>
-<span class="sourceLineNo">929</span>  public void run() {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    try {<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      // Do pre-registration initializations; zookeeper, lease threads, etc.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      preRegistrationInitialization();<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    } catch (Throwable e) {<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      abort("Fatal exception during initialization", e);<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
-<span class="sourceLineNo">936</span><a name="line.936"></a>
-<span class="sourceLineNo">937</span>    try {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>        ShutdownHook.install(conf, fs, this, Thread.currentThread());<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        // Initialize the RegionServerCoprocessorHost now that our ephemeral<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        // node was created, in case any coprocessors want to use ZooKeeper<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        this.rsHost = new RegionServerCoprocessorHost(this, this.conf);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      }<a name="line.943"></a>
-<span class="sourceLineNo">944</span><a name="line.944"></a>
-<span class="sourceLineNo">945</span>      // Try and register with the Master; tell it we are here.  Break if server is stopped or the<a name="line.945"></a>
-<span class="sourceLineNo">946</span>      // clusterup flag is down or hdfs went wacky. Once registered successfully, go ahead and start<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      // up all Services. Use RetryCounter to get backoff in case Master is struggling to come up.<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      RetryCounterFactory rcf = new RetryCounterFactory(Integer.MAX_VALUE,<a name="line.948"></a>
-<span class="sourceLineNo">949</span>          this.sleeper.getPeriod(), 1000 * 60 * 5);<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      RetryCounter rc = rcf.create();<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      while (keepLooping()) {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>        RegionServerStartupResponse w = reportForDuty();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>        if (w == null) {<a name="line.953"></a>
-<span class="sourceLineNo">954</span>          long sleepTime = rc.getBackoffTimeAndIncrementAttempts();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>          LOG.warn("reportForDuty failed; sleeping {} ms and then retrying.", sleepTime);<a name="line.955"></a>
-<span class="sourceLineNo">956</span>          this.sleeper.sleep(sleepTime);<a name="line.956"></a>
-<span class="sourceLineNo">957</span>        } else {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>          handleReportForDutyResponse(w);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>          break;<a name="line.959"></a>
-<span class="sourceLineNo">960</span>        }<a name="line.960"></a>
-<span class="sourceLineNo">961</span>      }<a name="line.961"></a>
-<span class="sourceLineNo">962</span><a name="line.962"></a>
-<span class="sourceLineNo">963</span>      if (!isStopped() &amp;&amp; isHealthy()) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        // start the snapshot handler and other procedure handlers,<a name="line.964"></a>
-<span class="sourceLineNo">965</span>        // since the server is ready to run<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        if (this.rspmHost != null) {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>          this.rspmHost.start();<a name="line.967"></a>
-<span class="sourceLineNo">968</span>        }<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        // Start the Quota Manager<a name="line.969"></a>
-<span class="sourceLineNo">970</span>        if (this.rsQuotaManager != null) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>          rsQuotaManager.start(getRpcServer().getScheduler());<a name="line.971"></a>
-<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (this.rsSpaceQuotaManager != null) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          this.rsSpaceQuotaManager.start();<a name="line.974"></a>
+<span class="sourceLineNo">620</span>          masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.620"></a>
+<span class="sourceLineNo">621</span>          masterAddressTracker.start();<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>          clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.623"></a>
+<span class="sourceLineNo">624</span>          clusterStatusTracker.start();<a name="line.624"></a>
+<span class="sourceLineNo">625</span>        } else {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>          masterAddressTracker = null;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>          clusterStatusTracker = null;<a name="line.627"></a>
+<span class="sourceLineNo">628</span>        }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      } else {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        zooKeeper = null;<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        masterAddressTracker = null;<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        clusterStatusTracker = null;<a name="line.632"></a>
+<span class="sourceLineNo">633</span>      }<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      this.rpcServices.start(zooKeeper);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>      // This violates 'no starting stuff in Constructor' but Master depends on the below chore<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      // and executor being created and takes a different startup route. Lots of overlap between HRS<a name="line.636"></a>
+<span class="sourceLineNo">637</span>      // and M (An M IS A HRS now). Need to refactor so less duplication between M and its super<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      // Master expects Constructor to put up web servers. Ugh.<a name="line.638"></a>
+<span class="sourceLineNo">639</span>      // class HRS. TODO.<a name="line.639"></a>
+<span class="sourceLineNo">640</span>      this.choreService = new ChoreService(getName(), true);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>      this.executorService = new ExecutorService(getName());<a name="line.641"></a>
+<span class="sourceLineNo">642</span>      putUpWebUI();<a name="line.642"></a>
+<span class="sourceLineNo">643</span>    } catch (Throwable t) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>      // Make sure we log the exception. HRegionServer is often started via reflection and the<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      // cause of failed startup is lost.<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      LOG.error("Failed construction RegionServer", t);<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      throw t;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>    }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  }<a name="line.649"></a>
+<span class="sourceLineNo">650</span><a name="line.650"></a>
+<span class="sourceLineNo">651</span>  // HMaster should override this method to load the specific config for master<a name="line.651"></a>
+<span class="sourceLineNo">652</span>  protected String getUseThisHostnameInstead(Configuration conf) throws IOException {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>    String hostname = conf.get(RS_HOSTNAME_KEY);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    if (conf.getBoolean(RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, false)) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      if (!StringUtils.isBlank(hostname)) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        String msg = RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY + " and " + RS_HOSTNAME_KEY +<a name="line.656"></a>
+<span class="sourceLineNo">657</span>          " are mutually exclusive. Do not set " + RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY +<a name="line.657"></a>
+<span class="sourceLineNo">658</span>          " to true while " + RS_HOSTNAME_KEY + " is used";<a name="line.658"></a>
+<span class="sourceLineNo">659</span>        throw new IOException(msg);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      } else {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        return rpcServices.isa.getHostName();<a name="line.661"></a>
+<span class="sourceLineNo">662</span>      }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    } else {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      return hostname;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
+<span class="sourceLineNo">669</span>   * If running on Windows, do windows-specific setup.<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   */<a name="line.670"></a>
+<span class="sourceLineNo">671</span>  private static void setupWindows(final Configuration conf, ConfigurationManager cm) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        @Override<a name="line.674"></a>
+<span class="sourceLineNo">675</span>        public void handle(Signal signal) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>          conf.reloadConfiguration();<a name="line.676"></a>
+<span class="sourceLineNo">677</span>          cm.notifyAllObservers(conf);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>        }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>      });<a name="line.679"></a>
+<span class="sourceLineNo">680</span>    }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
+<span class="sourceLineNo">682</span><a name="line.682"></a>
+<span class="sourceLineNo">683</span>  private static NettyEventLoopGroupConfig setupNetty(Configuration conf) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    // Initialize netty event loop group at start as we may use it for rpc server, rpc client &amp; WAL.<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    NettyEventLoopGroupConfig nelgc =<a name="line.685"></a>
+<span class="sourceLineNo">686</span>      new NettyEventLoopGroupConfig(conf, "RS-EventLoopGroup");<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    NettyRpcClientConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.687"></a>
+<span class="sourceLineNo">688</span>    NettyAsyncFSWALConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    return nelgc;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>  }<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>  private void initializeFileSystem() throws IOException {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.693"></a>
+<span class="sourceLineNo">694</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.694"></a>
+<span class="sourceLineNo">695</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.696"></a>
+<span class="sourceLineNo">697</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.698"></a>
+<span class="sourceLineNo">699</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.700"></a>
+<span class="sourceLineNo">701</span>    // (unless all is set to defaults).<a name="line.701"></a>
+<span class="sourceLineNo">702</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.702"></a>
+<span class="sourceLineNo">703</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.704"></a>
+<span class="sourceLineNo">705</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.705"></a>
+<span class="sourceLineNo">706</span>  }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>    return new FSTableDescriptors(this.conf,<a name="line.709"></a>
+<span class="sourceLineNo">710</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false, getMetaTableObserver());<a name="line.710"></a>
+<span class="sourceLineNo">711</span>  }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>    return null;<a name="line.714"></a>
+<span class="sourceLineNo">715</span>  }<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    user.login("hbase.regionserver.keytab.file",<a name="line.718"></a>
+<span class="sourceLineNo">719</span>      "hbase.regionserver.kerberos.principal", host);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>  }<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>  /**<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   * Wait for an active Master.<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * See override in Master superclass for how it is used.<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   */<a name="line.726"></a>
+<span class="sourceLineNo">727</span>  protected void waitForMasterActive() {}<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>  protected String getProcessName() {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>    return REGIONSERVER;<a name="line.730"></a>
+<span class="sourceLineNo">731</span>  }<a name="line.731"></a>
+<span class="sourceLineNo">732</span><a name="line.732"></a>
+<span class="sourceLineNo">733</span>  protected boolean canCreateBaseZNode() {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    return this.masterless;<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>  protected boolean canUpdateTableDescriptor() {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    return false;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>  }<a name="line.739"></a>
+<span class="sourceLineNo">740</span><a name="line.740"></a>
+<span class="sourceLineNo">741</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    return new RSRpcServices(this);<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>  protected void configureInfoServer() {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.747"></a>
+<span class="sourceLineNo">748</span>  }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    return RSDumpServlet.class;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>  }<a name="line.752"></a>
+<span class="sourceLineNo">753</span><a name="line.753"></a>
+<span class="sourceLineNo">754</span>  @Override<a name="line.754"></a>
+<span class="sourceLineNo">755</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    /*<a name="line.756"></a>
+<span class="sourceLineNo">757</span>     * No stacking of instances is allowed for a single executorService name<a name="line.757"></a>
+<span class="sourceLineNo">758</span>     */<a name="line.758"></a>
+<span class="sourceLineNo">759</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        instance.getDescriptorForType();<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.761"></a>
+<span class="sourceLineNo">762</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>      LOG.error("Coprocessor executorService " + serviceName<a name="line.763"></a>
+<span class="sourceLineNo">764</span>          + " already registered, rejecting request from " + instance);<a name="line.764"></a>
+<span class="sourceLineNo">765</span>      return false;<a name="line.765"></a>
+<span class="sourceLineNo">766</span>    }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>    if (LOG.isDebugEnabled()) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>      LOG.debug("Registered regionserver coprocessor executorService: executorService=" + serviceName);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>    }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    return true;<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>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.776"></a>
+<span class="sourceLineNo">777</span>   * the local server; i.e. a short-circuit Connection. Safe to use going to local or remote<a name="line.777"></a>
+<span class="sourceLineNo">778</span>   * server. Create this instance in a method can be intercepted and mocked in tests.<a name="line.778"></a>
+<span class="sourceLineNo">779</span>   * @throws IOException<a name="line.779"></a>
+<span class="sourceLineNo">780</span>   */<a name="line.780"></a>
+<span class="sourceLineNo">781</span>  @VisibleForTesting<a name="line.781"></a>
+<span class="sourceLineNo">782</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.782"></a>
+<span class="sourceLineNo">783</span>    Configuration conf = this.conf;<a name="line.783"></a>
+<span class="sourceLineNo">784</span>    if (conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM) != null) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>      // Use server ZK cluster for server-issued connections, so we clone<a name="line.785"></a>
+<span class="sourceLineNo">786</span>      // the conf and unset the client ZK related properties<a name="line.786"></a>
+<span class="sourceLineNo">787</span>      conf = new Configuration(this.conf);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>      conf.unset(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.788"></a>
+<span class="sourceLineNo">789</span>    }<a name="line.789"></a>
+<span class="sourceLineNo">790</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.790"></a>
+<span class="sourceLineNo">791</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.791"></a>
+<span class="sourceLineNo">792</span>    // and remote invocations.<a name="line.792"></a>
+<span class="sourceLineNo">793</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.793"></a>
+<span class="sourceLineNo">794</span>      serverName, rpcServices, rpcServices);<a name="line.794"></a>
+<span class="sourceLineNo">795</span>  }<a name="line.795"></a>
+<span class="sourceLineNo">796</span><a name="line.796"></a>
+<span class="sourceLineNo">797</span>  /**<a name="line.797"></a>
+<span class="sourceLineNo">798</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.798"></a>
+<span class="sourceLineNo">799</span>   * @param c<a name="line.799"></a>
+<span class="sourceLineNo">800</span>   * @throws IOException<a name="line.800"></a>
+<span class="sourceLineNo">801</span>   */<a name="line.801"></a>
+<span class="sourceLineNo">802</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    // check to see if the codec list is available:<a name="line.803"></a>
+<span class="sourceLineNo">804</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.804"></a>
+<span class="sourceLineNo">805</span>    if (codecs == null) return;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    for (String codec : codecs) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        throw new IOException("Compression codec " + codec +<a name="line.808"></a>
+<span class="sourceLineNo">809</span>          " not supported, aborting RS construction");<a name="line.809"></a>
+<span class="sourceLineNo">810</span>      }<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>  }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>  public String getClusterId() {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    return this.clusterId;<a name="line.815"></a>
+<span class="sourceLineNo">816</span>  }<a name="line.816"></a>
+<span class="sourceLineNo">817</span><a name="line.817"></a>
+<span class="sourceLineNo">818</span>  /**<a name="line.818"></a>
+<span class="sourceLineNo">819</span>   * Setup our cluster connection if not already initialized.<a name="line.819"></a>
+<span class="sourceLineNo">820</span>   * @throws IOException<a name="line.820"></a>
+<span class="sourceLineNo">821</span>   */<a name="line.821"></a>
+<span class="sourceLineNo">822</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    if (clusterConnection == null) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>      clusterConnection = createClusterConnection();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>      metaTableLocator = new MetaTableLocator();<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>  }<a name="line.827"></a>
+<span class="sourceLineNo">828</span><a name="line.828"></a>
+<span class="sourceLineNo">829</span>  /**<a name="line.829"></a>
+<span class="sourceLineNo">830</span>   * All initialization needed before we go register with Master.&lt;br&gt;<a name="line.830"></a>
+<span class="sourceLineNo">831</span>   * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.&lt;br&gt;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>   * In here we just put up the RpcServer, setup Connection, and ZooKeeper.<a name="line.832"></a>
+<span class="sourceLineNo">833</span>   */<a name="line.833"></a>
+<span class="sourceLineNo">834</span>  private void preRegistrationInitialization() {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    try {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>      initializeZooKeeper();<a name="line.836"></a>
+<span class="sourceLineNo">837</span>      setupClusterConnection();<a name="line.837"></a>
+<span class="sourceLineNo">838</span>      // Setup RPC client for master communication<a name="line.838"></a>
+<span class="sourceLineNo">839</span>      this.rpcClient = RpcClientFactory.createClient(conf, clusterId, new InetSocketAddress(<a name="line.839"></a>
+<span class="sourceLineNo">840</span>          this.rpcServices.isa.getAddress(), 0), clusterConnection.getConnectionMetrics());<a name="line.840"></a>
+<span class="sourceLineNo">841</span>    } catch (Throwable t) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>      // Call stop if error or process will stick around for ever since server<a name="line.842"></a>
+<span class="sourceLineNo">843</span>      // puts up non-daemon threads.<a name="line.843"></a>
+<span class="sourceLineNo">844</span>      this.rpcServices.stop();<a name="line.844"></a>
+<span class="sourceLineNo">845</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    }<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Bring up connection to zk ensemble and then wait until a master for this cluster and then after<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * that, wait until cluster 'up' flag has been set. This is the order in which master does things.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * &lt;p&gt;<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * Finally open long-living server short-circuit connection.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    justification="cluster Id znode read would give us correct response")<a name="line.856"></a>
+<span class="sourceLineNo">857</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>    // Nothing to do in here if no Master in the mix.<a name="line.858"></a>
+<span class="sourceLineNo">859</span>    if (this.masterless) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      return;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    }<a name="line.861"></a>
+<span class="sourceLineNo">862</span><a name="line.862"></a>
+<span class="sourceLineNo">863</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.863"></a>
+<span class="sourceLineNo">864</span>    // block until a master is available.  No point in starting up if no master<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    // running.<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.866"></a>
+<span class="sourceLineNo">867</span><a name="line.867"></a>
+<span class="sourceLineNo">868</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.868"></a>
+<span class="sourceLineNo">869</span>    // when ready.<a name="line.869"></a>
+<span class="sourceLineNo">870</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.870"></a>
+<span class="sourceLineNo">871</span><a name="line.871"></a>
+<span class="sourceLineNo">872</span>    // If we are HMaster then the cluster id should have already been set.<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    if (clusterId == null) {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      // Retrieve clusterId<a name="line.874"></a>
+<span class="sourceLineNo">875</span>      // Since cluster status is now up<a name="line.875"></a>
+<span class="sourceLineNo">876</span>      // ID should have already been set by HMaster<a name="line.876"></a>
+<span class="sourceLineNo">877</span>      try {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        if (clusterId == null) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>          this.abort("Cluster ID has not been set");<a name="line.880"></a>
+<span class="sourceLineNo">881</span>        }<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        LOG.info("ClusterId : " + clusterId);<a name="line.882"></a>
+<span class="sourceLineNo">883</span>      } catch (KeeperException e) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        this.abort("Failed to retrieve Cluster ID", e);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>      }<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>    waitForMasterActive();<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    if (isStopped() || isAborted()) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>      return; // No need for further initialization<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    }<a name="line.891"></a>
+<span class="sourceLineNo">892</span><a name="line.892"></a>
+<span class="sourceLineNo">893</span>    // watch for snapshots and other procedures<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    try {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.895"></a>
+<span class="sourceLineNo">896</span>      rspmHost.loadProcedures(conf);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>      rspmHost.initialize(this);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    } catch (KeeperException e) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>  }<a name="line.901"></a>
+<span class="sourceLineNo">902</span><a name="line.902"></a>
+<span class="sourceLineNo">903</span>  /**<a name="line.903"></a>
+<span class="sourceLineNo">904</span>   * Utilty method to wait indefinitely on a znode availability while checking<a name="line.904"></a>
+<span class="sourceLineNo">905</span>   * if the region server is shut down<a name="line.905"></a>
+<span class="sourceLineNo">906</span>   * @param tracker znode tracker to use<a name="line.906"></a>
+<span class="sourceLineNo">907</span>   * @throws IOException any IO exception, plus if the RS is stopped<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * @throws InterruptedException<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   */<a name="line.909"></a>
+<span class="sourceLineNo">910</span>  private void blockAndCheckIfStopped(ZKNodeTracker tracker)<a name="line.910"></a>
+<span class="sourceLineNo">911</span>      throws IOException, InterruptedException {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>    while (tracker.blockUntilAvailable(this.msgInterval, false) == null) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>      if (this.stopped) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>        throw new IOException("Received the shutdown message while waiting.");<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>  }<a name="line.917"></a>
+<span class="sourceLineNo">918</span><a name="line.918"></a>
+<span class="sourceLineNo">919</span>  /**<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   * @return True if the cluster is up.<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   */<a name="line.921"></a>
+<span class="sourceLineNo">922</span>  @Override<a name="line.922"></a>
+<span class="sourceLineNo">923</span>  public boolean isClusterUp() {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>    return this.masterless ||<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        (this.clusterStatusTracker != null &amp;&amp; this.clusterStatusTracker.isClusterUp());<a name="line.925"></a>
+<span class="sourceLineNo">926</span>  }<a name="line.926"></a>
+<span class="sourceLineNo">927</span><a name="line.927"></a>
+<span class="sourceLineNo">928</span>  /**<a name="line.928"></a>
+<span class="sourceLineNo">929</span>   * The HRegionServer sticks in this loop until closed.<a name="line.929"></a>
+<span class="sourceLineNo">930</span>   */<a name="line.930"></a>
+<span class="sourceLineNo">931</span>  @Override<a name="line.931"></a>
+<span class="sourceLineNo">932</span>  public void run() {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    try {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      // Do pre-registration initializations; zookeeper, lease threads, etc.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>      preRegistrationInitialization();<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    } catch (Throwable e) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>      abort("Fatal exception during initialization", e);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>    }<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>    try {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>        ShutdownHook.install(conf, fs, this, Thread.currentThread());<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        // Initialize the RegionServerCoprocessorHost now that our ephemeral<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        // node was created, in case any coprocessors want to use ZooKeeper<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        this.rsHost = new RegionServerCoprocessorHost(this, this.conf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      }<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>      // Try and register with the Master; tell it we are here.  Break if server is stopped or the<a name="line.948"></a>
+<span class="sourceLineNo">949</span>      // clusterup flag is down or hdfs went wacky. Once registered successfully, go ahead and start<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      // up all Services. Use RetryCounter to get backoff in case Master is struggling to come up.<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      RetryCounterFactory rcf = new RetryCounterFactory(Integer.MAX_VALUE,<a name="line.951"></a>
+<span class="sourceLineNo">952</span>          this.sleeper.getPeriod(), 1000 * 60 * 5);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      RetryCounter rc = rcf.create();<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      while (keepLooping()) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>        RegionServerStartupResponse w = reportForDuty();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        if (w == null) {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>          long sleepTime = rc.getBackoffTimeAndIncrementAttempts();<a name="line.957"></a>
+<span class="sourceLineNo">958</span>          LOG.warn("reportForDuty failed; sleeping {} ms and then retrying.", sleepTime);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>          this.sleeper.sleep(sleepTime);<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>          handleReportForDutyResponse(w);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>          break;<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        }<a name="line.963"></a>
+<span class="sourceLineNo">964</span>      }<a name="line.964"></a>
+<span class="sourceLineNo">965</span><a name="line.965"></a>
+<span class="sourceLineNo">966</span>      if (!isStopped() &amp;&amp; isHealthy()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>        // start the snapshot handler and other procedure handlers,<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        // since the server is ready to run<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        if (this.rspmHost != null) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>          this.rspmHost.start();<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        // Start the Quota Manager<a name="line.972"></a>
+<span class="sourceLineNo">973</span>        if (this.rsQuotaManager != null) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>          rsQuotaManager.start(getRpcServer().getScheduler());<a name="line.974"></a>
 <span class="sourceLineNo">975</span>        }<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      }<a name="line.976"></a>
-<span class="sourceLineNo">977</span><a name="line.977"></a>
-<span class="sourceLineNo">978</span>      // We registered with the Master.  Go into run mode.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>      long lastMsg = System.currentTimeMillis();<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      long oldRequestCount = -1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // The main run loop.<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      while (!isStopped() &amp;&amp; isHealthy()) {<a name="line.982"></a>
-<span class="sourceLineNo">983</span>        if (!isClusterUp()) {<a name="line.983"></a>
-<span class="sourceLineNo">984</span>          if (isOnlineRegionsEmpty()) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>            stop("Exiting; cluster shutdown set and not carrying any regions");<a name="line.985"></a>
-<span class="sourceLineNo">986</span>          } else if (!this.stopping) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            this.stopping = true;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>            LOG.info("Closing user regions");<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            closeUserRegions(this.abortRequested);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>          } else if (this.stopping) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>            boolean allUserRegionsOffline = areAllUserRegionsOffline();<a name="line.991"></a>
-<span class="sourceLineNo">992</span>            if (allUserRegionsOffline) {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>              // Set stopped if no more write requests tp meta tables<a name="line.993"></a>
-<span class="sourceLineNo">994</span>              // since last time we went around the loop.  Any open<a name="line.994"></a>
-<span class="sourceLineNo">995</span>              // meta regions will be closed on our way out.<a name="line.995"></a>
-<span class="sourceLineNo">996</span>              if (oldRequestCount == getWriteRequestCount()) {<a name="line.996"></a>
-<span class="sourceLineNo">997</span>                stop("Stopped; only catalog regions remaining online");<a name="line.997"></a>
-<span class="sourceLineNo">998</span>                break;<a name="line.998"></a>
-<span class="sourceLineNo">999</span>              }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>              oldRequestCount = getWriteRequestCount();<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>            } else {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>              // Make sure all regions have been closed -- some regions may<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>              // have not got it because we were splitting at the time of<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>              // the call to closeUserRegions.<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>              closeUserRegions(this.abortRequested);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>            }<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>            LOG.debug("Waiting on " + getOnlineRegionsAsPrintableString());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>          }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>        long now = System.currentTimeMillis();<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>        if ((now - lastMsg) &gt;= msgInterval) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>          tryRegionServerReport(lastMsg, now);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>          lastMsg = System.currentTimeMillis();<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>        }<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>        if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>          this.sleeper.sleep();<a name="line.1016"></a>
+<span class="sourceLineNo">976</span>        if (this.rsSpaceQuotaManager != null) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          this.rsSpaceQuotaManager.start();<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        }<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span><a name="line.980"></a>
+<span class="sourceLineNo">981</span>      // We registered with the Master.  Go into run mode.<a name="line.981"></a>
+<span class="sourceLineNo">982</span>      long lastMsg = System.currentTimeMillis();<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      long oldRequestCount = -1;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // The main run loop.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      while (!isStopped() &amp;&amp; isHealthy()) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>        if (!isClusterUp()) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>          if (isOnlineRegionsEmpty()) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            stop("Exiting; cluster shutdown set and not carrying any regions");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          } else if (!this.stopping) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>            this.stopping = true;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>            LOG.info("Closing user regions");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>            closeUserRegions(this.abortRequested);<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          } else if (this.stopping) {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>            boolean allUserRegionsOffline = areAllUserRegionsOffline();<a name="line.994"></a>
+<span class="sourceLineNo">995</span>            if (allUserRegionsOffline) {<a name="line.995"></a>
+<span class="sourceLineNo">996</span>              // Set stopped if no more write requests tp meta tables<a name="line.996"></a>
+<span class="sourceLineNo">997</span>              // since last time we went around the loop.  Any open<a name="line.997"></a>
+<span class="sourceLineNo">998</span>              // meta regions will be closed on our way out.<a name="line.998"></a>
+<span class="sourceLineNo">999</span>              if (oldRequestCount == getWriteRequestCount()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                stop("Stopped; only catalog regions remaining online");<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                break;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>              }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>              oldRequestCount = getWriteRequestCount();<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>            } else {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>              // Make sure all regions have been closed -- some regions may<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>              // have not got it because we were splitting at the time of<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>              // the call to closeUserRegions.<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>              closeUserRegions(this.abortRequested);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>            }<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>            LOG.debug("Waiting on " + getOnlineRegionsAsPrintableString());<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>          }<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        long now = System.currentTimeMillis();<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        if ((now - lastMsg) &gt;= msgInterval) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>          tryRegionServerReport(lastMsg, now);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>          lastMsg = System.currentTimeMillis();<a name="line.1016"></a>
 <span class="sourceLineNo">1017</span>        }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      } // for<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    } catch (Throwable t) {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      if (!rpcServices.checkOOME(t)) {<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>        String prefix = t instanceof YouAreDeadException? "": "Unhandled: ";<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>        abort(prefix + t.getMessage(), t);<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (this.leases != null) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      this.leases.closeAfterLeasesExpire();<a name="line.1026"></a>
+<span class="sourceLineNo">1018</span>        if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>          this.sleeper.sleep();<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>        }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      } // for<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    } catch (Throwable t) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      if (!rpcServices.checkOOME(t)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        String prefix = t instanceof YouAreDeadException? "": "Unhandled: ";<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        abort(prefix + t.getMessage(), t);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      }<a name="line.1026"></a>
 <span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (this.splitLogWorker != null) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      splitLogWorker.stop();<a name="line.1029"></a>
+<span class="sourceLineNo">1028</span>    if (this.leases != null) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      this.leases.closeAfterLeasesExpire();<a name="line.1029"></a>
 <span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>    if (this.infoServer != null) {<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      LOG.info("Stopping infoServer");<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>      try {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>        this.infoServer.stop();<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      } catch (Exception e) {<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        LOG.error("Failed to stop infoServer", e);<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    // Send cache a shutdown.<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    if (cacheConfig != null &amp;&amp; cacheConfig.isBlockCacheEnabled()) {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>      cacheConfig.getBlockCache().shutdown();<

<TRUNCATED>

[17/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/downloads.html
----------------------------------------------------------------------
diff --git a/downloads.html b/downloads.html
index 7a7f208..0163009 100644
--- a/downloads.html
+++ b/downloads.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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase Downloads</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -433,7 +433,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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index be74861..f7ef211 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -341,7 +341,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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 75b8fb7..abdba22 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBaseâ„¢ Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -421,7 +421,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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index 3993358..c8c5086 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -301,7 +301,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 20be85c..0548b76 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -298,7 +298,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index 918c561..0644b51 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -501,7 +501,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index b4d4685..199f472 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -351,7 +351,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index 45903d2..d9a9800 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -469,7 +469,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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index 46ee094..a00655f 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -450,7 +450,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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index ca7d47d..ac6e5c7 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -450,7 +450,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index 867f7c2..32a548f 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -385,7 +385,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 62b7535..8d78933 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <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.4-HBase.min.css" />
@@ -779,7 +779,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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index 739b5f3..dc8d7ae 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -345,7 +345,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index e7562cb..b49b0a2 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -315,7 +315,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index ff46d46..aeddf44 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -341,7 +341,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index 7256434..19f1c98 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -318,7 +318,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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index 58c4c18..68f661b 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index e5873c8..4d3bbd8 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <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.4-HBase.min.css" />
@@ -341,7 +341,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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index 24a4680..893c57e 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -309,7 +309,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index 60157f7..a1f26ee 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase™ Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -343,7 +343,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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index 6f91824..0542f61 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -530,7 +530,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: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index 115f430..18fbc98 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="20181014" />
+    <meta name="Date-Revision-yyyymmdd" content="20181015" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -770,7 +770,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2018-10-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2018-10-15</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-frame.html b/testdevapidocs/allclasses-frame.html
index 3028488..fa8542a 100644
--- a/testdevapidocs/allclasses-frame.html
+++ b/testdevapidocs/allclasses-frame.html
@@ -83,6 +83,11 @@
 <li><a href="org/apache/hadoop/hbase/ClassTestFinder.TestClassFilter.html" title="class in org.apache.hadoop.hbase" target="classFrame">ClassTestFinder.TestClassFilter</a></li>
 <li><a href="org/apache/hadoop/hbase/ClassTestFinder.TestFileNameFilter.html" title="class in org.apache.hadoop.hbase" target="classFrame">ClassTestFinder.TestFileNameFilter</a></li>
 <li><a href="org/apache/hadoop/hbase/testclassification/ClientTests.html" title="interface in org.apache.hadoop.hbase.testclassification" target="classFrame"><span class="interfaceName">ClientTests</span></a></li>
+<li><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">CloneSnapshotFromClientAfterSplittingRegionTestBase</a></li>
+<li><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></li>
+<li><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">CloneSnapshotFromClientErrorTestBase</a></li>
+<li><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">CloneSnapshotFromClientNormalTestBase</a></li>
+<li><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">CloneSnapshotFromClientTestBase</a></li>
 <li><a href="org/apache/hadoop/hbase/ClusterManager.html" title="interface in org.apache.hadoop.hbase" target="classFrame"><span class="interfaceName">ClusterManager</span></a></li>
 <li><a href="org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase" target="classFrame">ClusterManager.ServiceType</a></li>
 <li><a href="org/apache/hadoop/hbase/codec/CodecPerformance.html" title="class in org.apache.hadoop.hbase.codec" target="classFrame">CodecPerformance</a></li>
@@ -861,8 +866,10 @@
 <li><a href="org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutBlockingRpcChannel.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestClientTimeouts.RandomTimeoutBlockingRpcChannel</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestClientTimeouts.RandomTimeoutRpcClient</a></li>
 <li><a href="org/apache/hadoop/hbase/master/TestClockSkewDetection.html" title="class in org.apache.hadoop.hbase.master" target="classFrame">TestClockSkewDetection</a></li>
-<li><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestCloneSnapshotFromClient</a></li>
-<li><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestCloneSnapshotFromClientWithRegionReplicas</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestCloneSnapshotFromClientAfterSplittingRegion</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestCloneSnapshotFromClientCloneLinksAfterDelete</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestCloneSnapshotFromClientError</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestCloneSnapshotFromClientNormal</a></li>
 <li><a href="org/apache/hadoop/hbase/master/procedure/TestCloneSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure" target="classFrame">TestCloneSnapshotProcedure</a></li>
 <li><a href="org/apache/hadoop/hbase/master/TestCloseAnOpeningRegion.html" title="class in org.apache.hadoop.hbase.master" target="classFrame">TestCloseAnOpeningRegion</a></li>
 <li><a href="org/apache/hadoop/hbase/master/TestCloseAnOpeningRegion.MockHMaster.html" title="class in org.apache.hadoop.hbase.master" target="classFrame">TestCloseAnOpeningRegion.MockHMaster</a></li>
@@ -1511,8 +1518,11 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/TestMinorCompaction.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestMinorCompaction</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestMinVersions.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestMinVersions</a></li>
 <li><a href="org/apache/hadoop/hbase/master/TestMirroringTableStateManager.html" title="class in org.apache.hadoop.hbase.master" target="classFrame">TestMirroringTableStateManager</a></li>
-<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClient</a></li>
-<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClientError</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">TestMobCloneSnapshotFromClientNormal</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/compactions/TestMobCompactor.html" title="class in org.apache.hadoop.hbase.mob.compactions" target="classFrame">TestMobCompactor</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/compactions/TestMobCompactor.CompactTwoLatestHfilesCopro.html" title="class in org.apache.hadoop.hbase.mob.compactions" target="classFrame">TestMobCompactor.CompactTwoLatestHfilesCopro</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/TestMobDataBlockEncoding.html" title="class in org.apache.hadoop.hbase.mob" target="classFrame">TestMobDataBlockEncoding</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/testdevapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-noframe.html b/testdevapidocs/allclasses-noframe.html
index 0f24312..f63e01b 100644
--- a/testdevapidocs/allclasses-noframe.html
+++ b/testdevapidocs/allclasses-noframe.html
@@ -83,6 +83,11 @@
 <li><a href="org/apache/hadoop/hbase/ClassTestFinder.TestClassFilter.html" title="class in org.apache.hadoop.hbase">ClassTestFinder.TestClassFilter</a></li>
 <li><a href="org/apache/hadoop/hbase/ClassTestFinder.TestFileNameFilter.html" title="class in org.apache.hadoop.hbase">ClassTestFinder.TestFileNameFilter</a></li>
 <li><a href="org/apache/hadoop/hbase/testclassification/ClientTests.html" title="interface in org.apache.hadoop.hbase.testclassification"><span class="interfaceName">ClientTests</span></a></li>
+<li><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a></li>
+<li><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientCloneLinksAfterDeleteTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientCloneLinksAfterDeleteTestBase</a></li>
+<li><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientErrorTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientErrorTestBase</a></li>
+<li><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientNormalTestBase</a></li>
+<li><a href="org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html" title="class in org.apache.hadoop.hbase.client">CloneSnapshotFromClientTestBase</a></li>
 <li><a href="org/apache/hadoop/hbase/ClusterManager.html" title="interface in org.apache.hadoop.hbase"><span class="interfaceName">ClusterManager</span></a></li>
 <li><a href="org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase">ClusterManager.ServiceType</a></li>
 <li><a href="org/apache/hadoop/hbase/codec/CodecPerformance.html" title="class in org.apache.hadoop.hbase.codec">CodecPerformance</a></li>
@@ -861,8 +866,10 @@
 <li><a href="org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutBlockingRpcChannel.html" title="class in org.apache.hadoop.hbase.client">TestClientTimeouts.RandomTimeoutBlockingRpcChannel</a></li>
 <li><a href="org/apache/hadoop/hbase/client/TestClientTimeouts.RandomTimeoutRpcClient.html" title="class in org.apache.hadoop.hbase.client">TestClientTimeouts.RandomTimeoutRpcClient</a></li>
 <li><a href="org/apache/hadoop/hbase/master/TestClockSkewDetection.html" title="class in org.apache.hadoop.hbase.master">TestClockSkewDetection</a></li>
-<li><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClient</a></li>
-<li><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientWithRegionReplicas.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientWithRegionReplicas</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientAfterSplittingRegion</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientCloneLinksAfterDelete</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientError</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestCloneSnapshotFromClientNormal</a></li>
 <li><a href="org/apache/hadoop/hbase/master/procedure/TestCloneSnapshotProcedure.html" title="class in org.apache.hadoop.hbase.master.procedure">TestCloneSnapshotProcedure</a></li>
 <li><a href="org/apache/hadoop/hbase/master/TestCloseAnOpeningRegion.html" title="class in org.apache.hadoop.hbase.master">TestCloseAnOpeningRegion</a></li>
 <li><a href="org/apache/hadoop/hbase/master/TestCloseAnOpeningRegion.MockHMaster.html" title="class in org.apache.hadoop.hbase.master">TestCloseAnOpeningRegion.MockHMaster</a></li>
@@ -1511,8 +1518,11 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/TestMinorCompaction.html" title="class in org.apache.hadoop.hbase.regionserver">TestMinorCompaction</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestMinVersions.html" title="class in org.apache.hadoop.hbase.regionserver">TestMinVersions</a></li>
 <li><a href="org/apache/hadoop/hbase/master/TestMirroringTableStateManager.html" title="class in org.apache.hadoop.hbase.master">TestMirroringTableStateManager</a></li>
-<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient</a></li>
-<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClient.DelayFlushCoprocessor</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientAfterSplittingRegion</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientError</a></li>
+<li><a href="org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html" title="class in org.apache.hadoop.hbase.client">TestMobCloneSnapshotFromClientNormal</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/compactions/TestMobCompactor.html" title="class in org.apache.hadoop.hbase.mob.compactions">TestMobCompactor</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/compactions/TestMobCompactor.CompactTwoLatestHfilesCopro.html" title="class in org.apache.hadoop.hbase.mob.compactions">TestMobCompactor.CompactTwoLatestHfilesCopro</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/TestMobDataBlockEncoding.html" title="class in org.apache.hadoop.hbase.mob">TestMobDataBlockEncoding</a></li>


[22/38] hbase-site git commit: Published site at 4a043126b1bc9ef92ddbe04732ec5ac769d15b0f.

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/9c64af45/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 cb9d178..90087b4 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
@@ -598,3212 +598,3215 @@
 <span class="sourceLineNo">590</span>      Superusers.initialize(conf);<a name="line.590"></a>
 <span class="sourceLineNo">591</span><a name="line.591"></a>
 <span class="sourceLineNo">592</span>      regionServerAccounting = new RegionServerAccounting(conf);<a name="line.592"></a>
-<span class="sourceLineNo">593</span>      cacheConfig = new CacheConfig(conf);<a name="line.593"></a>
-<span class="sourceLineNo">594</span>      mobCacheConfig = new MobCacheConfig(conf);<a name="line.594"></a>
-<span class="sourceLineNo">595</span>      uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.595"></a>
-<span class="sourceLineNo">596</span>        @Override<a name="line.596"></a>
-<span class="sourceLineNo">597</span>        public void uncaughtException(Thread t, Throwable e) {<a name="line.597"></a>
-<span class="sourceLineNo">598</span>          abort("Uncaught exception in executorService thread " + t.getName(), e);<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><a name="line.601"></a>
-<span class="sourceLineNo">602</span>      initializeFileSystem();<a name="line.602"></a>
-<span class="sourceLineNo">603</span>      spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.603"></a>
+<span class="sourceLineNo">593</span>      boolean isMasterNotCarryTable =<a name="line.593"></a>
+<span class="sourceLineNo">594</span>          this instanceof HMaster &amp;&amp; !LoadBalancer.isTablesOnMaster(conf) &amp;&amp; !LoadBalancer<a name="line.594"></a>
+<span class="sourceLineNo">595</span>              .isSystemTablesOnlyOnMaster(conf);<a name="line.595"></a>
+<span class="sourceLineNo">596</span>      cacheConfig = new CacheConfig(conf, !isMasterNotCarryTable);<a name="line.596"></a>
+<span class="sourceLineNo">597</span>      mobCacheConfig = new MobCacheConfig(conf, !isMasterNotCarryTable);<a name="line.597"></a>
+<span class="sourceLineNo">598</span>      uncaughtExceptionHandler = new UncaughtExceptionHandler() {<a name="line.598"></a>
+<span class="sourceLineNo">599</span>        @Override<a name="line.599"></a>
+<span class="sourceLineNo">600</span>        public void uncaughtException(Thread t, Throwable e) {<a name="line.600"></a>
+<span class="sourceLineNo">601</span>          abort("Uncaught exception in executorService thread " + t.getName(), e);<a name="line.601"></a>
+<span class="sourceLineNo">602</span>        }<a name="line.602"></a>
+<span class="sourceLineNo">603</span>      };<a name="line.603"></a>
 <span class="sourceLineNo">604</span><a name="line.604"></a>
-<span class="sourceLineNo">605</span>      this.configurationManager = new ConfigurationManager();<a name="line.605"></a>
-<span class="sourceLineNo">606</span>      setupWindows(getConfiguration(), getConfigurationManager());<a name="line.606"></a>
+<span class="sourceLineNo">605</span>      initializeFileSystem();<a name="line.605"></a>
+<span class="sourceLineNo">606</span>      spanReceiverHost = SpanReceiverHost.getInstance(getConfiguration());<a name="line.606"></a>
 <span class="sourceLineNo">607</span><a name="line.607"></a>
-<span class="sourceLineNo">608</span>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.608"></a>
-<span class="sourceLineNo">609</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.609"></a>
-<span class="sourceLineNo">610</span>        // Open connection to zookeeper and set primary watcher<a name="line.610"></a>
-<span class="sourceLineNo">611</span>        zooKeeper = new ZKWatcher(conf, getProcessName() + ":" +<a name="line.611"></a>
-<span class="sourceLineNo">612</span>          rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.612"></a>
-<span class="sourceLineNo">613</span>        // If no master in cluster, skip trying to track one or look for a cluster status.<a name="line.613"></a>
-<span class="sourceLineNo">614</span>        if (!this.masterless) {<a name="line.614"></a>
-<span class="sourceLineNo">615</span>          this.csm = new ZkCoordinatedStateManager(this);<a name="line.615"></a>
-<span class="sourceLineNo">616</span><a name="line.616"></a>
-<span class="sourceLineNo">617</span>          masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.617"></a>
-<span class="sourceLineNo">618</span>          masterAddressTracker.start();<a name="line.618"></a>
+<span class="sourceLineNo">608</span>      this.configurationManager = new ConfigurationManager();<a name="line.608"></a>
+<span class="sourceLineNo">609</span>      setupWindows(getConfiguration(), getConfigurationManager());<a name="line.609"></a>
+<span class="sourceLineNo">610</span><a name="line.610"></a>
+<span class="sourceLineNo">611</span>      // Some unit tests don't need a cluster, so no zookeeper at all<a name="line.611"></a>
+<span class="sourceLineNo">612</span>      if (!conf.getBoolean("hbase.testing.nocluster", false)) {<a name="line.612"></a>
+<span class="sourceLineNo">613</span>        // Open connection to zookeeper and set primary watcher<a name="line.613"></a>
+<span class="sourceLineNo">614</span>        zooKeeper = new ZKWatcher(conf, getProcessName() + ":" +<a name="line.614"></a>
+<span class="sourceLineNo">615</span>          rpcServices.isa.getPort(), this, canCreateBaseZNode());<a name="line.615"></a>
+<span class="sourceLineNo">616</span>        // If no master in cluster, skip trying to track one or look for a cluster status.<a name="line.616"></a>
+<span class="sourceLineNo">617</span>        if (!this.masterless) {<a name="line.617"></a>
+<span class="sourceLineNo">618</span>          this.csm = new ZkCoordinatedStateManager(this);<a name="line.618"></a>
 <span class="sourceLineNo">619</span><a name="line.619"></a>
-<span class="sourceLineNo">620</span>          clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.620"></a>
-<span class="sourceLineNo">621</span>          clusterStatusTracker.start();<a name="line.621"></a>
-<span class="sourceLineNo">622</span>        } else {<a name="line.622"></a>
-<span class="sourceLineNo">623</span>          masterAddressTracker = null;<a name="line.623"></a>
-<span class="sourceLineNo">624</span>          clusterStatusTracker = null;<a name="line.624"></a>
-<span class="sourceLineNo">625</span>        }<a name="line.625"></a>
-<span class="sourceLineNo">626</span>      } else {<a name="line.626"></a>
-<span class="sourceLineNo">627</span>        zooKeeper = null;<a name="line.627"></a>
-<span class="sourceLineNo">628</span>        masterAddressTracker = null;<a name="line.628"></a>
-<span class="sourceLineNo">629</span>        clusterStatusTracker = null;<a name="line.629"></a>
-<span class="sourceLineNo">630</span>      }<a name="line.630"></a>
-<span class="sourceLineNo">631</span>      this.rpcServices.start(zooKeeper);<a name="line.631"></a>
-<span class="sourceLineNo">632</span>      // This violates 'no starting stuff in Constructor' but Master depends on the below chore<a name="line.632"></a>
-<span class="sourceLineNo">633</span>      // and executor being created and takes a different startup route. Lots of overlap between HRS<a name="line.633"></a>
-<span class="sourceLineNo">634</span>      // and M (An M IS A HRS now). Need to refactor so less duplication between M and its super<a name="line.634"></a>
-<span class="sourceLineNo">635</span>      // Master expects Constructor to put up web servers. Ugh.<a name="line.635"></a>
-<span class="sourceLineNo">636</span>      // class HRS. TODO.<a name="line.636"></a>
-<span class="sourceLineNo">637</span>      this.choreService = new ChoreService(getName(), true);<a name="line.637"></a>
-<span class="sourceLineNo">638</span>      this.executorService = new ExecutorService(getName());<a name="line.638"></a>
-<span class="sourceLineNo">639</span>      putUpWebUI();<a name="line.639"></a>
-<span class="sourceLineNo">640</span>    } catch (Throwable t) {<a name="line.640"></a>
-<span class="sourceLineNo">641</span>      // Make sure we log the exception. HRegionServer is often started via reflection and the<a name="line.641"></a>
-<span class="sourceLineNo">642</span>      // cause of failed startup is lost.<a name="line.642"></a>
-<span class="sourceLineNo">643</span>      LOG.error("Failed construction RegionServer", t);<a name="line.643"></a>
-<span class="sourceLineNo">644</span>      throw t;<a name="line.644"></a>
-<span class="sourceLineNo">645</span>    }<a name="line.645"></a>
-<span class="sourceLineNo">646</span>  }<a name="line.646"></a>
-<span class="sourceLineNo">647</span><a name="line.647"></a>
-<span class="sourceLineNo">648</span>  // HMaster should override this method to load the specific config for master<a name="line.648"></a>
-<span class="sourceLineNo">649</span>  protected String getUseThisHostnameInstead(Configuration conf) throws IOException {<a name="line.649"></a>
-<span class="sourceLineNo">650</span>    String hostname = conf.get(RS_HOSTNAME_KEY);<a name="line.650"></a>
-<span class="sourceLineNo">651</span>    if (conf.getBoolean(RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, false)) {<a name="line.651"></a>
-<span class="sourceLineNo">652</span>      if (!StringUtils.isBlank(hostname)) {<a name="line.652"></a>
-<span class="sourceLineNo">653</span>        String msg = RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY + " and " + RS_HOSTNAME_KEY +<a name="line.653"></a>
-<span class="sourceLineNo">654</span>          " are mutually exclusive. Do not set " + RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY +<a name="line.654"></a>
-<span class="sourceLineNo">655</span>          " to true while " + RS_HOSTNAME_KEY + " is used";<a name="line.655"></a>
-<span class="sourceLineNo">656</span>        throw new IOException(msg);<a name="line.656"></a>
-<span class="sourceLineNo">657</span>      } else {<a name="line.657"></a>
-<span class="sourceLineNo">658</span>        return rpcServices.isa.getHostName();<a name="line.658"></a>
-<span class="sourceLineNo">659</span>      }<a name="line.659"></a>
-<span class="sourceLineNo">660</span>    } else {<a name="line.660"></a>
-<span class="sourceLineNo">661</span>      return hostname;<a name="line.661"></a>
-<span class="sourceLineNo">662</span>    }<a name="line.662"></a>
-<span class="sourceLineNo">663</span>  }<a name="line.663"></a>
-<span class="sourceLineNo">664</span><a name="line.664"></a>
-<span class="sourceLineNo">665</span>  /**<a name="line.665"></a>
-<span class="sourceLineNo">666</span>   * If running on Windows, do windows-specific setup.<a name="line.666"></a>
-<span class="sourceLineNo">667</span>   */<a name="line.667"></a>
-<span class="sourceLineNo">668</span>  private static void setupWindows(final Configuration conf, ConfigurationManager cm) {<a name="line.668"></a>
-<span class="sourceLineNo">669</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.669"></a>
-<span class="sourceLineNo">670</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.670"></a>
-<span class="sourceLineNo">671</span>        @Override<a name="line.671"></a>
-<span class="sourceLineNo">672</span>        public void handle(Signal signal) {<a name="line.672"></a>
-<span class="sourceLineNo">673</span>          conf.reloadConfiguration();<a name="line.673"></a>
-<span class="sourceLineNo">674</span>          cm.notifyAllObservers(conf);<a name="line.674"></a>
-<span class="sourceLineNo">675</span>        }<a name="line.675"></a>
-<span class="sourceLineNo">676</span>      });<a name="line.676"></a>
-<span class="sourceLineNo">677</span>    }<a name="line.677"></a>
-<span class="sourceLineNo">678</span>  }<a name="line.678"></a>
-<span class="sourceLineNo">679</span><a name="line.679"></a>
-<span class="sourceLineNo">680</span>  private static NettyEventLoopGroupConfig setupNetty(Configuration conf) {<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    // Initialize netty event loop group at start as we may use it for rpc server, rpc client &amp; WAL.<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    NettyEventLoopGroupConfig nelgc =<a name="line.682"></a>
-<span class="sourceLineNo">683</span>      new NettyEventLoopGroupConfig(conf, "RS-EventLoopGroup");<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    NettyRpcClientConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    NettyAsyncFSWALConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    return nelgc;<a name="line.686"></a>
-<span class="sourceLineNo">687</span>  }<a name="line.687"></a>
-<span class="sourceLineNo">688</span><a name="line.688"></a>
-<span class="sourceLineNo">689</span>  private void initializeFileSystem() throws IOException {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.690"></a>
-<span class="sourceLineNo">691</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.691"></a>
-<span class="sourceLineNo">692</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.692"></a>
-<span class="sourceLineNo">693</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.693"></a>
-<span class="sourceLineNo">694</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.694"></a>
-<span class="sourceLineNo">695</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.696"></a>
-<span class="sourceLineNo">697</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.697"></a>
-<span class="sourceLineNo">698</span>    // (unless all is set to defaults).<a name="line.698"></a>
-<span class="sourceLineNo">699</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.699"></a>
-<span class="sourceLineNo">700</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.701"></a>
-<span class="sourceLineNo">702</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.702"></a>
-<span class="sourceLineNo">703</span>  }<a name="line.703"></a>
-<span class="sourceLineNo">704</span><a name="line.704"></a>
-<span class="sourceLineNo">705</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.705"></a>
-<span class="sourceLineNo">706</span>    return new FSTableDescriptors(this.conf,<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false, getMetaTableObserver());<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 Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    return null;<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 login(UserProvider user, String host) throws IOException {<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    user.login("hbase.regionserver.keytab.file",<a name="line.715"></a>
-<span class="sourceLineNo">716</span>      "hbase.regionserver.kerberos.principal", host);<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><a name="line.719"></a>
-<span class="sourceLineNo">720</span>  /**<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   * Wait for an active Master.<a name="line.721"></a>
-<span class="sourceLineNo">722</span>   * See override in Master superclass for how it is used.<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   */<a name="line.723"></a>
-<span class="sourceLineNo">724</span>  protected void waitForMasterActive() {}<a name="line.724"></a>
-<span class="sourceLineNo">725</span><a name="line.725"></a>
-<span class="sourceLineNo">726</span>  protected String getProcessName() {<a name="line.726"></a>
-<span class="sourceLineNo">727</span>    return REGIONSERVER;<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  }<a name="line.728"></a>
-<span class="sourceLineNo">729</span><a name="line.729"></a>
-<span class="sourceLineNo">730</span>  protected boolean canCreateBaseZNode() {<a name="line.730"></a>
-<span class="sourceLineNo">731</span>    return this.masterless;<a name="line.731"></a>
-<span class="sourceLineNo">732</span>  }<a name="line.732"></a>
-<span class="sourceLineNo">733</span><a name="line.733"></a>
-<span class="sourceLineNo">734</span>  protected boolean canUpdateTableDescriptor() {<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    return false;<a name="line.735"></a>
-<span class="sourceLineNo">736</span>  }<a name="line.736"></a>
-<span class="sourceLineNo">737</span><a name="line.737"></a>
-<span class="sourceLineNo">738</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    return new RSRpcServices(this);<a name="line.739"></a>
-<span class="sourceLineNo">740</span>  }<a name="line.740"></a>
-<span class="sourceLineNo">741</span><a name="line.741"></a>
-<span class="sourceLineNo">742</span>  protected void configureInfoServer() {<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.743"></a>
-<span class="sourceLineNo">744</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.744"></a>
-<span class="sourceLineNo">745</span>  }<a name="line.745"></a>
-<span class="sourceLineNo">746</span><a name="line.746"></a>
-<span class="sourceLineNo">747</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.747"></a>
-<span class="sourceLineNo">748</span>    return RSDumpServlet.class;<a name="line.748"></a>
-<span class="sourceLineNo">749</span>  }<a name="line.749"></a>
-<span class="sourceLineNo">750</span><a name="line.750"></a>
-<span class="sourceLineNo">751</span>  @Override<a name="line.751"></a>
-<span class="sourceLineNo">752</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.752"></a>
-<span class="sourceLineNo">753</span>    /*<a name="line.753"></a>
-<span class="sourceLineNo">754</span>     * No stacking of instances is allowed for a single executorService name<a name="line.754"></a>
-<span class="sourceLineNo">755</span>     */<a name="line.755"></a>
-<span class="sourceLineNo">756</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.756"></a>
-<span class="sourceLineNo">757</span>        instance.getDescriptorForType();<a name="line.757"></a>
-<span class="sourceLineNo">758</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.758"></a>
-<span class="sourceLineNo">759</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.759"></a>
-<span class="sourceLineNo">760</span>      LOG.error("Coprocessor executorService " + serviceName<a name="line.760"></a>
-<span class="sourceLineNo">761</span>          + " already registered, rejecting request from " + instance);<a name="line.761"></a>
-<span class="sourceLineNo">762</span>      return false;<a name="line.762"></a>
-<span class="sourceLineNo">763</span>    }<a name="line.763"></a>
-<span class="sourceLineNo">764</span><a name="line.764"></a>
-<span class="sourceLineNo">765</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.765"></a>
-<span class="sourceLineNo">766</span>    if (LOG.isDebugEnabled()) {<a name="line.766"></a>
-<span class="sourceLineNo">767</span>      LOG.debug("Registered regionserver coprocessor executorService: executorService=" + serviceName);<a name="line.767"></a>
-<span class="sourceLineNo">768</span>    }<a name="line.768"></a>
-<span class="sourceLineNo">769</span>    return true;<a name="line.769"></a>
-<span class="sourceLineNo">770</span>  }<a name="line.770"></a>
-<span class="sourceLineNo">771</span><a name="line.771"></a>
-<span class="sourceLineNo">772</span>  /**<a name="line.772"></a>
-<span class="sourceLineNo">773</span>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.773"></a>
-<span class="sourceLineNo">774</span>   * the local server; i.e. a short-circuit Connection. Safe to use going to local or remote<a name="line.774"></a>
-<span class="sourceLineNo">775</span>   * server. Create this instance in a method can be intercepted and mocked in tests.<a name="line.775"></a>
-<span class="sourceLineNo">776</span>   * @throws IOException<a name="line.776"></a>
-<span class="sourceLineNo">777</span>   */<a name="line.777"></a>
-<span class="sourceLineNo">778</span>  @VisibleForTesting<a name="line.778"></a>
-<span class="sourceLineNo">779</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.779"></a>
-<span class="sourceLineNo">780</span>    Configuration conf = this.conf;<a name="line.780"></a>
-<span class="sourceLineNo">781</span>    if (conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM) != null) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>      // Use server ZK cluster for server-issued connections, so we clone<a name="line.782"></a>
-<span class="sourceLineNo">783</span>      // the conf and unset the client ZK related properties<a name="line.783"></a>
-<span class="sourceLineNo">784</span>      conf = new Configuration(this.conf);<a name="line.784"></a>
-<span class="sourceLineNo">785</span>      conf.unset(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.785"></a>
-<span class="sourceLineNo">786</span>    }<a name="line.786"></a>
-<span class="sourceLineNo">787</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.787"></a>
-<span class="sourceLineNo">788</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.788"></a>
-<span class="sourceLineNo">789</span>    // and remote invocations.<a name="line.789"></a>
-<span class="sourceLineNo">790</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.790"></a>
-<span class="sourceLineNo">791</span>      serverName, rpcServices, rpcServices);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>  }<a name="line.792"></a>
-<span class="sourceLineNo">793</span><a name="line.793"></a>
-<span class="sourceLineNo">794</span>  /**<a name="line.794"></a>
-<span class="sourceLineNo">795</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.795"></a>
-<span class="sourceLineNo">796</span>   * @param c<a name="line.796"></a>
-<span class="sourceLineNo">797</span>   * @throws IOException<a name="line.797"></a>
-<span class="sourceLineNo">798</span>   */<a name="line.798"></a>
-<span class="sourceLineNo">799</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.799"></a>
-<span class="sourceLineNo">800</span>    // check to see if the codec list is available:<a name="line.800"></a>
-<span class="sourceLineNo">801</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.801"></a>
-<span class="sourceLineNo">802</span>    if (codecs == null) return;<a name="line.802"></a>
-<span class="sourceLineNo">803</span>    for (String codec : codecs) {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.804"></a>
-<span class="sourceLineNo">805</span>        throw new IOException("Compression codec " + codec +<a name="line.805"></a>
-<span class="sourceLineNo">806</span>          " not supported, aborting RS construction");<a name="line.806"></a>
-<span class="sourceLineNo">807</span>      }<a name="line.807"></a>
-<span class="sourceLineNo">808</span>    }<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>  public String getClusterId() {<a name="line.811"></a>
-<span class="sourceLineNo">812</span>    return this.clusterId;<a name="line.812"></a>
-<span class="sourceLineNo">813</span>  }<a name="line.813"></a>
-<span class="sourceLineNo">814</span><a name="line.814"></a>
-<span class="sourceLineNo">815</span>  /**<a name="line.815"></a>
-<span class="sourceLineNo">816</span>   * Setup our cluster connection if not already initialized.<a name="line.816"></a>
-<span class="sourceLineNo">817</span>   * @throws IOException<a name="line.817"></a>
-<span class="sourceLineNo">818</span>   */<a name="line.818"></a>
-<span class="sourceLineNo">819</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.819"></a>
-<span class="sourceLineNo">820</span>    if (clusterConnection == null) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>      clusterConnection = createClusterConnection();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>      metaTableLocator = new MetaTableLocator();<a name="line.822"></a>
-<span class="sourceLineNo">823</span>    }<a name="line.823"></a>
-<span class="sourceLineNo">824</span>  }<a name="line.824"></a>
-<span class="sourceLineNo">825</span><a name="line.825"></a>
-<span class="sourceLineNo">826</span>  /**<a name="line.826"></a>
-<span class="sourceLineNo">827</span>   * All initialization needed before we go register with Master.&lt;br&gt;<a name="line.827"></a>
-<span class="sourceLineNo">828</span>   * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.&lt;br&gt;<a name="line.828"></a>
-<span class="sourceLineNo">829</span>   * In here we just put up the RpcServer, setup Connection, and ZooKeeper.<a name="line.829"></a>
-<span class="sourceLineNo">830</span>   */<a name="line.830"></a>
-<span class="sourceLineNo">831</span>  private void preRegistrationInitialization() {<a name="line.831"></a>
-<span class="sourceLineNo">832</span>    try {<a name="line.832"></a>
-<span class="sourceLineNo">833</span>      initializeZooKeeper();<a name="line.833"></a>
-<span class="sourceLineNo">834</span>      setupClusterConnection();<a name="line.834"></a>
-<span class="sourceLineNo">835</span>      // Setup RPC client for master communication<a name="line.835"></a>
-<span class="sourceLineNo">836</span>      this.rpcClient = RpcClientFactory.createClient(conf, clusterId, new InetSocketAddress(<a name="line.836"></a>
-<span class="sourceLineNo">837</span>          this.rpcServices.isa.getAddress(), 0), clusterConnection.getConnectionMetrics());<a name="line.837"></a>
-<span class="sourceLineNo">838</span>    } catch (Throwable t) {<a name="line.838"></a>
-<span class="sourceLineNo">839</span>      // Call stop if error or process will stick around for ever since server<a name="line.839"></a>
-<span class="sourceLineNo">840</span>      // puts up non-daemon threads.<a name="line.840"></a>
-<span class="sourceLineNo">841</span>      this.rpcServices.stop();<a name="line.841"></a>
-<span class="sourceLineNo">842</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.842"></a>
-<span class="sourceLineNo">843</span>    }<a name="line.843"></a>
-<span class="sourceLineNo">844</span>  }<a name="line.844"></a>
-<span class="sourceLineNo">845</span><a name="line.845"></a>
-<span class="sourceLineNo">846</span>  /**<a name="line.846"></a>
-<span class="sourceLineNo">847</span>   * Bring up connection to zk ensemble and then wait until a master for this cluster and then after<a name="line.847"></a>
-<span class="sourceLineNo">848</span>   * that, wait until cluster 'up' flag has been set. This is the order in which master does things.<a name="line.848"></a>
-<span class="sourceLineNo">849</span>   * &lt;p&gt;<a name="line.849"></a>
-<span class="sourceLineNo">850</span>   * Finally open long-living server short-circuit connection.<a name="line.850"></a>
-<span class="sourceLineNo">851</span>   */<a name="line.851"></a>
-<span class="sourceLineNo">852</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.852"></a>
-<span class="sourceLineNo">853</span>    justification="cluster Id znode read would give us correct response")<a name="line.853"></a>
-<span class="sourceLineNo">854</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.854"></a>
-<span class="sourceLineNo">855</span>    // Nothing to do in here if no Master in the mix.<a name="line.855"></a>
-<span class="sourceLineNo">856</span>    if (this.masterless) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>      return;<a name="line.857"></a>
-<span class="sourceLineNo">858</span>    }<a name="line.858"></a>
-<span class="sourceLineNo">859</span><a name="line.859"></a>
-<span class="sourceLineNo">860</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.860"></a>
-<span class="sourceLineNo">861</span>    // block until a master is available.  No point in starting up if no master<a name="line.861"></a>
-<span class="sourceLineNo">862</span>    // running.<a name="line.862"></a>
-<span class="sourceLineNo">863</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.863"></a>
-<span class="sourceLineNo">864</span><a name="line.864"></a>
-<span class="sourceLineNo">865</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.865"></a>
-<span class="sourceLineNo">866</span>    // when ready.<a name="line.866"></a>
-<span class="sourceLineNo">867</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.867"></a>
-<span class="sourceLineNo">868</span><a name="line.868"></a>
-<span class="sourceLineNo">869</span>    // If we are HMaster then the cluster id should have already been set.<a name="line.869"></a>
-<span class="sourceLineNo">870</span>    if (clusterId == null) {<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      // Retrieve clusterId<a name="line.871"></a>
-<span class="sourceLineNo">872</span>      // Since cluster status is now up<a name="line.872"></a>
-<span class="sourceLineNo">873</span>      // ID should have already been set by HMaster<a name="line.873"></a>
-<span class="sourceLineNo">874</span>      try {<a name="line.874"></a>
-<span class="sourceLineNo">875</span>        clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        if (clusterId == null) {<a name="line.876"></a>
-<span class="sourceLineNo">877</span>          this.abort("Cluster ID has not been set");<a name="line.877"></a>
-<span class="sourceLineNo">878</span>        }<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        LOG.info("ClusterId : " + clusterId);<a name="line.879"></a>
-<span class="sourceLineNo">880</span>      } catch (KeeperException e) {<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        this.abort("Failed to retrieve Cluster ID", e);<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      }<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    }<a name="line.883"></a>
-<span class="sourceLineNo">884</span><a name="line.884"></a>
-<span class="sourceLineNo">885</span>    waitForMasterActive();<a name="line.885"></a>
-<span class="sourceLineNo">886</span>    if (isStopped() || isAborted()) {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>      return; // No need for further initialization<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>    // watch for snapshots and other procedures<a name="line.890"></a>
-<span class="sourceLineNo">891</span>    try {<a name="line.891"></a>
-<span class="sourceLineNo">892</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.892"></a>
-<span class="sourceLineNo">893</span>      rspmHost.loadProcedures(conf);<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      rspmHost.initialize(this);<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    } catch (KeeperException e) {<a name="line.895"></a>
-<span class="sourceLineNo">896</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.896"></a>
-<span class="sourceLineNo">897</span>    }<a name="line.897"></a>
-<span class="sourceLineNo">898</span>  }<a name="line.898"></a>
-<span class="sourceLineNo">899</span><a name="line.899"></a>
-<span class="sourceLineNo">900</span>  /**<a name="line.900"></a>
-<span class="sourceLineNo">901</span>   * Utilty method to wait indefinitely on a znode availability while checking<a name="line.901"></a>
-<span class="sourceLineNo">902</span>   * if the region server is shut down<a name="line.902"></a>
-<span class="sourceLineNo">903</span>   * @param tracker znode tracker to use<a name="line.903"></a>
-<span class="sourceLineNo">904</span>   * @throws IOException any IO exception, plus if the RS is stopped<a name="line.904"></a>
-<span class="sourceLineNo">905</span>   * @throws InterruptedException<a name="line.905"></a>
-<span class="sourceLineNo">906</span>   */<a name="line.906"></a>
-<span class="sourceLineNo">907</span>  private void blockAndCheckIfStopped(ZKNodeTracker tracker)<a name="line.907"></a>
-<span class="sourceLineNo">908</span>      throws IOException, InterruptedException {<a name="line.908"></a>
-<span class="sourceLineNo">909</span>    while (tracker.blockUntilAvailable(this.msgInterval, false) == null) {<a name="line.909"></a>
-<span class="sourceLineNo">910</span>      if (this.stopped) {<a name="line.910"></a>
-<span class="sourceLineNo">911</span>        throw new IOException("Received the shutdown message while waiting.");<a name="line.911"></a>
-<span class="sourceLineNo">912</span>      }<a name="line.912"></a>
-<span class="sourceLineNo">913</span>    }<a name="line.913"></a>
-<span class="sourceLineNo">914</span>  }<a name="line.914"></a>
-<span class="sourceLineNo">915</span><a name="line.915"></a>
-<span class="sourceLineNo">916</span>  /**<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   * @return True if the cluster is up.<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   */<a name="line.918"></a>
-<span class="sourceLineNo">919</span>  @Override<a name="line.919"></a>
-<span class="sourceLineNo">920</span>  public boolean isClusterUp() {<a name="line.920"></a>
-<span class="sourceLineNo">921</span>    return this.masterless ||<a name="line.921"></a>
-<span class="sourceLineNo">922</span>        (this.clusterStatusTracker != null &amp;&amp; this.clusterStatusTracker.isClusterUp());<a name="line.922"></a>
-<span class="sourceLineNo">923</span>  }<a name="line.923"></a>
-<span class="sourceLineNo">924</span><a name="line.924"></a>
-<span class="sourceLineNo">925</span>  /**<a name="line.925"></a>
-<span class="sourceLineNo">926</span>   * The HRegionServer sticks in this loop until closed.<a name="line.926"></a>
-<span class="sourceLineNo">927</span>   */<a name="line.927"></a>
-<span class="sourceLineNo">928</span>  @Override<a name="line.928"></a>
-<span class="sourceLineNo">929</span>  public void run() {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>    try {<a name="line.930"></a>
-<span class="sourceLineNo">931</span>      // Do pre-registration initializations; zookeeper, lease threads, etc.<a name="line.931"></a>
-<span class="sourceLineNo">932</span>      preRegistrationInitialization();<a name="line.932"></a>
-<span class="sourceLineNo">933</span>    } catch (Throwable e) {<a name="line.933"></a>
-<span class="sourceLineNo">934</span>      abort("Fatal exception during initialization", e);<a name="line.934"></a>
-<span class="sourceLineNo">935</span>    }<a name="line.935"></a>
-<span class="sourceLineNo">936</span><a name="line.936"></a>
-<span class="sourceLineNo">937</span>    try {<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.938"></a>
-<span class="sourceLineNo">939</span>        ShutdownHook.install(conf, fs, this, Thread.currentThread());<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        // Initialize the RegionServerCoprocessorHost now that our ephemeral<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        // node was created, in case any coprocessors want to use ZooKeeper<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        this.rsHost = new RegionServerCoprocessorHost(this, this.conf);<a name="line.942"></a>
-<span class="sourceLineNo">943</span>      }<a name="line.943"></a>
-<span class="sourceLineNo">944</span><a name="line.944"></a>
-<span class="sourceLineNo">945</span>      // Try and register with the Master; tell it we are here.  Break if server is stopped or the<a name="line.945"></a>
-<span class="sourceLineNo">946</span>      // clusterup flag is down or hdfs went wacky. Once registered successfully, go ahead and start<a name="line.946"></a>
-<span class="sourceLineNo">947</span>      // up all Services. Use RetryCounter to get backoff in case Master is struggling to come up.<a name="line.947"></a>
-<span class="sourceLineNo">948</span>      RetryCounterFactory rcf = new RetryCounterFactory(Integer.MAX_VALUE,<a name="line.948"></a>
-<span class="sourceLineNo">949</span>          this.sleeper.getPeriod(), 1000 * 60 * 5);<a name="line.949"></a>
-<span class="sourceLineNo">950</span>      RetryCounter rc = rcf.create();<a name="line.950"></a>
-<span class="sourceLineNo">951</span>      while (keepLooping()) {<a name="line.951"></a>
-<span class="sourceLineNo">952</span>        RegionServerStartupResponse w = reportForDuty();<a name="line.952"></a>
-<span class="sourceLineNo">953</span>        if (w == null) {<a name="line.953"></a>
-<span class="sourceLineNo">954</span>          long sleepTime = rc.getBackoffTimeAndIncrementAttempts();<a name="line.954"></a>
-<span class="sourceLineNo">955</span>          LOG.warn("reportForDuty failed; sleeping {} ms and then retrying.", sleepTime);<a name="line.955"></a>
-<span class="sourceLineNo">956</span>          this.sleeper.sleep(sleepTime);<a name="line.956"></a>
-<span class="sourceLineNo">957</span>        } else {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>          handleReportForDutyResponse(w);<a name="line.958"></a>
-<span class="sourceLineNo">959</span>          break;<a name="line.959"></a>
-<span class="sourceLineNo">960</span>        }<a name="line.960"></a>
-<span class="sourceLineNo">961</span>      }<a name="line.961"></a>
-<span class="sourceLineNo">962</span><a name="line.962"></a>
-<span class="sourceLineNo">963</span>      if (!isStopped() &amp;&amp; isHealthy()) {<a name="line.963"></a>
-<span class="sourceLineNo">964</span>        // start the snapshot handler and other procedure handlers,<a name="line.964"></a>
-<span class="sourceLineNo">965</span>        // since the server is ready to run<a name="line.965"></a>
-<span class="sourceLineNo">966</span>        if (this.rspmHost != null) {<a name="line.966"></a>
-<span class="sourceLineNo">967</span>          this.rspmHost.start();<a name="line.967"></a>
-<span class="sourceLineNo">968</span>        }<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        // Start the Quota Manager<a name="line.969"></a>
-<span class="sourceLineNo">970</span>        if (this.rsQuotaManager != null) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>          rsQuotaManager.start(getRpcServer().getScheduler());<a name="line.971"></a>
-<span class="sourceLineNo">972</span>        }<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        if (this.rsSpaceQuotaManager != null) {<a name="line.973"></a>
-<span class="sourceLineNo">974</span>          this.rsSpaceQuotaManager.start();<a name="line.974"></a>
+<span class="sourceLineNo">620</span>          masterAddressTracker = new MasterAddressTracker(getZooKeeper(), this);<a name="line.620"></a>
+<span class="sourceLineNo">621</span>          masterAddressTracker.start();<a name="line.621"></a>
+<span class="sourceLineNo">622</span><a name="line.622"></a>
+<span class="sourceLineNo">623</span>          clusterStatusTracker = new ClusterStatusTracker(zooKeeper, this);<a name="line.623"></a>
+<span class="sourceLineNo">624</span>          clusterStatusTracker.start();<a name="line.624"></a>
+<span class="sourceLineNo">625</span>        } else {<a name="line.625"></a>
+<span class="sourceLineNo">626</span>          masterAddressTracker = null;<a name="line.626"></a>
+<span class="sourceLineNo">627</span>          clusterStatusTracker = null;<a name="line.627"></a>
+<span class="sourceLineNo">628</span>        }<a name="line.628"></a>
+<span class="sourceLineNo">629</span>      } else {<a name="line.629"></a>
+<span class="sourceLineNo">630</span>        zooKeeper = null;<a name="line.630"></a>
+<span class="sourceLineNo">631</span>        masterAddressTracker = null;<a name="line.631"></a>
+<span class="sourceLineNo">632</span>        clusterStatusTracker = null;<a name="line.632"></a>
+<span class="sourceLineNo">633</span>      }<a name="line.633"></a>
+<span class="sourceLineNo">634</span>      this.rpcServices.start(zooKeeper);<a name="line.634"></a>
+<span class="sourceLineNo">635</span>      // This violates 'no starting stuff in Constructor' but Master depends on the below chore<a name="line.635"></a>
+<span class="sourceLineNo">636</span>      // and executor being created and takes a different startup route. Lots of overlap between HRS<a name="line.636"></a>
+<span class="sourceLineNo">637</span>      // and M (An M IS A HRS now). Need to refactor so less duplication between M and its super<a name="line.637"></a>
+<span class="sourceLineNo">638</span>      // Master expects Constructor to put up web servers. Ugh.<a name="line.638"></a>
+<span class="sourceLineNo">639</span>      // class HRS. TODO.<a name="line.639"></a>
+<span class="sourceLineNo">640</span>      this.choreService = new ChoreService(getName(), true);<a name="line.640"></a>
+<span class="sourceLineNo">641</span>      this.executorService = new ExecutorService(getName());<a name="line.641"></a>
+<span class="sourceLineNo">642</span>      putUpWebUI();<a name="line.642"></a>
+<span class="sourceLineNo">643</span>    } catch (Throwable t) {<a name="line.643"></a>
+<span class="sourceLineNo">644</span>      // Make sure we log the exception. HRegionServer is often started via reflection and the<a name="line.644"></a>
+<span class="sourceLineNo">645</span>      // cause of failed startup is lost.<a name="line.645"></a>
+<span class="sourceLineNo">646</span>      LOG.error("Failed construction RegionServer", t);<a name="line.646"></a>
+<span class="sourceLineNo">647</span>      throw t;<a name="line.647"></a>
+<span class="sourceLineNo">648</span>    }<a name="line.648"></a>
+<span class="sourceLineNo">649</span>  }<a name="line.649"></a>
+<span class="sourceLineNo">650</span><a name="line.650"></a>
+<span class="sourceLineNo">651</span>  // HMaster should override this method to load the specific config for master<a name="line.651"></a>
+<span class="sourceLineNo">652</span>  protected String getUseThisHostnameInstead(Configuration conf) throws IOException {<a name="line.652"></a>
+<span class="sourceLineNo">653</span>    String hostname = conf.get(RS_HOSTNAME_KEY);<a name="line.653"></a>
+<span class="sourceLineNo">654</span>    if (conf.getBoolean(RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY, false)) {<a name="line.654"></a>
+<span class="sourceLineNo">655</span>      if (!StringUtils.isBlank(hostname)) {<a name="line.655"></a>
+<span class="sourceLineNo">656</span>        String msg = RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY + " and " + RS_HOSTNAME_KEY +<a name="line.656"></a>
+<span class="sourceLineNo">657</span>          " are mutually exclusive. Do not set " + RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY +<a name="line.657"></a>
+<span class="sourceLineNo">658</span>          " to true while " + RS_HOSTNAME_KEY + " is used";<a name="line.658"></a>
+<span class="sourceLineNo">659</span>        throw new IOException(msg);<a name="line.659"></a>
+<span class="sourceLineNo">660</span>      } else {<a name="line.660"></a>
+<span class="sourceLineNo">661</span>        return rpcServices.isa.getHostName();<a name="line.661"></a>
+<span class="sourceLineNo">662</span>      }<a name="line.662"></a>
+<span class="sourceLineNo">663</span>    } else {<a name="line.663"></a>
+<span class="sourceLineNo">664</span>      return hostname;<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
+<span class="sourceLineNo">667</span><a name="line.667"></a>
+<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
+<span class="sourceLineNo">669</span>   * If running on Windows, do windows-specific setup.<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   */<a name="line.670"></a>
+<span class="sourceLineNo">671</span>  private static void setupWindows(final Configuration conf, ConfigurationManager cm) {<a name="line.671"></a>
+<span class="sourceLineNo">672</span>    if (!SystemUtils.IS_OS_WINDOWS) {<a name="line.672"></a>
+<span class="sourceLineNo">673</span>      Signal.handle(new Signal("HUP"), new SignalHandler() {<a name="line.673"></a>
+<span class="sourceLineNo">674</span>        @Override<a name="line.674"></a>
+<span class="sourceLineNo">675</span>        public void handle(Signal signal) {<a name="line.675"></a>
+<span class="sourceLineNo">676</span>          conf.reloadConfiguration();<a name="line.676"></a>
+<span class="sourceLineNo">677</span>          cm.notifyAllObservers(conf);<a name="line.677"></a>
+<span class="sourceLineNo">678</span>        }<a name="line.678"></a>
+<span class="sourceLineNo">679</span>      });<a name="line.679"></a>
+<span class="sourceLineNo">680</span>    }<a name="line.680"></a>
+<span class="sourceLineNo">681</span>  }<a name="line.681"></a>
+<span class="sourceLineNo">682</span><a name="line.682"></a>
+<span class="sourceLineNo">683</span>  private static NettyEventLoopGroupConfig setupNetty(Configuration conf) {<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    // Initialize netty event loop group at start as we may use it for rpc server, rpc client &amp; WAL.<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    NettyEventLoopGroupConfig nelgc =<a name="line.685"></a>
+<span class="sourceLineNo">686</span>      new NettyEventLoopGroupConfig(conf, "RS-EventLoopGroup");<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    NettyRpcClientConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.687"></a>
+<span class="sourceLineNo">688</span>    NettyAsyncFSWALConfigHelper.setEventLoopConfig(conf, nelgc.group(), nelgc.clientChannelClass());<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    return nelgc;<a name="line.689"></a>
+<span class="sourceLineNo">690</span>  }<a name="line.690"></a>
+<span class="sourceLineNo">691</span><a name="line.691"></a>
+<span class="sourceLineNo">692</span>  private void initializeFileSystem() throws IOException {<a name="line.692"></a>
+<span class="sourceLineNo">693</span>    // Get fs instance used by this RS.  Do we use checksum verification in the hbase? If hbase<a name="line.693"></a>
+<span class="sourceLineNo">694</span>    // checksum verification enabled, then automatically switch off hdfs checksum verification.<a name="line.694"></a>
+<span class="sourceLineNo">695</span>    boolean useHBaseChecksum = conf.getBoolean(HConstants.HBASE_CHECKSUM_VERIFICATION, true);<a name="line.695"></a>
+<span class="sourceLineNo">696</span>    FSUtils.setFsDefault(this.conf, FSUtils.getWALRootDir(this.conf));<a name="line.696"></a>
+<span class="sourceLineNo">697</span>    this.walFs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.697"></a>
+<span class="sourceLineNo">698</span>    this.walRootDir = FSUtils.getWALRootDir(this.conf);<a name="line.698"></a>
+<span class="sourceLineNo">699</span>    // Set 'fs.defaultFS' to match the filesystem on hbase.rootdir else<a name="line.699"></a>
+<span class="sourceLineNo">700</span>    // underlying hadoop hdfs accessors will be going against wrong filesystem<a name="line.700"></a>
+<span class="sourceLineNo">701</span>    // (unless all is set to defaults).<a name="line.701"></a>
+<span class="sourceLineNo">702</span>    FSUtils.setFsDefault(this.conf, FSUtils.getRootDir(this.conf));<a name="line.702"></a>
+<span class="sourceLineNo">703</span>    this.fs = new HFileSystem(this.conf, useHBaseChecksum);<a name="line.703"></a>
+<span class="sourceLineNo">704</span>    this.rootDir = FSUtils.getRootDir(this.conf);<a name="line.704"></a>
+<span class="sourceLineNo">705</span>    this.tableDescriptors = getFsTableDescriptors();<a name="line.705"></a>
+<span class="sourceLineNo">706</span>  }<a name="line.706"></a>
+<span class="sourceLineNo">707</span><a name="line.707"></a>
+<span class="sourceLineNo">708</span>  protected TableDescriptors getFsTableDescriptors() throws IOException {<a name="line.708"></a>
+<span class="sourceLineNo">709</span>    return new FSTableDescriptors(this.conf,<a name="line.709"></a>
+<span class="sourceLineNo">710</span>      this.fs, this.rootDir, !canUpdateTableDescriptor(), false, getMetaTableObserver());<a name="line.710"></a>
+<span class="sourceLineNo">711</span>  }<a name="line.711"></a>
+<span class="sourceLineNo">712</span><a name="line.712"></a>
+<span class="sourceLineNo">713</span>  protected Function&lt;TableDescriptorBuilder, TableDescriptorBuilder&gt; getMetaTableObserver() {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>    return null;<a name="line.714"></a>
+<span class="sourceLineNo">715</span>  }<a name="line.715"></a>
+<span class="sourceLineNo">716</span><a name="line.716"></a>
+<span class="sourceLineNo">717</span>  protected void login(UserProvider user, String host) throws IOException {<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    user.login("hbase.regionserver.keytab.file",<a name="line.718"></a>
+<span class="sourceLineNo">719</span>      "hbase.regionserver.kerberos.principal", host);<a name="line.719"></a>
+<span class="sourceLineNo">720</span>  }<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>  /**<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   * Wait for an active Master.<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * See override in Master superclass for how it is used.<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   */<a name="line.726"></a>
+<span class="sourceLineNo">727</span>  protected void waitForMasterActive() {}<a name="line.727"></a>
+<span class="sourceLineNo">728</span><a name="line.728"></a>
+<span class="sourceLineNo">729</span>  protected String getProcessName() {<a name="line.729"></a>
+<span class="sourceLineNo">730</span>    return REGIONSERVER;<a name="line.730"></a>
+<span class="sourceLineNo">731</span>  }<a name="line.731"></a>
+<span class="sourceLineNo">732</span><a name="line.732"></a>
+<span class="sourceLineNo">733</span>  protected boolean canCreateBaseZNode() {<a name="line.733"></a>
+<span class="sourceLineNo">734</span>    return this.masterless;<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>  protected boolean canUpdateTableDescriptor() {<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    return false;<a name="line.738"></a>
+<span class="sourceLineNo">739</span>  }<a name="line.739"></a>
+<span class="sourceLineNo">740</span><a name="line.740"></a>
+<span class="sourceLineNo">741</span>  protected RSRpcServices createRpcServices() throws IOException {<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    return new RSRpcServices(this);<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>  protected void configureInfoServer() {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>    infoServer.addServlet("rs-status", "/rs-status", RSStatusServlet.class);<a name="line.746"></a>
+<span class="sourceLineNo">747</span>    infoServer.setAttribute(REGIONSERVER, this);<a name="line.747"></a>
+<span class="sourceLineNo">748</span>  }<a name="line.748"></a>
+<span class="sourceLineNo">749</span><a name="line.749"></a>
+<span class="sourceLineNo">750</span>  protected Class&lt;? extends HttpServlet&gt; getDumpServlet() {<a name="line.750"></a>
+<span class="sourceLineNo">751</span>    return RSDumpServlet.class;<a name="line.751"></a>
+<span class="sourceLineNo">752</span>  }<a name="line.752"></a>
+<span class="sourceLineNo">753</span><a name="line.753"></a>
+<span class="sourceLineNo">754</span>  @Override<a name="line.754"></a>
+<span class="sourceLineNo">755</span>  public boolean registerService(com.google.protobuf.Service instance) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span>    /*<a name="line.756"></a>
+<span class="sourceLineNo">757</span>     * No stacking of instances is allowed for a single executorService name<a name="line.757"></a>
+<span class="sourceLineNo">758</span>     */<a name="line.758"></a>
+<span class="sourceLineNo">759</span>    com.google.protobuf.Descriptors.ServiceDescriptor serviceDesc =<a name="line.759"></a>
+<span class="sourceLineNo">760</span>        instance.getDescriptorForType();<a name="line.760"></a>
+<span class="sourceLineNo">761</span>    String serviceName = CoprocessorRpcUtils.getServiceName(serviceDesc);<a name="line.761"></a>
+<span class="sourceLineNo">762</span>    if (coprocessorServiceHandlers.containsKey(serviceName)) {<a name="line.762"></a>
+<span class="sourceLineNo">763</span>      LOG.error("Coprocessor executorService " + serviceName<a name="line.763"></a>
+<span class="sourceLineNo">764</span>          + " already registered, rejecting request from " + instance);<a name="line.764"></a>
+<span class="sourceLineNo">765</span>      return false;<a name="line.765"></a>
+<span class="sourceLineNo">766</span>    }<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>    coprocessorServiceHandlers.put(serviceName, instance);<a name="line.768"></a>
+<span class="sourceLineNo">769</span>    if (LOG.isDebugEnabled()) {<a name="line.769"></a>
+<span class="sourceLineNo">770</span>      LOG.debug("Registered regionserver coprocessor executorService: executorService=" + serviceName);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>    }<a name="line.771"></a>
+<span class="sourceLineNo">772</span>    return true;<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>   * Create a 'smarter' Connection, one that is capable of by-passing RPC if the request is to<a name="line.776"></a>
+<span class="sourceLineNo">777</span>   * the local server; i.e. a short-circuit Connection. Safe to use going to local or remote<a name="line.777"></a>
+<span class="sourceLineNo">778</span>   * server. Create this instance in a method can be intercepted and mocked in tests.<a name="line.778"></a>
+<span class="sourceLineNo">779</span>   * @throws IOException<a name="line.779"></a>
+<span class="sourceLineNo">780</span>   */<a name="line.780"></a>
+<span class="sourceLineNo">781</span>  @VisibleForTesting<a name="line.781"></a>
+<span class="sourceLineNo">782</span>  protected ClusterConnection createClusterConnection() throws IOException {<a name="line.782"></a>
+<span class="sourceLineNo">783</span>    Configuration conf = this.conf;<a name="line.783"></a>
+<span class="sourceLineNo">784</span>    if (conf.get(HConstants.CLIENT_ZOOKEEPER_QUORUM) != null) {<a name="line.784"></a>
+<span class="sourceLineNo">785</span>      // Use server ZK cluster for server-issued connections, so we clone<a name="line.785"></a>
+<span class="sourceLineNo">786</span>      // the conf and unset the client ZK related properties<a name="line.786"></a>
+<span class="sourceLineNo">787</span>      conf = new Configuration(this.conf);<a name="line.787"></a>
+<span class="sourceLineNo">788</span>      conf.unset(HConstants.CLIENT_ZOOKEEPER_QUORUM);<a name="line.788"></a>
+<span class="sourceLineNo">789</span>    }<a name="line.789"></a>
+<span class="sourceLineNo">790</span>    // Create a cluster connection that when appropriate, can short-circuit and go directly to the<a name="line.790"></a>
+<span class="sourceLineNo">791</span>    // local server if the request is to the local server bypassing RPC. Can be used for both local<a name="line.791"></a>
+<span class="sourceLineNo">792</span>    // and remote invocations.<a name="line.792"></a>
+<span class="sourceLineNo">793</span>    return ConnectionUtils.createShortCircuitConnection(conf, null, userProvider.getCurrent(),<a name="line.793"></a>
+<span class="sourceLineNo">794</span>      serverName, rpcServices, rpcServices);<a name="line.794"></a>
+<span class="sourceLineNo">795</span>  }<a name="line.795"></a>
+<span class="sourceLineNo">796</span><a name="line.796"></a>
+<span class="sourceLineNo">797</span>  /**<a name="line.797"></a>
+<span class="sourceLineNo">798</span>   * Run test on configured codecs to make sure supporting libs are in place.<a name="line.798"></a>
+<span class="sourceLineNo">799</span>   * @param c<a name="line.799"></a>
+<span class="sourceLineNo">800</span>   * @throws IOException<a name="line.800"></a>
+<span class="sourceLineNo">801</span>   */<a name="line.801"></a>
+<span class="sourceLineNo">802</span>  private static void checkCodecs(final Configuration c) throws IOException {<a name="line.802"></a>
+<span class="sourceLineNo">803</span>    // check to see if the codec list is available:<a name="line.803"></a>
+<span class="sourceLineNo">804</span>    String [] codecs = c.getStrings("hbase.regionserver.codecs", (String[])null);<a name="line.804"></a>
+<span class="sourceLineNo">805</span>    if (codecs == null) return;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>    for (String codec : codecs) {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>      if (!CompressionTest.testCompression(codec)) {<a name="line.807"></a>
+<span class="sourceLineNo">808</span>        throw new IOException("Compression codec " + codec +<a name="line.808"></a>
+<span class="sourceLineNo">809</span>          " not supported, aborting RS construction");<a name="line.809"></a>
+<span class="sourceLineNo">810</span>      }<a name="line.810"></a>
+<span class="sourceLineNo">811</span>    }<a name="line.811"></a>
+<span class="sourceLineNo">812</span>  }<a name="line.812"></a>
+<span class="sourceLineNo">813</span><a name="line.813"></a>
+<span class="sourceLineNo">814</span>  public String getClusterId() {<a name="line.814"></a>
+<span class="sourceLineNo">815</span>    return this.clusterId;<a name="line.815"></a>
+<span class="sourceLineNo">816</span>  }<a name="line.816"></a>
+<span class="sourceLineNo">817</span><a name="line.817"></a>
+<span class="sourceLineNo">818</span>  /**<a name="line.818"></a>
+<span class="sourceLineNo">819</span>   * Setup our cluster connection if not already initialized.<a name="line.819"></a>
+<span class="sourceLineNo">820</span>   * @throws IOException<a name="line.820"></a>
+<span class="sourceLineNo">821</span>   */<a name="line.821"></a>
+<span class="sourceLineNo">822</span>  protected synchronized void setupClusterConnection() throws IOException {<a name="line.822"></a>
+<span class="sourceLineNo">823</span>    if (clusterConnection == null) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>      clusterConnection = createClusterConnection();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>      metaTableLocator = new MetaTableLocator();<a name="line.825"></a>
+<span class="sourceLineNo">826</span>    }<a name="line.826"></a>
+<span class="sourceLineNo">827</span>  }<a name="line.827"></a>
+<span class="sourceLineNo">828</span><a name="line.828"></a>
+<span class="sourceLineNo">829</span>  /**<a name="line.829"></a>
+<span class="sourceLineNo">830</span>   * All initialization needed before we go register with Master.&lt;br&gt;<a name="line.830"></a>
+<span class="sourceLineNo">831</span>   * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.&lt;br&gt;<a name="line.831"></a>
+<span class="sourceLineNo">832</span>   * In here we just put up the RpcServer, setup Connection, and ZooKeeper.<a name="line.832"></a>
+<span class="sourceLineNo">833</span>   */<a name="line.833"></a>
+<span class="sourceLineNo">834</span>  private void preRegistrationInitialization() {<a name="line.834"></a>
+<span class="sourceLineNo">835</span>    try {<a name="line.835"></a>
+<span class="sourceLineNo">836</span>      initializeZooKeeper();<a name="line.836"></a>
+<span class="sourceLineNo">837</span>      setupClusterConnection();<a name="line.837"></a>
+<span class="sourceLineNo">838</span>      // Setup RPC client for master communication<a name="line.838"></a>
+<span class="sourceLineNo">839</span>      this.rpcClient = RpcClientFactory.createClient(conf, clusterId, new InetSocketAddress(<a name="line.839"></a>
+<span class="sourceLineNo">840</span>          this.rpcServices.isa.getAddress(), 0), clusterConnection.getConnectionMetrics());<a name="line.840"></a>
+<span class="sourceLineNo">841</span>    } catch (Throwable t) {<a name="line.841"></a>
+<span class="sourceLineNo">842</span>      // Call stop if error or process will stick around for ever since server<a name="line.842"></a>
+<span class="sourceLineNo">843</span>      // puts up non-daemon threads.<a name="line.843"></a>
+<span class="sourceLineNo">844</span>      this.rpcServices.stop();<a name="line.844"></a>
+<span class="sourceLineNo">845</span>      abort("Initialization of RS failed.  Hence aborting RS.", t);<a name="line.845"></a>
+<span class="sourceLineNo">846</span>    }<a name="line.846"></a>
+<span class="sourceLineNo">847</span>  }<a name="line.847"></a>
+<span class="sourceLineNo">848</span><a name="line.848"></a>
+<span class="sourceLineNo">849</span>  /**<a name="line.849"></a>
+<span class="sourceLineNo">850</span>   * Bring up connection to zk ensemble and then wait until a master for this cluster and then after<a name="line.850"></a>
+<span class="sourceLineNo">851</span>   * that, wait until cluster 'up' flag has been set. This is the order in which master does things.<a name="line.851"></a>
+<span class="sourceLineNo">852</span>   * &lt;p&gt;<a name="line.852"></a>
+<span class="sourceLineNo">853</span>   * Finally open long-living server short-circuit connection.<a name="line.853"></a>
+<span class="sourceLineNo">854</span>   */<a name="line.854"></a>
+<span class="sourceLineNo">855</span>  @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE",<a name="line.855"></a>
+<span class="sourceLineNo">856</span>    justification="cluster Id znode read would give us correct response")<a name="line.856"></a>
+<span class="sourceLineNo">857</span>  private void initializeZooKeeper() throws IOException, InterruptedException {<a name="line.857"></a>
+<span class="sourceLineNo">858</span>    // Nothing to do in here if no Master in the mix.<a name="line.858"></a>
+<span class="sourceLineNo">859</span>    if (this.masterless) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>      return;<a name="line.860"></a>
+<span class="sourceLineNo">861</span>    }<a name="line.861"></a>
+<span class="sourceLineNo">862</span><a name="line.862"></a>
+<span class="sourceLineNo">863</span>    // Create the master address tracker, register with zk, and start it.  Then<a name="line.863"></a>
+<span class="sourceLineNo">864</span>    // block until a master is available.  No point in starting up if no master<a name="line.864"></a>
+<span class="sourceLineNo">865</span>    // running.<a name="line.865"></a>
+<span class="sourceLineNo">866</span>    blockAndCheckIfStopped(this.masterAddressTracker);<a name="line.866"></a>
+<span class="sourceLineNo">867</span><a name="line.867"></a>
+<span class="sourceLineNo">868</span>    // Wait on cluster being up.  Master will set this flag up in zookeeper<a name="line.868"></a>
+<span class="sourceLineNo">869</span>    // when ready.<a name="line.869"></a>
+<span class="sourceLineNo">870</span>    blockAndCheckIfStopped(this.clusterStatusTracker);<a name="line.870"></a>
+<span class="sourceLineNo">871</span><a name="line.871"></a>
+<span class="sourceLineNo">872</span>    // If we are HMaster then the cluster id should have already been set.<a name="line.872"></a>
+<span class="sourceLineNo">873</span>    if (clusterId == null) {<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      // Retrieve clusterId<a name="line.874"></a>
+<span class="sourceLineNo">875</span>      // Since cluster status is now up<a name="line.875"></a>
+<span class="sourceLineNo">876</span>      // ID should have already been set by HMaster<a name="line.876"></a>
+<span class="sourceLineNo">877</span>      try {<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        clusterId = ZKClusterId.readClusterIdZNode(this.zooKeeper);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        if (clusterId == null) {<a name="line.879"></a>
+<span class="sourceLineNo">880</span>          this.abort("Cluster ID has not been set");<a name="line.880"></a>
+<span class="sourceLineNo">881</span>        }<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        LOG.info("ClusterId : " + clusterId);<a name="line.882"></a>
+<span class="sourceLineNo">883</span>      } catch (KeeperException e) {<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        this.abort("Failed to retrieve Cluster ID", e);<a name="line.884"></a>
+<span class="sourceLineNo">885</span>      }<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>    waitForMasterActive();<a name="line.888"></a>
+<span class="sourceLineNo">889</span>    if (isStopped() || isAborted()) {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>      return; // No need for further initialization<a name="line.890"></a>
+<span class="sourceLineNo">891</span>    }<a name="line.891"></a>
+<span class="sourceLineNo">892</span><a name="line.892"></a>
+<span class="sourceLineNo">893</span>    // watch for snapshots and other procedures<a name="line.893"></a>
+<span class="sourceLineNo">894</span>    try {<a name="line.894"></a>
+<span class="sourceLineNo">895</span>      rspmHost = new RegionServerProcedureManagerHost();<a name="line.895"></a>
+<span class="sourceLineNo">896</span>      rspmHost.loadProcedures(conf);<a name="line.896"></a>
+<span class="sourceLineNo">897</span>      rspmHost.initialize(this);<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    } catch (KeeperException e) {<a name="line.898"></a>
+<span class="sourceLineNo">899</span>      this.abort("Failed to reach coordination cluster when creating procedure handler.", e);<a name="line.899"></a>
+<span class="sourceLineNo">900</span>    }<a name="line.900"></a>
+<span class="sourceLineNo">901</span>  }<a name="line.901"></a>
+<span class="sourceLineNo">902</span><a name="line.902"></a>
+<span class="sourceLineNo">903</span>  /**<a name="line.903"></a>
+<span class="sourceLineNo">904</span>   * Utilty method to wait indefinitely on a znode availability while checking<a name="line.904"></a>
+<span class="sourceLineNo">905</span>   * if the region server is shut down<a name="line.905"></a>
+<span class="sourceLineNo">906</span>   * @param tracker znode tracker to use<a name="line.906"></a>
+<span class="sourceLineNo">907</span>   * @throws IOException any IO exception, plus if the RS is stopped<a name="line.907"></a>
+<span class="sourceLineNo">908</span>   * @throws InterruptedException<a name="line.908"></a>
+<span class="sourceLineNo">909</span>   */<a name="line.909"></a>
+<span class="sourceLineNo">910</span>  private void blockAndCheckIfStopped(ZKNodeTracker tracker)<a name="line.910"></a>
+<span class="sourceLineNo">911</span>      throws IOException, InterruptedException {<a name="line.911"></a>
+<span class="sourceLineNo">912</span>    while (tracker.blockUntilAvailable(this.msgInterval, false) == null) {<a name="line.912"></a>
+<span class="sourceLineNo">913</span>      if (this.stopped) {<a name="line.913"></a>
+<span class="sourceLineNo">914</span>        throw new IOException("Received the shutdown message while waiting.");<a name="line.914"></a>
+<span class="sourceLineNo">915</span>      }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>    }<a name="line.916"></a>
+<span class="sourceLineNo">917</span>  }<a name="line.917"></a>
+<span class="sourceLineNo">918</span><a name="line.918"></a>
+<span class="sourceLineNo">919</span>  /**<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   * @return True if the cluster is up.<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   */<a name="line.921"></a>
+<span class="sourceLineNo">922</span>  @Override<a name="line.922"></a>
+<span class="sourceLineNo">923</span>  public boolean isClusterUp() {<a name="line.923"></a>
+<span class="sourceLineNo">924</span>    return this.masterless ||<a name="line.924"></a>
+<span class="sourceLineNo">925</span>        (this.clusterStatusTracker != null &amp;&amp; this.clusterStatusTracker.isClusterUp());<a name="line.925"></a>
+<span class="sourceLineNo">926</span>  }<a name="line.926"></a>
+<span class="sourceLineNo">927</span><a name="line.927"></a>
+<span class="sourceLineNo">928</span>  /**<a name="line.928"></a>
+<span class="sourceLineNo">929</span>   * The HRegionServer sticks in this loop until closed.<a name="line.929"></a>
+<span class="sourceLineNo">930</span>   */<a name="line.930"></a>
+<span class="sourceLineNo">931</span>  @Override<a name="line.931"></a>
+<span class="sourceLineNo">932</span>  public void run() {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>    try {<a name="line.933"></a>
+<span class="sourceLineNo">934</span>      // Do pre-registration initializations; zookeeper, lease threads, etc.<a name="line.934"></a>
+<span class="sourceLineNo">935</span>      preRegistrationInitialization();<a name="line.935"></a>
+<span class="sourceLineNo">936</span>    } catch (Throwable e) {<a name="line.936"></a>
+<span class="sourceLineNo">937</span>      abort("Fatal exception during initialization", e);<a name="line.937"></a>
+<span class="sourceLineNo">938</span>    }<a name="line.938"></a>
+<span class="sourceLineNo">939</span><a name="line.939"></a>
+<span class="sourceLineNo">940</span>    try {<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.941"></a>
+<span class="sourceLineNo">942</span>        ShutdownHook.install(conf, fs, this, Thread.currentThread());<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        // Initialize the RegionServerCoprocessorHost now that our ephemeral<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        // node was created, in case any coprocessors want to use ZooKeeper<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        this.rsHost = new RegionServerCoprocessorHost(this, this.conf);<a name="line.945"></a>
+<span class="sourceLineNo">946</span>      }<a name="line.946"></a>
+<span class="sourceLineNo">947</span><a name="line.947"></a>
+<span class="sourceLineNo">948</span>      // Try and register with the Master; tell it we are here.  Break if server is stopped or the<a name="line.948"></a>
+<span class="sourceLineNo">949</span>      // clusterup flag is down or hdfs went wacky. Once registered successfully, go ahead and start<a name="line.949"></a>
+<span class="sourceLineNo">950</span>      // up all Services. Use RetryCounter to get backoff in case Master is struggling to come up.<a name="line.950"></a>
+<span class="sourceLineNo">951</span>      RetryCounterFactory rcf = new RetryCounterFactory(Integer.MAX_VALUE,<a name="line.951"></a>
+<span class="sourceLineNo">952</span>          this.sleeper.getPeriod(), 1000 * 60 * 5);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>      RetryCounter rc = rcf.create();<a name="line.953"></a>
+<span class="sourceLineNo">954</span>      while (keepLooping()) {<a name="line.954"></a>
+<span class="sourceLineNo">955</span>        RegionServerStartupResponse w = reportForDuty();<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        if (w == null) {<a name="line.956"></a>
+<span class="sourceLineNo">957</span>          long sleepTime = rc.getBackoffTimeAndIncrementAttempts();<a name="line.957"></a>
+<span class="sourceLineNo">958</span>          LOG.warn("reportForDuty failed; sleeping {} ms and then retrying.", sleepTime);<a name="line.958"></a>
+<span class="sourceLineNo">959</span>          this.sleeper.sleep(sleepTime);<a name="line.959"></a>
+<span class="sourceLineNo">960</span>        } else {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>          handleReportForDutyResponse(w);<a name="line.961"></a>
+<span class="sourceLineNo">962</span>          break;<a name="line.962"></a>
+<span class="sourceLineNo">963</span>        }<a name="line.963"></a>
+<span class="sourceLineNo">964</span>      }<a name="line.964"></a>
+<span class="sourceLineNo">965</span><a name="line.965"></a>
+<span class="sourceLineNo">966</span>      if (!isStopped() &amp;&amp; isHealthy()) {<a name="line.966"></a>
+<span class="sourceLineNo">967</span>        // start the snapshot handler and other procedure handlers,<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        // since the server is ready to run<a name="line.968"></a>
+<span class="sourceLineNo">969</span>        if (this.rspmHost != null) {<a name="line.969"></a>
+<span class="sourceLineNo">970</span>          this.rspmHost.start();<a name="line.970"></a>
+<span class="sourceLineNo">971</span>        }<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        // Start the Quota Manager<a name="line.972"></a>
+<span class="sourceLineNo">973</span>        if (this.rsQuotaManager != null) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>          rsQuotaManager.start(getRpcServer().getScheduler());<a name="line.974"></a>
 <span class="sourceLineNo">975</span>        }<a name="line.975"></a>
-<span class="sourceLineNo">976</span>      }<a name="line.976"></a>
-<span class="sourceLineNo">977</span><a name="line.977"></a>
-<span class="sourceLineNo">978</span>      // We registered with the Master.  Go into run mode.<a name="line.978"></a>
-<span class="sourceLineNo">979</span>      long lastMsg = System.currentTimeMillis();<a name="line.979"></a>
-<span class="sourceLineNo">980</span>      long oldRequestCount = -1;<a name="line.980"></a>
-<span class="sourceLineNo">981</span>      // The main run loop.<a name="line.981"></a>
-<span class="sourceLineNo">982</span>      while (!isStopped() &amp;&amp; isHealthy()) {<a name="line.982"></a>
-<span class="sourceLineNo">983</span>        if (!isClusterUp()) {<a name="line.983"></a>
-<span class="sourceLineNo">984</span>          if (isOnlineRegionsEmpty()) {<a name="line.984"></a>
-<span class="sourceLineNo">985</span>            stop("Exiting; cluster shutdown set and not carrying any regions");<a name="line.985"></a>
-<span class="sourceLineNo">986</span>          } else if (!this.stopping) {<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            this.stopping = true;<a name="line.987"></a>
-<span class="sourceLineNo">988</span>            LOG.info("Closing user regions");<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            closeUserRegions(this.abortRequested);<a name="line.989"></a>
-<span class="sourceLineNo">990</span>          } else if (this.stopping) {<a name="line.990"></a>
-<span class="sourceLineNo">991</span>            boolean allUserRegionsOffline = areAllUserRegionsOffline();<a name="line.991"></a>
-<span class="sourceLineNo">992</span>            if (allUserRegionsOffline) {<a name="line.992"></a>
-<span class="sourceLineNo">993</span>              // Set stopped if no more write requests tp meta tables<a name="line.993"></a>
-<span class="sourceLineNo">994</span>              // since last time we went around the loop.  Any open<a name="line.994"></a>
-<span class="sourceLineNo">995</span>              // meta regions will be closed on our way out.<a name="line.995"></a>
-<span class="sourceLineNo">996</span>              if (oldRequestCount == getWriteRequestCount()) {<a name="line.996"></a>
-<span class="sourceLineNo">997</span>                stop("Stopped; only catalog regions remaining online");<a name="line.997"></a>
-<span class="sourceLineNo">998</span>                break;<a name="line.998"></a>
-<span class="sourceLineNo">999</span>              }<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>              oldRequestCount = getWriteRequestCount();<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>            } else {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>              // Make sure all regions have been closed -- some regions may<a name="line.1002"></a>
-<span class="sourceLineNo">1003</span>              // have not got it because we were splitting at the time of<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>              // the call to closeUserRegions.<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>              closeUserRegions(this.abortRequested);<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>            }<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>            LOG.debug("Waiting on " + getOnlineRegionsAsPrintableString());<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>          }<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>        }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>        long now = System.currentTimeMillis();<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>        if ((now - lastMsg) &gt;= msgInterval) {<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>          tryRegionServerReport(lastMsg, now);<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>          lastMsg = System.currentTimeMillis();<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>        }<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span>        if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>          this.sleeper.sleep();<a name="line.1016"></a>
+<span class="sourceLineNo">976</span>        if (this.rsSpaceQuotaManager != null) {<a name="line.976"></a>
+<span class="sourceLineNo">977</span>          this.rsSpaceQuotaManager.start();<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        }<a name="line.978"></a>
+<span class="sourceLineNo">979</span>      }<a name="line.979"></a>
+<span class="sourceLineNo">980</span><a name="line.980"></a>
+<span class="sourceLineNo">981</span>      // We registered with the Master.  Go into run mode.<a name="line.981"></a>
+<span class="sourceLineNo">982</span>      long lastMsg = System.currentTimeMillis();<a name="line.982"></a>
+<span class="sourceLineNo">983</span>      long oldRequestCount = -1;<a name="line.983"></a>
+<span class="sourceLineNo">984</span>      // The main run loop.<a name="line.984"></a>
+<span class="sourceLineNo">985</span>      while (!isStopped() &amp;&amp; isHealthy()) {<a name="line.985"></a>
+<span class="sourceLineNo">986</span>        if (!isClusterUp()) {<a name="line.986"></a>
+<span class="sourceLineNo">987</span>          if (isOnlineRegionsEmpty()) {<a name="line.987"></a>
+<span class="sourceLineNo">988</span>            stop("Exiting; cluster shutdown set and not carrying any regions");<a name="line.988"></a>
+<span class="sourceLineNo">989</span>          } else if (!this.stopping) {<a name="line.989"></a>
+<span class="sourceLineNo">990</span>            this.stopping = true;<a name="line.990"></a>
+<span class="sourceLineNo">991</span>            LOG.info("Closing user regions");<a name="line.991"></a>
+<span class="sourceLineNo">992</span>            closeUserRegions(this.abortRequested);<a name="line.992"></a>
+<span class="sourceLineNo">993</span>          } else if (this.stopping) {<a name="line.993"></a>
+<span class="sourceLineNo">994</span>            boolean allUserRegionsOffline = areAllUserRegionsOffline();<a name="line.994"></a>
+<span class="sourceLineNo">995</span>            if (allUserRegionsOffline) {<a name="line.995"></a>
+<span class="sourceLineNo">996</span>              // Set stopped if no more write requests tp meta tables<a name="line.996"></a>
+<span class="sourceLineNo">997</span>              // since last time we went around the loop.  Any open<a name="line.997"></a>
+<span class="sourceLineNo">998</span>              // meta regions will be closed on our way out.<a name="line.998"></a>
+<span class="sourceLineNo">999</span>              if (oldRequestCount == getWriteRequestCount()) {<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>                stop("Stopped; only catalog regions remaining online");<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>                break;<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>              }<a name="line.1002"></a>
+<span class="sourceLineNo">1003</span>              oldRequestCount = getWriteRequestCount();<a name="line.1003"></a>
+<span class="sourceLineNo">1004</span>            } else {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>              // Make sure all regions have been closed -- some regions may<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>              // have not got it because we were splitting at the time of<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>              // the call to closeUserRegions.<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>              closeUserRegions(this.abortRequested);<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>            }<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>            LOG.debug("Waiting on " + getOnlineRegionsAsPrintableString());<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>          }<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>        }<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>        long now = System.currentTimeMillis();<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>        if ((now - lastMsg) &gt;= msgInterval) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>          tryRegionServerReport(lastMsg, now);<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>          lastMsg = System.currentTimeMillis();<a name="line.1016"></a>
 <span class="sourceLineNo">1017</span>        }<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>      } // for<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>    } catch (Throwable t) {<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>      if (!rpcServices.checkOOME(t)) {<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>        String prefix = t instanceof YouAreDeadException? "": "Unhandled: ";<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>        abort(prefix + t.getMessage(), t);<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>      }<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>    }<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>    if (this.leases != null) {<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>      this.leases.closeAfterLeasesExpire();<a name="line.1026"></a>
+<span class="sourceLineNo">1018</span>        if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>          this.sleeper.sleep();<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span>        }<a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>      } // for<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>    } catch (Throwable t) {<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>      if (!rpcServices.checkOOME(t)) {<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>        String prefix = t instanceof YouAreDeadException? "": "Unhandled: ";<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>        abort(prefix + t.getMessage(), t);<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>      }<a name="line.1026"></a>
 <span class="sourceLineNo">1027</span>    }<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    if (this.splitLogWorker != null) {<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>      splitLogWorker.stop();<a name="line.1029"></a>
+<span class="sourceLineNo">1028</span>    if (this.leases != null) {<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>      this.leases.closeAfterLeasesExpire();<a name="line.1029"></a>
 <span class="sourceLineNo">1030</span>    }<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>    if (this.infoServer != null) {<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>      LOG.info("Stopping infoServer");<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span>      try {<a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>        this.infoServer.stop();<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>      } catch (Exception e) {<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        LOG.error("Failed to stop infoServer", e);<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>      }<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>    }<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span>    // Send cache a shutdown.<a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>    if (cacheConfig != null &amp;&amp; cacheConfig.isBlockCacheEnabled()) {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>      cacheConfig.getBlockCache().sh

<TRUNCATED>