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 > 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 > 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> </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 conf,
+ boolean enableBlockCache)</code> </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 conf,
+ boolean enableBlockCache,
+ boolean cacheDataOnRead,
+ boolean inMemory,
+ boolean cacheDataOnWrite,
+ boolean cacheIndexesOnWrite,
+ boolean cacheBloomsOnWrite,
+ boolean evictOnClose,
+ boolean cacheDataCompressed,
+ boolean prefetchOnOpen,
+ boolean dropBehindCompaction)</code> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code> </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 conf,
<a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a> 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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 <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 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 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 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 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 <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 <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 <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 <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 <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 <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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.142">EXTERNAL_BLOCKCACHE_DEFAULT</a></pre>
+<pre>private static final 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 <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 <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 <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 <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 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 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 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 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 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 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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.172">DEFAULT_IN_MEMORY</a></pre>
+<pre>public static final 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 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 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 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 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 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 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 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 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 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 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 <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 <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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.188">cacheDataOnRead</a></pre>
+<pre>private 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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.191">inMemory</a></pre>
+<pre>private final 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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.194">cacheDataOnWrite</a></pre>
+<pre>private 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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.197">cacheIndexesOnWrite</a></pre>
+<pre>private final 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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.200">cacheBloomsOnWrite</a></pre>
+<pre>private final 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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.203">evictOnClose</a></pre>
+<pre>private 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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.206">cacheDataCompressed</a></pre>
+<pre>private final 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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.209">prefetchOnOpen</a></pre>
+<pre>private final 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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.211">dropBehindCompaction</a></pre>
+<pre>private final 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 <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 <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 <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 <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 <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 <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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.515">blockCacheDisabled</a></pre>
+<pre>static 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 <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.219">CacheConfig</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.217">CacheConfig</a>(org.apache.hadoop.conf.Configuration conf,
<a href="../../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a> 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 <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.249">CacheConfig</a>(org.apache.hadoop.conf.Configuration conf)</pre>
+<pre>public <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.247">CacheConfig</a>(org.apache.hadoop.conf.Configuration 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 <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.251">CacheConfig</a>(org.apache.hadoop.conf.Configuration conf,
+ boolean 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 <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.266">CacheConfig</a>(org.apache.hadoop.conf.Configuration conf,
+ boolean enableBlockCache,
+ boolean cacheDataOnRead,
+ boolean inMemory,
+ boolean cacheDataOnWrite,
+ boolean cacheIndexesOnWrite,
+ boolean cacheBloomsOnWrite,
+ boolean evictOnClose,
+ boolean cacheDataCompressed,
+ boolean prefetchOnOpen,
+ boolean 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> 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> blockCache,
boolean cacheDataOnRead,
boolean inMemory,
boolean 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 <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> cacheConf)</pre>
+<pre>public <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> 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 <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.312">CacheConfig</a>()</pre>
+<pre>private <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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.319">isBlockCacheEnabled</a>()</pre>
+<pre>public boolean <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 <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.327">getBlockCache</a>()</pre>
+<pre>public <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.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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.336">shouldCacheDataOnRead</a>()</pre>
+<pre>public boolean <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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.340">shouldDropBehindCompaction</a>()</pre>
+<pre>public boolean <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 boolean <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> category)</pre>
+<pre>public boolean <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> 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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.362">isInMemory</a>()</pre>
+<pre>public boolean <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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.370">shouldCacheDataOnWrite</a>()</pre>
+<pre>public boolean <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 void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.380">setCacheDataOnWrite</a>(boolean cacheDataOnWrite)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.402">setCacheDataOnWrite</a>(boolean 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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.388">shouldCacheIndexesOnWrite</a>()</pre>
+<pre>public boolean <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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.396">shouldCacheBloomsOnWrite</a>()</pre>
+<pre>public boolean <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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.404">shouldEvictOnClose</a>()</pre>
+<pre>public boolean <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 void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.413">setEvictOnClose</a>(boolean evictOnClose)</pre>
+<pre>public void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.435">setEvictOnClose</a>(boolean 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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.420">shouldCacheDataCompressed</a>()</pre>
+<pre>public boolean <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 boolean <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> category)</pre>
+<pre>public boolean <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> 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 boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.440">shouldPrefetchOnOpen</a>()</pre>
+<pre>public boolean <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 boolean <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> blockType)</pre>
+<pre>public boolean <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> 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 boolean <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> blockType)</pre>
+<pre>public boolean <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> 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 <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.487">toString</a>()</pre>
+<pre>public <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.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> in class <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 <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.521">getOnHeapCache</a>(org.apache.hadoop.conf.Configuration c)</pre>
+<pre>public static <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.543">getOnHeapCache</a>(org.apache.hadoop.conf.Configuration 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 <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.525">getOnHeapCacheStats</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a> <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 <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.532">getL2CacheStats</a>()</pre>
+<pre>public <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheStats.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheStats</a> <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 <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.543">getOnHeapCacheInternal</a>(org.apache.hadoop.conf.Configuration c)</pre>
+<pre>private static <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.565">getOnHeapCacheInternal</a>(org.apache.hadoop.conf.Configuration 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 <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.559">getExternalBlockcache</a>(org.apache.hadoop.conf.Configuration c)</pre>
+<pre>private static <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.581">getExternalBlockcache</a>(org.apache.hadoop.conf.Configuration 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 <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.589">getBucketCache</a>(org.apache.hadoop.conf.Configuration c)</pre>
+<pre>static <a href="../../../../../../org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketCache</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.611">getBucketCache</a>(org.apache.hadoop.conf.Configuration 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 <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.649">instantiateBlockCache</a>(org.apache.hadoop.conf.Configuration conf)</pre>
+<pre>public static <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.671">instantiateBlockCache</a>(org.apache.hadoop.conf.Configuration 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 void <a href="../../../../../../src-html/org/apache/hadoop/hbase/io/hfile/CacheConfig.html#line.677">clearGlobalInstances</a>()</pre>
+<pre>static void <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><E> (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><T>, 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><E> (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><T>, 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><E> (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><T>, 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> <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> <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 –
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 –
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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 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"> </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> </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"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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> </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> </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 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 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 <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 void <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 void <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 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"> </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> </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"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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> </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 tableName,
+ byte[] snapshotName,
+ int snapshotRows)</code> </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> </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 tableName)</code> </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 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 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 <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 void <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#line.37">testCloneSnapshot</a>(org.apache.hadoop.hbase.TableName tableName,
+ byte[] snapshotName,
+ int 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientNormalTestBase.html#line.47">verifyReplicasCameOnline</a>(org.apache.hadoop.hbase.TableName 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 void <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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"> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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"> </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> </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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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 table)</code> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> util,
+ org.apache.hadoop.hbase.TableName tableName,
+ long expectedRows)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class 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 <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 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 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 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 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 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 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 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 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 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 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 <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 void <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 void <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 void <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 <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/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 void <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 void <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 int <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 int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientTestBase.html#line.106">countRows</a>(org.apache.hadoop.hbase.client.Table 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 void <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 int <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 void <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> util,
+ org.apache.hadoop.hbase.TableName tableName,
+ long 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 void <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 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 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 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 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 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 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 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 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 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 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>©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 –
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 – 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 – 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 – 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 – 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 static final <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 static final <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> </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> </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> </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> </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> </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> </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><E> (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><T>, 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><E> (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><T>, 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><E> (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><T>, 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><<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile">CacheConfig.ExternalBlockCaches</a>></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 <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 <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><? extends <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.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><? extends <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.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 <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.153">values</a>()</pre>
+<pre>public static <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.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 <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.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> name)</pre>
+<pre>public static <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.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> 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 <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 <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 <a href="../../../../src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html#line.35">TestCheckTestClasses</a>()</pre>
+<pre>public <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 void <a href="../../../../src-html/org/apache/hadoop/hbase/TestCheckTestClasses.html#line.46">checkClasses</a>()
+<pre>public void <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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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"> </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"> </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"> </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 </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> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class </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> </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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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"> </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"> </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"> </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 </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> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class </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> </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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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"> </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"> </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"> </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 </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> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class </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> </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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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"> </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"> </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"> </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 </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> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class </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> </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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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"> </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"> </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"> </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 </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> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class </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> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class </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> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class </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> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class </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> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class </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> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class </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> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class </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> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class </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> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class </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> </td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class </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> </td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class </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> </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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All 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"> </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"> </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"> </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 </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> </td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>class </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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All 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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All 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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 < plans.size() && System.currentTimeMillis() > 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 < 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<TableName> allEnabledTables = new ArrayList<>(<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 < plans.size() && System.currentTimeMillis() > 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 < 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 &&<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<NormalizationPlan> 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<TableName> allEnabledTables = new ArrayList<>(<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 &&<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<NormalizationPlan> 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<ServerName> exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span> : new ArrayList<>(1);<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span> if (destServerName != null && 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<ServerName> 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<ServerName> exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span> : new ArrayList<>(1);<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span> if (destServerName != null && 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<ServerName> 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) && balancer instanceof BaseLoadBalancer<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span> && !((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<byte []> 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) && balancer instanceof BaseLoadBalancer<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span> && !((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<byte []> 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 && !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 < 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 && !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 < 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 < 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 < 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 < 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 < 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 < 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 < 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() <= 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() < 1024 || hcd.getBlocksize() > 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() <= 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() < 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() < 1024 || hcd.getBlocksize() > 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 <= maxVerions<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span> if (hcd.getMinVersions() > 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 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 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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
-<li>Nested | </li>
-<li><a href="#field.summary">Field</a> | </li>
-<li><a href="#constructor.summary">Constr</a> | </li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail: </li>
-<li><a href="#field.detail">Field</a> | </li>
-<li><a href="#constructor.detail">Constr</a> | </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"> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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"> </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> </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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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> </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> </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> </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> </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 regionInfo)</code> </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> </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> </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> </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> </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> </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 tableName,
- byte[] snapshotName,
- int snapshotRows)</code> </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> </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> </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 tableName)</code> </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> util,
- org.apache.hadoop.hbase.TableName tableName,
- long expectedRows)</code> </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> </td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
-<!-- -->
-</a>
-<h3>Methods inherited from class 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 <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 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 <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 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 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 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 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 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 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 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 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 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 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 <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 void <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 void <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 void <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 void <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 void <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 int <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 void <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 void <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 void <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 void <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.189">testCloneSnapshot</a>(org.apache.hadoop.hbase.TableName tableName,
- byte[] snapshotName,
- int 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.199">verifyReplicasCameOnline</a>(org.apache.hadoop.hbase.TableName 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 void <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 void <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 void <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 void <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 void <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> util,
- org.apache.hadoop.hbase.TableName tableName,
- long 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestCloneSnapshotFromClient.html#line.325">splitRegion</a>(org.apache.hadoop.hbase.client.RegionInfo 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 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 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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
-<li>Nested | </li>
-<li><a href="#field.summary">Field</a> | </li>
-<li><a href="#constructor.summary">Constr</a> | </li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail: </li>
-<li><a href="#field.detail">Field</a> | </li>
-<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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"> </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> </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> </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 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"> </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> </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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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> </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><<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></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientAfterSplittingRegion.html#params--">params</a></span>()</code> </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 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 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 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 <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 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 <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 <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><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]> <a href="../../../../../src-html/org/apache/hadoop/hbase/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 int <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> in class <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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"> </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> </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> </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 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"> </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> </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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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> </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><<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></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientCloneLinksAfterDelete.html#params--">params</a></span>()</code> </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 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 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 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 <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 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 <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 <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><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]> <a href="../../../../../src-html/org/apache/hadoop/hbase/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 int <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> in class <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 && !LoadBalancer.isTablesOnMaster(conf) && !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 & 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<TableDescriptorBuilder, TableDescriptorBuilder> 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<? extends HttpServlet> 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.<br><a name="line.827"></a>
-<span class="sourceLineNo">828</span> * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.<br><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> * <p><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 && 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() && !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() && 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 & 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<TableDescriptorBuilder, TableDescriptorBuilder> 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<? extends HttpServlet> 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.<br><a name="line.830"></a>
+<span class="sourceLineNo">831</span> * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.<br><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> * <p><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 && 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() && !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() && 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() && 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) >= 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() && !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() && 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) >= 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() && !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 && 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 && !LoadBalancer.isTablesOnMaster(conf) && !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 & 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<TableDescriptorBuilder, TableDescriptorBuilder> 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<? extends HttpServlet> 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.<br><a name="line.827"></a>
-<span class="sourceLineNo">828</span> * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.<br><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> * <p><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 && 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() && !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() && 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 & 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<TableDescriptorBuilder, TableDescriptorBuilder> 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<? extends HttpServlet> 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.<br><a name="line.830"></a>
+<span class="sourceLineNo">831</span> * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.<br><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> * <p><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 && 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() && !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() && 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() && 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) >= 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() && !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() && 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) >= 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() && !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 && 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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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"> </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> </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> </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 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"> </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> </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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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> </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><<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></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientError.html#params--">params</a></span>()</code> </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 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 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 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 <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 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 <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 <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><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]> <a href="../../../../../src-html/org/apache/hadoop/hbase/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 int <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> in class <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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"> </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> </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> </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 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"> </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> </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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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> </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><<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></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestCloneSnapshotFromClientNormal.html#params--">params</a></span>()</code> </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 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 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 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 <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 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 <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 <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><<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>[]> <a href="../../../../../src-html/org/apache/hadoop/hbase/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 int <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> in class <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
-<li>Nested | </li>
-<li><a href="#field.summary">Field</a> | </li>
-<li><a href="#constructor.summary">Constr</a> | </li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail: </li>
-<li><a href="#field.detail">Field</a> | </li>
-<li><a href="#constructor.detail">Constr</a> | </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"> </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> </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 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"> </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> </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"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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> </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 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 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 <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 <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 int <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> in class <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 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 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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
-<li>Nested | </li>
-<li><a href="#field.summary">Field</a> | </li>
-<li><a href="#constructor.summary">Constr</a> | </li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail: </li>
-<li><a href="#field.detail">Field</a> | </li>
-<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
-<li>Nested | </li>
-<li>Field | </li>
-<li><a href="#constructor.summary">Constr</a> | </li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail: </li>
-<li>Field | </li>
-<li><a href="#constructor.detail">Constr</a> | </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 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 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 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"> </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> </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"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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><org.apache.hadoop.hbase.coprocessor.RegionObserver></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html#getRegionObserver--">getRegionObserver</a></span>()</code> </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<org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment> e,
- org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker tracker)</code> </td>
-</tr>
-</table>
-<ul class="blockList">
-<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
-<!-- -->
-</a>
-<h3>Methods inherited from class 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 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 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 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 <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 <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><org.apache.hadoop.hbase.coprocessor.RegionObserver> <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> in interface <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClient.DelayFlushCoprocessor.html#line.156">preFlush</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext<org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment> e,
- org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker 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> in interface <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 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 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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
-<li>Nested | </li>
-<li>Field | </li>
-<li><a href="#constructor.summary">Constr</a> | </li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail: </li>
-<li>Field | </li>
-<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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<RegionInfo> 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<Object[]> 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<Object[]> 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<Object[]> 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<Object[]> 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<Pair<RegionInfo, ServerName>> 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() < 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<RegionInfo, ServerName> 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<RegionInfo, ServerName> 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<RegionInfo> 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<byte[], Long> 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<byte[], Long> 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, () -> TEST_UTIL.getMiniHBaseCluster().getMaster() != null &&<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 -> sn.getMaster().getServerName()).forEach(sn -> {<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, () -> TEST_UTIL.getMiniHBaseCluster().getMaster() != null &&<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<Pair<RegionInfo, ServerName>> 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() < 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<RegionInfo, ServerName> 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<RegionInfo, ServerName> 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<RegionInfo> 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<byte[], Long> 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<byte[], Long> 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, () -> TEST_UTIL.getMiniHBaseCluster().getMaster() != null &&<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 -> sn.getMaster().getServerName()).forEach(sn -> {<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, () -> TEST_UTIL.getMiniHBaseCluster().getMaster() != null &&<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 > 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 > 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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li><a href="#nested.class.summary">Nested</a> | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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"> </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 </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"> </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> </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> </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 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"> </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> </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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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 table)</code> </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> </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> </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> </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> </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 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 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 <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 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 <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 void <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 void <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 void <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> in class <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 int <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> in class <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 int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.html#line.104">countRows</a>(org.apache.hadoop.hbase.client.Table 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> in class <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 void <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: <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> in class <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li><a href="#nested.class.summary">Nested</a> | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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"> </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> </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 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"> </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> </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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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 table)</code> </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> </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> </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> </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> </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 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 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 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 <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 <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 void <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 void <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 void <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> in class <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 int <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> in class <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 int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientError.html#line.63">countRows</a>(org.apache.hadoop.hbase.client.Table 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> in class <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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"> </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> </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 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"> </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> </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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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 table)</code> </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> </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> </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> </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> </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> util,
+ org.apache.hadoop.hbase.TableName tableName,
+ long expectedRows)</code> </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 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 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 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 <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 <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 void <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 void <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 void <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> in class <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 int <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> in class <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 int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientNormal.html#line.65">countRows</a>(org.apache.hadoop.hbase.client.Table 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> in class <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 void <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> util,
+ org.apache.hadoop.hbase.TableName tableName,
+ long 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> in class <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 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 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 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 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>movedRegions</h4>
-<pre>protected <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><<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>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3437">movedRegions</a></pre>
+<pre>protected <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><<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>> <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 <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 int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3441">TIMEOUT_REGION_MOVED</a></pre>
+<pre>private static final 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getUseThisHostnameInstead</h4>
-<pre>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> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.649">getUseThisHostnameInstead</a>(org.apache.hadoop.conf.Configuration conf)
+<pre>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> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.652">getUseThisHostnameInstead</a>(org.apache.hadoop.conf.Configuration 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>setupWindows</h4>
-<pre>private static void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.668">setupWindows</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>private static void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.671">setupWindows</a>(org.apache.hadoop.conf.Configuration conf,
<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a> cm)</pre>
<div class="block">If running on Windows, do windows-specific setup.</div>
</li>
@@ -2502,7 +2502,7 @@ protected static final <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>setupNetty</h4>
-<pre>private static <a href="../../../../../org/apache/hadoop/hbase/util/NettyEventLoopGroupConfig.html" title="class in org.apache.hadoop.hbase.util">NettyEventLoopGroupConfig</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.680">setupNetty</a>(org.apache.hadoop.conf.Configuration conf)</pre>
+<pre>private static <a href="../../../../../org/apache/hadoop/hbase/util/NettyEventLoopGroupConfig.html" title="class in org.apache.hadoop.hbase.util">NettyEventLoopGroupConfig</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.683">setupNetty</a>(org.apache.hadoop.conf.Configuration conf)</pre>
</li>
</ul>
<a name="initializeFileSystem--">
@@ -2511,7 +2511,7 @@ protected static final <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>initializeFileSystem</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.689">initializeFileSystem</a>()
+<pre>private void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getFsTableDescriptors</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.705">getFsTableDescriptors</a>()
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/TableDescriptors.html" title="interface in org.apache.hadoop.hbase">TableDescriptors</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getMetaTableObserver</h4>
-<pre>protected <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><<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>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.710">getMetaTableObserver</a>()</pre>
+<pre>protected <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><<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>> <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>login</h4>
-<pre>protected void <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> user,
+<pre>protected void <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> 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> 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>waitForMasterActive</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.724">waitForMasterActive</a>()</pre>
+<pre>protected void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getProcessName</h4>
-<pre>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> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.726">getProcessName</a>()</pre>
+<pre>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> <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>canCreateBaseZNode</h4>
-<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.730">canCreateBaseZNode</a>()</pre>
+<pre>protected boolean <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>canUpdateTableDescriptor</h4>
-<pre>protected boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.734">canUpdateTableDescriptor</a>()</pre>
+<pre>protected boolean <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>createRpcServices</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.738">createRpcServices</a>()
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>configureInfoServer</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.742">configureInfoServer</a>()</pre>
+<pre>protected void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getDumpServlet</h4>
-<pre>protected <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><? extends javax.servlet.http.HttpServlet> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.747">getDumpServlet</a>()</pre>
+<pre>protected <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><? extends javax.servlet.http.HttpServlet> <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>registerService</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.752">registerService</a>(com.google.protobuf.Service instance)</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.755">registerService</a>(com.google.protobuf.Service instance)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>createClusterConnection</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.779">createClusterConnection</a>()
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>checkCodecs</h4>
-<pre>private static void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.799">checkCodecs</a>(org.apache.hadoop.conf.Configuration c)
+<pre>private static void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.802">checkCodecs</a>(org.apache.hadoop.conf.Configuration 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getClusterId</h4>
-<pre>public <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/regionserver/HRegionServer.html#line.811">getClusterId</a>()</pre>
+<pre>public <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/regionserver/HRegionServer.html#line.814">getClusterId</a>()</pre>
</li>
</ul>
<a name="setupClusterConnection--">
@@ -2696,7 +2696,7 @@ protected static final <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>setupClusterConnection</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.819">setupClusterConnection</a>()
+<pre>protected void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>preRegistrationInitialization</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.831">preRegistrationInitialization</a>()</pre>
+<pre>private void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>initializeZooKeeper</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.854">initializeZooKeeper</a>()
+<pre>private void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>blockAndCheckIfStopped</h4>
-<pre>private void <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> tracker)
+<pre>private void <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> 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>isClusterUp</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.920">isClusterUp</a>()</pre>
+<pre>public boolean <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> in interface <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>run</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.929">run</a>()</pre>
+<pre>public void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>containsMetaTableRegions</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1157">containsMetaTableRegions</a>()</pre>
+<pre>private boolean <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>areAllUserRegionsOffline</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1161">areAllUserRegionsOffline</a>()</pre>
+<pre>private boolean <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getWriteRequestCount</h4>
-<pre>private long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1176">getWriteRequestCount</a>()</pre>
+<pre>private long <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>tryRegionServerReport</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1185">tryRegionServerReport</a>(long reportStartTime,
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1188">tryRegionServerReport</a>(long reportStartTime,
long 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>reportRegionSizesForQuotas</h4>
-<pre>public boolean <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> regionSizeStore)</pre>
+<pre>public boolean <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> 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>buildReportAndSend</h4>
-<pre>void <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 rss,
+<pre>void <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 rss,
<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</a> 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 <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 <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> regionSizes)</pre>
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUseReportRequest <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> 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 <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 <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> regionInfo,
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionSpaceUse <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> 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> 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 <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 <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1302">buildServerLoad</a>(long reportStartTime,
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.ServerLoad <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1305">buildServerLoad</a>(long reportStartTime,
long 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 <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> <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> <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>waitOnAllRegionsToClose</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1385">waitOnAllRegionsToClose</a>(boolean abort)</pre>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1388">waitOnAllRegionsToClose</a>(boolean abort)</pre>
<div class="block">Wait on regions close.</div>
</li>
</ul>
@@ -2947,7 +2947,7 @@ protected static final <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>sleep</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1439">sleep</a>(long millis)</pre>
+<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1442">sleep</a>(long millis)</pre>
</li>
</ul>
<a name="shutdownWAL-boolean-">
@@ -2956,7 +2956,7 @@ protected static final <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>shutdownWAL</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1450">shutdownWAL</a>(boolean close)</pre>
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1453">shutdownWAL</a>(boolean close)</pre>
</li>
</ul>
<a name="handleReportForDutyResponse-org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse-">
@@ -2965,7 +2965,7 @@ protected static final <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>handleReportForDutyResponse</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1471">handleReportForDutyResponse</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse c)
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1474">handleReportForDutyResponse</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>initializeMemStoreChunkCreator</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1565">initializeMemStoreChunkCreator</a>()</pre>
+<pre>protected void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>startHeapMemoryManager</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1586">startHeapMemoryManager</a>()</pre>
+<pre>private void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>createMyEphemeralNode</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1594">createMyEphemeralNode</a>()
+<pre>private void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>deleteMyEphemeralNode</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1602">deleteMyEphemeralNode</a>()
+<pre>private void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getRegionServerAccounting</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1607">getRegionServerAccounting</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.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> in interface <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 <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 <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> r,
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad <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> r,
org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder regionLoadBldr,
org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier.Builder 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>createRegionLoad</h4>
-<pre>public org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad <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> encodedRegionName)
+<pre>public org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad <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> 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>isOnline</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1802">isOnline</a>()</pre>
+<pre>public boolean <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>setupWALAndReplication</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1810">setupWALAndReplication</a>()
+<pre>private void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>startReplicationService</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1842">startReplicationService</a>()
+<pre>private void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getRegionServerMetrics</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1857">getRegionServerMetrics</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1860">getRegionServerMetrics</a>()</pre>
</li>
</ul>
<a name="getMasterAddressTracker--">
@@ -3132,7 +3132,7 @@ protected static final <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getMasterAddressTracker</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterAddressTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1864">getMasterAddressTracker</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterAddressTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>startServices</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1882">startServices</a>()
+<pre>private void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>initializeThreads</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1984">initializeThreads</a>()
+<pre>private void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>registerConfigurationObservers</h4>
-<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2031">registerConfigurationObservers</a>()</pre>
+<pre>private void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>putUpWebUI</h4>
-<pre>private int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2043">putUpWebUI</a>()
+<pre>private int <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>isHealthy</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2097">isHealthy</a>()</pre>
+<pre>private boolean <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getWALs</h4>
-<pre>public <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><<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2115">getWALs</a>()
+<pre>public <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><<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>> <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getWAL</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> <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> regionInfo)
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a> <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> 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getWalRoller</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2128">getWalRoller</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2131">getWalRoller</a>()</pre>
</li>
</ul>
<a name="getConnection--">
@@ -3255,7 +3255,7 @@ protected static final <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getConnection</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2133">getConnection</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a> <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: <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getClusterConnection</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2138">getClusterConnection</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2141">getClusterConnection</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getMetaTableLocator</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html" title="class in org.apache.hadoop.hbase.zookeeper">MetaTableLocator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2143">getMetaTableLocator</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html" title="class in org.apache.hadoop.hbase.zookeeper">MetaTableLocator</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2146">getMetaTableLocator</a>()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
-<pre>public void <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> msg)</pre>
+<pre>public void <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> msg)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
-<pre>public void <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> msg,
+<pre>public void <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> msg,
boolean force,
<a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a> user)</pre>
<div class="block">Stops the regionserver.</div>
@@ -3346,7 +3346,7 @@ protected static final <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>waitForServerOnline</h4>
-<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2180">waitForServerOnline</a>()</pre>
+<pre>public void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>postOpenDeployTasks</h4>
-<pre>public void <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> context)
+<pre>public void <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> 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: <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>reportRegionStateTransition</h4>
-<pre>public boolean <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> context)</pre>
+<pre>public boolean <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> context)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>triggerFlushInPrimaryRegion</h4>
-<pre>void <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> region)</pre>
+<pre>void <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> 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getRpcServer</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2347">getRpcServer</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a> <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: <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getRSRpcServices</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2352">getRSRpcServices</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2355">getRSRpcServices</a>()</pre>
</li>
</ul>
<a name="abort-java.lang.String-java.lang.Throwable-">
@@ -3425,7 +3425,7 @@ protected static final <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>abort</h4>
-<pre>public void <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> reason,
+<pre>public void <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> 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> 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>abort</h4>
-<pre>public void <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> reason)</pre>
+<pre>public void <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> 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>isAborted</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2415">isAborted</a>()</pre>
+<pre>public boolean <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: <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>kill</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2425">kill</a>()</pre>
+<pre>protected void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>sendShutdownInterrupt</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2433">sendShutdownInterrupt</a>()</pre>
+<pre>protected void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>stopServiceThreads</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2440">stopServiceThreads</a>()</pre>
+<pre>protected void <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getReplicationSourceService</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2486">getReplicationSourceService</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.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> in interface <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getReplicationSinkService</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2493">getReplicationSinkService</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>createRegionServerStatusStub</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2506">createRegionServerStatusStub</a>()</pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>createRegionServerStatusStub</h4>
-<pre>protected <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2519">createRegionServerStatusStub</a>(boolean refresh)</pre>
+<pre>protected <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2522">createRegionServerStatusStub</a>(boolean 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>keepLooping</h4>
-<pre>private boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2591">keepLooping</a>()</pre>
+<pre>private boolean <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>reportForDuty</h4>
-<pre>private org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2602">reportForDuty</a>()
+<pre>private org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getLastSequenceId</h4>
-<pre>public org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionStoreSequenceIds <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2643">getLastSequenceId</a>(byte[] encodedRegionName)</pre>
+<pre>public org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionStoreSequenceIds <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2646">getLastSequenceId</a>(byte[] 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> in interface <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>closeAllRegions</h4>
-<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2674">closeAllRegions</a>(boolean abort)</pre>
+<pre>protected void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2677">closeAllRegions</a>(boolean 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>closeMetaTableRegions</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2683">closeMetaTableRegions</a>(boolean abort)</pre>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2686">closeMetaTableRegions</a>(boolean 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>closeUserRegions</h4>
-<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2706">closeUserRegions</a>(boolean abort)</pre>
+<pre>void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2709">closeUserRegions</a>(boolean 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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getInfoServer</h4>
-<pre>public <a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2722">getInfoServer</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2725">getInfoServer</a>()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the info server</dd>
@@ -3670,7 +3670,7 @@ protected static final <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>isStopped</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2730">isStopped</a>()</pre>
+<pre>public boolean <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> in interface <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>isStopping</h4>
-<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2735">isStopping</a>()</pre>
+<pre>public boolean <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> in interface <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getConfiguration</h4>
-<pre>public org.apache.hadoop.conf.Configuration <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2744">getConfiguration</a>()</pre>
+<pre>public org.apache.hadoop.conf.Configuration <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: <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 <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> <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> <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getNumberOfOnlineRegions</h4>
-<pre>public int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2753">getNumberOfOnlineRegions</a>()</pre>
+<pre>public int <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>isOnlineRegionsEmpty</h4>
-<pre>boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2757">isOnlineRegionsEmpty</a>()</pre>
+<pre>boolean <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>getOnlineRegionsLocalContext</h4>
-<pre>public <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><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2766">getOnlineRegionsLocalContext</a>()</pre>
+<pre>public <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><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>addRegion</h4>
-<pre>public void <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> region)</pre>
+<pre>public void <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> region)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 <a href="https://docs.oracle.com/javase/8/docs/api/j
<ul class="blockList">
<li class="blockList">
<h4>addRegion</h4>
-<pre>private void <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><<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><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>>> sortedRegions,
+<pre>private void <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><<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><<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>>> 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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </dd>
@@ -4453,7 +4457,13 @@
<dd> </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> </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> </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> </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> </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> </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> </dd>
@@ -7073,6 +7083,28 @@
<dd> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </dd>
@@ -11738,9 +11788,9 @@
<dd> </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> </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> </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> </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> </dd>
@@ -12949,7 +12999,7 @@
<dd> </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> </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> </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> </dd>
@@ -14107,6 +14157,8 @@
<dd> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </dd>
@@ -18166,7 +18222,7 @@
<dd> </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> </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> </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> </dd>
@@ -19386,6 +19442,8 @@
<dd> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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<RegionCoprocessorEnvironment>, 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<RegionCoprocessorEnvironment>, 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> </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<RegionCoprocessorEnvironment>, 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> </dd>
@@ -36956,6 +37036,11 @@
<dd> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </dd>
@@ -38795,9 +38881,15 @@
<dd> </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> </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> </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> </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> </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> </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> </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> </dd>
@@ -39638,13 +39730,13 @@
<dd> </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> </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> </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> </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> </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> </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> </dd>
@@ -39686,23 +39778,23 @@
<dd> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </dd>
@@ -39907,7 +39999,7 @@
<dd> </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> </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> </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> </dd>
@@ -42083,6 +42175,8 @@
<dd> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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<RegionObserver> 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<RegionCoprocessorEnvironment> 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<RegionObserver> 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<RegionCoprocessorEnvironment> 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<RegionObserver> 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<RegionCoprocessorEnvironment> 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<RegionObserver> 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<RegionCoprocessorEnvironment> 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><E> (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><T>, 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><E> (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><T>, 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><E> (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><T>, 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><E> (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><T>, 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><E> (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><T>, 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><E> (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><T>, 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><E> (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><T>, 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><E> (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><T>, 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><E> (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><T>, 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><T>)</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><T>)</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><T>)</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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../../allclasses-noframe.html">All 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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All 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 © 2007–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 <a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1743">getRegionNormalizer</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/master/normalizer/RegionNormalizer.html" title="interface in org.apache.hadoop.hbase.master.normalizer">RegionNormalizer</a> <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> in interface <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 boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1754">normalizeRegions</a>()
+<pre>public boolean <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 <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/master/HMaster.html#line.1812">getClientIdAuditPrefix</a>()</pre>
+<pre>public <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/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> in interface <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1823">setCatalogJanitorEnabled</a>(boolean b)</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1830">setCatalogJanitorEnabled</a>(boolean 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 long <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>[] regionsToMerge,
+<pre>public long <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>[] regionsToMerge,
boolean forcible,
long nonceGroup,
long 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 long <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> regionInfo,
+<pre>public long <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> regionInfo,
byte[] splitRow,
long nonceGroup,
long 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1902">move</a>(byte[] encodedRegionName,
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.1909">move</a>(byte[] encodedRegionName,
byte[] 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 long <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> tableDescriptor,
+<pre>public long <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> tableDescriptor,
byte[][] splitKeys,
long nonceGroup,
long 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 long <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> tableDescriptor)
+<pre>public long <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> 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: <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 void <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> htd)
+<pre>private void <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> 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 void <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> hcd)
+<pre>private void <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> 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2191">checkCompactionPolicy</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2198">checkCompactionPolicy</a>(org.apache.hadoop.conf.Configuration conf,
<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a> 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 void <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> cfd)
+<pre>private static void <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> 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2259">warnOrThrowExceptionForFailure</a>(boolean logWarn,
+<pre>private static void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2266">warnOrThrowExceptionForFailure</a>(boolean 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> 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> 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> 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2268">startActiveMasterManager</a>(int infoPort)
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2275">startActiveMasterManager</a>(int 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 void <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> htd)
+<pre>private void <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> 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 void <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> hcd)
+<pre>private void <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> 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2336">checkEncryption</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2343">checkEncryption</a>(org.apache.hadoop.conf.Configuration conf,
<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a> 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2344">checkEncryption</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2351">checkEncryption</a>(org.apache.hadoop.conf.Configuration conf,
<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a> 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2350">checkClassLoading</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>private void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2357">checkClassLoading</a>(org.apache.hadoop.conf.Configuration conf,
<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a> 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 boolean <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> tableName)</pre>
+<pre>private static boolean <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> 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 long <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> tableName,
+<pre>public long <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> tableName,
long nonceGroup,
long 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 long <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> tableName,
+<pre>public long <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> tableName,
boolean preserveSplits,
long nonceGroup,
long 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 long <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> tableName,
+<pre>public long <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> tableName,
<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a> column,
long nonceGroup,
long 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 long <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> tableName,
+<pre>public long <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> tableName,
<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a> descriptor,
long nonceGroup,
long 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 long <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> tableName,
+<pre>public long <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> tableName,
byte[] columnName,
long nonceGroup,
long 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 long <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> tableName,
+<pre>public long <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> tableName,
long nonceGroup,
long 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 long <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> tableName,
+<pre>public long <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> tableName,
long nonceGroup,
long 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><<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>> <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> tableName,
+<pre><a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a><<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>> <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> tableName,
byte[] 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 long <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> tableName,
+<pre>private long <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> tableName,
<a href="../../../../../org/apache/hadoop/hbase/master/HMaster.TableDescriptorGetter.html" title="interface in org.apache.hadoop.hbase.master">HMaster.TableDescriptorGetter</a> newDescriptorGetter,
long nonceGroup,
long 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 long <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> tableName,
+<pre>public long <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> tableName,
<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a> newDescriptor,
long nonceGroup,
long 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 long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2669">restoreSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription snapshotDesc,
+<pre>public long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2676">restoreSnapshot</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.SnapshotProtos.SnapshotDescription snapshotDesc,
long nonceGroup,
long nonce,
boolean 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 void <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> tableName)
+<pre>private void <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> 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 void <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> tableName)
+<pre>public void <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> 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 <a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2713">getClusterMetricsWithoutCoprocessor</a>()
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a> <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 <a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a> <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><<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase">ClusterMetrics.Option</a>> options)
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a> <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><<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase">ClusterMetrics.Option</a>> 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 <a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2779">getClusterMetrics</a>()
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a> <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 <a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a> <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><<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase">ClusterMetrics.Option</a>> options)
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a> <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><<a href="../../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase">ClusterMetrics.Option</a>> 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 <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><<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/master/HMaster.html#line.2794">getBackupMasters</a>()
+<pre>private <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><<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/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 <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/master/HMaster.html#line.2847">getLoadedCoprocessors</a>()</pre>
+<pre>public static <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/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 long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2854">getMasterStartTime</a>()</pre>
+<pre>public long <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 long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2861">getMasterActiveTime</a>()</pre>
+<pre>public long <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 long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2868">getMasterFinishedInitializationTime</a>()</pre>
+<pre>public long <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 int <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2872">getNumWALFiles</a>()</pre>
+<pre>public int <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 <a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2876">getWalProcedureStore</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a> <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 int <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> sn)</pre>
+<pre>public int <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> 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 <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/master/HMaster.html#line.2887">getRegionServerVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> sn)</pre>
+<pre>public <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/master/HMaster.html#line.2894">getRegionServerVersion</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> 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> in interface <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2894">checkIfShouldMoveSystemRegionAsync</a>()</pre>
+<pre>public void <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: <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 <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/master/HMaster.html#line.2901">getMasterCoprocessors</a>()</pre>
+<pre>public <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/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 void <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> reason,
+<pre>public void <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> 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> cause)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class: <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 <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2931">getZooKeeper</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a> <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: <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 <a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2936">getMasterCoprocessorHost</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/master/MasterCoprocessorHost.html" title="class in org.apache.hadoop.hbase.master">MasterCoprocessorHost</a> <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> in interface <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 <a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2941">getMasterQuotaManager</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/quotas/MasterQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">MasterQuotaManager</a> <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> in interface <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 <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a><<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2946">getMasterProcedureExecutor</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureExecutor.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureExecutor</a><<a href="../../../../../org/apache/hadoop/hbase/master/procedure/MasterProcedureEnv.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureEnv</a>> <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> in interface <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 <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/master/HMaster.html#line.2951">getServerName</a>()</pre>
+<pre>public <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/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> in interface <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 <a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2956">getAssignmentManager</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/master/assignment/AssignmentManager.html" title="class in org.apache.hadoop.hbase.master.assignment">AssignmentManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/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> in interface <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 <a href="../../../../../org/apache/hadoop/hbase/master/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master">CatalogJanitor</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2961">getCatalogJanitor</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/master/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master">CatalogJanitor</a> <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> in interface <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 <a href="../../../../../org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.html" title="class in org.apache.hadoop.hbase.monitoring">MemoryBoundedLogMessageBuffer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2965">getRegionServerFatalLogBuffer</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/monitoring/MemoryBoundedLogMessageBuffer.html" title="class in org.apache.hadoop.hbase.monitoring">MemoryBoundedLogMessageBuffer</a> <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.2973">shutdown</a>()
+<pre>public void <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3005">stopMaster</a>()
+<pre>public void <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 void <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> msg)</pre>
+<pre>public void <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> msg)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3023">checkServiceStarted</a>()
+<pre>protected void <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 <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3035">checkInitialized</a>()
+<pre>void <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 boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3055">isActiveMaster</a>()</pre>
+<pre>public boolean <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 boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3069">isInitialized</a>()</pre>
+<pre>public boolean <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 boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3079">isInMaintenanceMode</a>()
+<pre>public boolean <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3087">setInitialized</a>(boolean isInitialized)</pre>
+<pre>public void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3094">setInitialized</a>(boolean 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 <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a><?> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3092">getInitializedEvent</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/procedure2/ProcedureEvent.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureEvent</a><?> <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> in interface <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 double <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3102">getAverageLoad</a>()</pre>
+<pre>public double <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 long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3117">getSplitPlanCount</a>()</pre>
+<pre>public long <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 long <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3124">getMergePlanCount</a>()</pre>
+<pre>public long <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 boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3129">registerService</a>(com.google.protobuf.Service instance)</pre>
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3136">registerService</a>(com.google.protobuf.Service instance)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a> <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><? extends <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>> masterClass,
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a> <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><? extends <a href="../../../../../org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a>> masterClass,
org.apache.hadoop.conf.Configuration 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 void <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>[] args)</pre>
+<pre>public static void <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>[] 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 <a href="../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3179">getHFileCleaner</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/master/cleaner/HFileCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">HFileCleaner</a> <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 <a href="../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3183">getLogCleaner</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/master/cleaner/LogCleaner.html" title="class in org.apache.hadoop.hbase.master.cleaner">LogCleaner</a> <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 <a href="../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" title="class in org.apache.hadoop.hbase.master.snapshot">SnapshotManager</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3191">getSnapshotManager</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/master/snapshot/SnapshotManager.html" title="class in org.apache.hadoop.hbase.master.snapshot">SnapshotManager</a> <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> in interface <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 <a href="../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManagerHost</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3199">getMasterProcedureManagerHost</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/procedure/MasterProcedureManagerHost.html" title="class in org.apache.hadoop.hbase.procedure">MasterProcedureManagerHost</a> <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> in interface <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 <a href="../../../../../org/apache/hadoop/hbase/master/ClusterSchema.html" title="interface in org.apache.hadoop.hbase.master">ClusterSchema</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3204">getClusterSchema</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/master/ClusterSchema.html" title="interface in org.apache.hadoop.hbase.master">ClusterSchema</a> <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> in interface <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 <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> namespaceDescriptor,
+<pre>long <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> namespaceDescriptor,
long nonceGroup,
long 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 <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> newNsDescriptor,
+<pre>long <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> newNsDescriptor,
long nonceGroup,
long 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 <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> name,
+<pre>long <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> name,
long nonceGroup,
long 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> <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> name)
+<pre><a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a> <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> 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><<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>> <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><<a href="../../../../../org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase">NamespaceDescriptor</a>> <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 <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><<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>> <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> name)
+<pre>public <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><<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>> <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> 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: <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 <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><<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>> <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> name)
+<pre>public <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><<a href="../../../../../org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client">TableDescriptor</a>> <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> 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: <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 boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3363">abortProcedure</a>(long procId,
+<pre>public boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3370">abortProcedure</a>(long procId,
boolean 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: <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 <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><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?>> <a href="../../../../../src-html/org/apache/hadoop/hbase/master/HMaster.html#line.3379">getProcedures</a>()
+<pre>public <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><<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.html" title="class in org.apache.hadoop.hbase.procedure2">Procedure</a><?&
<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> * <code>file:/tmp/bucketcache.data </code>, then we will write the bucketcache data to the file<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * <code>/tmp/bucketcache.data</code> 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. <code>/tmp/bucketcache.map</code>.<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<? extends BlockCache> 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<? extends BlockCache>) 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<? extends BlockCache> 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> * <code>file:/tmp/bucketcache.data </code>, then we will write the bucketcache data to the file<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * <code>/tmp/bucketcache.data</code> 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. <code>/tmp/bucketcache.map</code>.<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<? extends BlockCache> 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<? extends BlockCache>) 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<? extends BlockCache> 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> && 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() && 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> && 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> && (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 &&<a name="line.354"></a>
-<span class="sourceLineNo">355</span> (category != BlockCategory.META &&<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() && 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() && 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() && 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() && 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() && 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() && 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() && this.cacheDataOnRead && 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 && 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() && 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> * <p><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> && (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 &&<a name="line.376"></a>
+<span class="sourceLineNo">377</span> (category != BlockCategory.META &&<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() && 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() && 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() && 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() && 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() && 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() && this.cacheDataOnRead && 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 && 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() && 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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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><Res></td>
<td class="colLast"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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> </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> </td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#org.apache.hadoop.hbase.client">CloneSnapshotFromClientAfterSplittingRegionTestBase</a> </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> </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> </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> </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> </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> </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> </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> </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> </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> </td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestAsyncTableScanMetrics.ScanWithMetrics.html#org.apache.hadoop.hbase.client">TestAsyncTableScanMetrics.ScanWithMetrics</a> </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> </td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestBlockEvictionFromClient.CustomInnerRegionObserver.html#org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.CustomInnerRegionObserver</a> </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> </td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestBlockEvictionFromClient.GetThread.html#org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.GetThread</a> </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> </td>
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/client/class-use/TestBlockEvictionFromClient.MultiGetThread.html#org.apache.hadoop.hbase.client">TestBlockEvictionFromClient.MultiGetThread</a> </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> </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 < plans.size() && System.currentTimeMillis() > 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 < 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<TableName> allEnabledTables = new ArrayList<>(<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 < plans.size() && System.currentTimeMillis() > 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 < 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 &&<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<NormalizationPlan> 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<TableName> allEnabledTables = new ArrayList<>(<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 &&<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<NormalizationPlan> 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<ServerName> exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span> : new ArrayList<>(1);<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span> if (destServerName != null && 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<ServerName> 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<ServerName> exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span> : new ArrayList<>(1);<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span> if (destServerName != null && 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<ServerName> 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) && balancer instanceof BaseLoadBalancer<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span> && !((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<byte []> 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) && balancer instanceof BaseLoadBalancer<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span> && !((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<byte []> 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 && !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 < 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 && !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 < 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 < 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 < 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 < 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 < 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 < 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 < 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() <= 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() < 1024 || hcd.getBlocksize() > 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() <= 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() < 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() < 1024 || hcd.getBlocksize() > 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 <= maxVerions<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span> if (hcd.getMinVersions() > 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> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/TestMaster.html#testMasterBlockCache--">testMasterBlockCache</a></span>()</code> </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> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/TestMaster.html#testMasterOpsWhileSplitting--">testMasterOpsWhileSplitting</a></span>()</code> </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> </td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/master/TestMaster.html#testMoveRegionWhenNotInitialized--">testMoveRegionWhenNotInitialized</a></span>()</code> </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> </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> </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 <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 <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 <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 <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 org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.75">LOG</a></pre>
+<pre>private static final 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 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 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 byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.78">FAMILYNAME</a></pre>
+<pre>private static final 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 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 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 org.junit.rules.TestName <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.82">name</a></pre>
+<pre>public 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 <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.68">TestMaster</a>()</pre>
+<pre>public <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.85">beforeAllTests</a>()
+<pre>public static void <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.94">afterAllTests</a>()
+<pre>public static void <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.100">testMasterOpsWhileSplitting</a>()
+<pre>public void <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.142">testMoveRegionWhenNotInitialized</a>()</pre>
+<pre>public void <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.158">testMoveThrowsUnknownRegionException</a>()
+<pre>public void <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.180">testMoveThrowsPleaseHoldException</a>()
+<pre>public void <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.203">testFlushedSequenceIdPersistLoad</a>()
+<pre>public void <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/master/TestMaster.html#line.231">testBlockingHbkc1WithLockFile</a>()
+<pre>public void <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 void <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><E> (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><T>, 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><E> (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><T>, 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><E> (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><T>, 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 <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html#line.148">SnapshotMock</a>(org.apache.hadoop.conf.Configuration conf,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.SnapshotMock.html#line.153">SnapshotMock</a>(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.fs.FileSystem fs,
org.apache.hadoop.fs.Path 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 org.apache.hadoop.hbase.client.TableDescriptor <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> tableName)</pre>
+<pre>public org.apache.hadoop.hbase.client.TableDescriptor <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> 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> in class <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> util,
org.apache.hadoop.hbase.TableName tableName,
byte[][] 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> util,
+ org.apache.hadoop.hbase.TableName tableName,
+ byte[][] splitKeys,
+ int 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> cpClassName,
+ byte[]... families)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
int 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> util,
org.apache.hadoop.hbase.TableName tableName,
int nRegions,
byte[]... families)</code> </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> util,
org.apache.hadoop.hbase.TableName 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 void <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> util,
- org.apache.hadoop.hbase.TableName tableName,
- byte[][] splitKeys,
- int regionReplication,
- byte[]... 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 void <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> util,
+ org.apache.hadoop.hbase.TableName tableName,
+ byte[][] splitKeys,
+ int regionReplication,
+ byte[]... 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 void <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> util,
+ org.apache.hadoop.hbase.TableName tableName,
+ byte[][] splitKeys,
+ int 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> cpClassName,
+ byte[]... 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 org.apache.hadoop.hbase.client.Table <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> util,
+<pre>public static org.apache.hadoop.hbase.client.Table <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> util,
org.apache.hadoop.hbase.TableName tableName,
byte[]... 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 int <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#line.115">countMobRows</a>(org.apache.hadoop.hbase.client.Table table,
+<pre>public static int <a href="../../../../../src-html/org/apache/hadoop/hbase/snapshot/MobSnapshotTestingUtils.html#line.120">countMobRows</a>(org.apache.hadoop.hbase.client.Table table,
byte[]... 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 void <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> util,
+<pre>public static void <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> util,
org.apache.hadoop.hbase.TableName tableName,
long 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><E> (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><T>, 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><E> (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><T>, 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<Class<?>> badClasses = new java.util.ArrayList<>();<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<?> 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<Class<?>> badClasses = new java.util.ArrayList<>();<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<?> 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<RegionInfo> 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 < plans.size() && System.currentTimeMillis() > 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 < 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<TableName> allEnabledTables = new ArrayList<>(<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 < plans.size() && System.currentTimeMillis() > 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 < 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 &&<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<NormalizationPlan> 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<TableName> allEnabledTables = new ArrayList<>(<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 &&<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<NormalizationPlan> 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<ServerName> exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span> : new ArrayList<>(1);<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span> if (destServerName != null && 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<ServerName> 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<ServerName> exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span> : new ArrayList<>(1);<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span> if (destServerName != null && 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<ServerName> 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) && balancer instanceof BaseLoadBalancer<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span> && !((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<byte []> 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) && balancer instanceof BaseLoadBalancer<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span> && !((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<byte []> 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 && !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 < 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 && !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 < 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 < 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 < 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 < 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 < 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 < 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 < 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() <= 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() < 1024 || hcd.getBlocksize() > 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() <= 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() < 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() < 1024 || hcd.getBlocksize() > 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 <= maxVerions<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span> if (hcd.getMinVersions() > 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><E> (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><T>, 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><E> (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><T>, 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 conf)</code> </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 conf,
+ boolean needBlockCache)</code> </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 conf,
<a href="../../../../../org/apache/hadoop/hbase/client/ColumnFamilyDescriptor.html" title="interface in org.apache.hadoop.hbase.client">ColumnFamilyDescriptor</a> family)</code> </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 <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.40">MobCacheConfig</a>(org.apache.hadoop.conf.Configuration 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 <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.45">MobCacheConfig</a>(org.apache.hadoop.conf.Configuration conf,
+ boolean 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 <a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.50">instantiateMobFileCache</a>(org.apache.hadoop.conf.Configuration conf)</pre>
+<pre>public static <a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.55">instantiateMobFileCache</a>(org.apache.hadoop.conf.Configuration 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 <a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/mob/MobCacheConfig.html#line.61">getMobFileCache</a>()</pre>
+<pre>public <a href="../../../../../org/apache/hadoop/hbase/mob/MobFileCache.html" title="class in org.apache.hadoop.hbase.mob">MobFileCache</a> <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><E> (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><T>, 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><E> (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><T>, 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><E> (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><T>, 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><E> (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><T>, 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 <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 <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 int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1698">majorCompactPriority</a></pre>
+<pre>private final 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 int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1699">DEFAULT_PRIORITY</a></pre>
+<pre>private static final 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 long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1702">iteration</a></pre>
+<pre>private 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> 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> h,
int sleepTime,
<a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1718">chore</a>()</pre>
+<pre>protected void <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: <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 <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 <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 long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3413">seqNum</a></pre>
+<pre>private final 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 long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3414">ts</a></pre>
+<pre>private final 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 <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> serverName,
+<pre>public <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> serverName,
long 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 <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.3422">getServerName</a>()</pre>
+<pre>public <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.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 long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3426">getSeqNum</a>()</pre>
+<pre>public long <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 long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3430">getMoveTime</a>()</pre>
+<pre>public long <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 <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 <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 <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> regionServer,
+<pre>private <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> regionServer,
<a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> 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 <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionsCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.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> rs)</pre>
+<pre>static <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionsCleaner</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.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> 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3521">chore</a>()</pre>
+<pre>protected void <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: <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 void <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> why)</pre>
+<pre>public void <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> why)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface: <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 boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3531">isStopped</a>()</pre>
+<pre>public boolean <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> in interface <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 <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 <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 int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1760">RANGE_OF_DELAY</a></pre>
+<pre>static final 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 int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1761">MIN_DELAY_TIME</a></pre>
+<pre>static final 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 int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1763">rangeOfDelay</a></pre>
+<pre>final 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 <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1764">PeriodicMemStoreFlusher</a>(int cacheFlushInterval,
+<pre>public <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1767">PeriodicMemStoreFlusher</a>(int cacheFlushInterval,
<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> 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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1773">chore</a>()</pre>
+<pre>protected void <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: <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 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 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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_top">
-<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
-<li><a href="#nested.class.summary">Nested</a> | </li>
-<li><a href="#field.summary">Field</a> | </li>
-<li><a href="#constructor.summary">Constr</a> | </li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail: </li>
-<li><a href="#field.detail">Field</a> | </li>
-<li><a href="#constructor.detail">Constr</a> | </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"> </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 </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"> </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> </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> </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> </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 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"> </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> </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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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> util,
- org.apache.hadoop.hbase.TableName tableName,
- byte[][] splitKeys,
- int regionReplication,
- byte[]... families)</code> </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> </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> </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> </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> util,
- org.apache.hadoop.hbase.TableName tableName,
- long expectedRows)</code> </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 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 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 <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 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 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 <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 void <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 void <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 void <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> in class <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 void <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: <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> in class <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 void <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> util,
- org.apache.hadoop.hbase.TableName tableName,
- long 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> in class <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 void <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> util,
- org.apache.hadoop.hbase.TableName tableName,
- byte[][] splitKeys,
- int regionReplication,
- byte[]... 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 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 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 Frames</a></li>
-</ul>
-<ul class="navList" id="allclasses_navbar_bottom">
-<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
-<li><a href="#nested.class.summary">Nested</a> | </li>
-<li><a href="#field.summary">Field</a> | </li>
-<li><a href="#constructor.summary">Constr</a> | </li>
-<li><a href="#method.summary">Method</a></li>
-</ul>
-<ul class="subNavList">
-<li>Detail: </li>
-<li><a href="#field.detail">Field</a> | </li>
-<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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"> </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> </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 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"> </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> </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"> </span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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 table)</code> </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> </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> </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> </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> </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 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 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 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 <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 <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 void <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 void <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 void <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> in class <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 int <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> in class <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 int <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientAfterSplittingRegion.html#line.64">countRows</a>(org.apache.hadoop.hbase.client.Table 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> in class <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#field.summary">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li><a href="#field.detail">Field</a> | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 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 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 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"> </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> </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"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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><org.apache.hadoop.hbase.coprocessor.RegionObserver></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html#getRegionObserver--">getRegionObserver</a></span>()</code> </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<org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment> e,
+ org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker tracker)</code> </td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!-- -->
+</a>
+<h3>Methods inherited from class 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 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 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 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 <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 <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><org.apache.hadoop.hbase.coprocessor.RegionObserver> <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> in interface <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/TestMobCloneSnapshotFromClientCloneLinksAfterDelete.DelayFlushCoprocessor.html#line.64">preFlush</a>(org.apache.hadoop.hbase.coprocessor.ObserverContext<org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment> e,
+ org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker 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> in interface <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li>Field | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 < plans.size() && System.currentTimeMillis() > 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 < 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<TableName> allEnabledTables = new ArrayList<>(<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 < plans.size() && System.currentTimeMillis() > 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 < 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 &&<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<NormalizationPlan> 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<TableName> allEnabledTables = new ArrayList<>(<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 &&<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<NormalizationPlan> 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<ServerName> exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span> : new ArrayList<>(1);<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span> if (destServerName != null && 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<ServerName> 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<ServerName> exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span> : new ArrayList<>(1);<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span> if (destServerName != null && 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<ServerName> 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) && balancer instanceof BaseLoadBalancer<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span> && !((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<byte []> 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) && balancer instanceof BaseLoadBalancer<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span> && !((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<byte []> 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 && !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 < 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 && !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 < 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 < 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 < 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 < 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 < 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 < 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 < 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() <= 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() < 1024 || hcd.getBlocksize() > 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() <= 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() < 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() < 1024 || hcd.getBlocksize() > 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 <= maxVerions<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span> if (hcd.getMinVersions() > 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 && !LoadBalancer.isTablesOnMaster(conf) && !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 & 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<TableDescriptorBuilder, TableDescriptorBuilder> 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<? extends HttpServlet> 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.<br><a name="line.827"></a>
-<span class="sourceLineNo">828</span> * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.<br><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> * <p><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 && 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() && !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() && 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 & 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<TableDescriptorBuilder, TableDescriptorBuilder> 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<? extends HttpServlet> 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.<br><a name="line.830"></a>
+<span class="sourceLineNo">831</span> * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.<br><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> * <p><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 && 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() && !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() && 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() && 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) >= 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() && !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() && 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) >= 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() && !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 && 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> * <code>file:/tmp/bucketcache.data </code>, then we will write the bucketcache data to the file<a name="line.103"></a>
-<span class="sourceLineNo">104</span> * <code>/tmp/bucketcache.data</code> 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. <code>/tmp/bucketcache.map</code>.<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<? extends BlockCache> 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<? extends BlockCache>) 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<? extends BlockCache> 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> * <code>file:/tmp/bucketcache.data </code>, then we will write the bucketcache data to the file<a name="line.101"></a>
+<span class="sourceLineNo">102</span> * <code>/tmp/bucketcache.data</code> 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. <code>/tmp/bucketcache.map</code>.<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<? extends BlockCache> 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<? extends BlockCache>) 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<? extends BlockCache> 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> && 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() && 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> && 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> && (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 &&<a name="line.354"></a>
-<span class="sourceLineNo">355</span> (category != BlockCategory.META &&<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() && 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() && 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() && 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() && 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() && 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() && 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() && this.cacheDataOnRead && 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 && 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() && 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> * <p><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> && (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 &&<a name="line.376"></a>
+<span class="sourceLineNo">377</span> (category != BlockCategory.META &&<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() && 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() && 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() && 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() && 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() && 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() && this.cacheDataOnRead && 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 && 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() && 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> * <p><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 – 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="" /> Warnings</th>
<th><img src="images/icon_error_sml.gif" alt="" /> 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>"true"</tt></li>
<li>groups: <tt>"*,org.apache.hbase.thirdparty,org.apache.hadoop.hbase.shaded"</tt></li>
<li>option: <tt>"top"</tt></li></ul></td>
-<td>1147</td>
+<td>1144</td>
<td><img src="images/icon_error_sml.gif" alt="" /> 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="" /> Error</td></tr>
<tr class="a">
<td></td>
@@ -9839,7 +9829,7 @@
<li>caseIndent: <tt>"2"</tt></li>
<li>basicOffset: <tt>"2"</tt></li>
<li>lineWrappingIndentation: <tt>"2"</tt></li></ul></td>
-<td>4813</td>
+<td>4812</td>
<td><img src="images/icon_error_sml.gif" alt="" /> Error</td></tr>
<tr class="a">
<td>javadoc</td>
@@ -9869,7 +9859,7 @@
<ul>
<li>max: <tt>"100"</tt></li>
<li>ignorePattern: <tt>"^package.*|^import.*|a href|href|http://|https://|ftp://|org.apache.thrift.|com.google.protobuf.|hbase.protobuf.generated"</tt></li></ul></td>
-<td>1485</td>
+<td>1484</td>
<td><img src="images/icon_error_sml.gif" alt="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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="" /> 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 < plans.size() && System.currentTimeMillis() > 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 < 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<TableName> allEnabledTables = new ArrayList<>(<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 < plans.size() && System.currentTimeMillis() > 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 < 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 &&<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<NormalizationPlan> 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<TableName> allEnabledTables = new ArrayList<>(<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 &&<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<NormalizationPlan> 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<ServerName> exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span> : new ArrayList<>(1);<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span> if (destServerName != null && 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<ServerName> 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<ServerName> exclude = hri.getTable().isSystemTable() ? assignmentManager.getExcludedServersForSystemTable()<a name="line.1921"></a>
+<span class="sourceLineNo">1922</span> : new ArrayList<>(1);<a name="line.1922"></a>
+<span class="sourceLineNo">1923</span> if (destServerName != null && 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<ServerName> 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) && balancer instanceof BaseLoadBalancer<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span> && !((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<byte []> 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) && balancer instanceof BaseLoadBalancer<a name="line.1947"></a>
+<span class="sourceLineNo">1948</span> && !((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<byte []> 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 && !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 < 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 && !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 < 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 < 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 < 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 < 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 < 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 < 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 < 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() <= 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() < 1024 || hcd.getBlocksize() > 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() <= 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() < 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() < 1024 || hcd.getBlocksize() > 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 <= maxVerions<a name="line.2155"></a>
-<span class="sourceLineNo">2156</span> if (hcd.getMinVersions() > 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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </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> </td>
@@ -1001,63 +1001,55 @@
int expectedRegionSize)</code> </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> util,
- org.apache.hadoop.hbase.TableName tableName,
- byte[][] splitKeys,
- int regionReplication,
- byte[]... families)</code> </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> testUtil,
org.apache.hadoop.hbase.HTableDescriptor htd,
byte[][] splitKeys)</code> </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> util,
org.apache.hadoop.hbase.TableName 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> snapshotName,
int numRegions)</code> </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> testUtil,
org.apache.hadoop.hbase.TableName tableName)</code> </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> util)</code> </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> 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> snapshotName,
int numRegions,
boolean shutdownCluster)</code> </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> 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> util,
org.apache.hadoop.hbase.TableName tableName,
long expectedRows)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
long expectedRows)</code> </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> 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> util,
org.apache.hadoop.hbase.TableName tableName,
long expectedRows)</code> </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> 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> util,
org.apache.hadoop.hbase.TableName tableName,
long expectedRows)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
byte[][] 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> util,
+ org.apache.hadoop.hbase.TableName tableName,
+ byte[][] splitKeys,
+ int 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> cpClassName,
+ byte[]... families)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
int 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> util,
org.apache.hadoop.hbase.TableName tableName,
int nRegions,
byte[]... families)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
int nRegions,
byte[]... families)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
byte[]... families)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
int regionReplication,
byte[]... families)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
@@ -4334,61 +4335,61 @@
int nRegions,
byte[]... families)</code> </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> util)</code> </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> util,
org.apache.hadoop.hbase.client.BufferedMutator mutator,
int rows,
byte[]... families)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
int rows,
byte[]... families)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
long expectedRows)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
long expectedRows)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
long expectedRows)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
long expectedRows)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
long expectedRows)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName,
long expectedRows)</code> </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> util,
org.apache.hadoop.hbase.TableName tableName)</code> </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 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 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 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 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 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 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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 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"> </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> </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"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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 regionInfo)</code> </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> </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 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 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 <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 void <a href="../../../../../src-html/org/apache/hadoop/hbase/client/CloneSnapshotFromClientAfterSplittingRegionTestBase.html#line.34">splitRegion</a>(org.apache.hadoop.hbase.client.RegionInfo 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 void <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 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"> </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> </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"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </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> </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 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 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 <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 void <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 void <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 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 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 Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All 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: </li>
+<li>Nested | </li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.client.CloneSnapshotFromClientTestBase">Field</a> | </li>
+<li><a href="#constructor.summary">Constr</a> | </li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail: </li>
+<li>Field | </li>
+<li><a href="#constructor.detail">Constr</a> | </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 © 2007–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 && !LoadBalancer.isTablesOnMaster(conf) && !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 & 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<TableDescriptorBuilder, TableDescriptorBuilder> 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<? extends HttpServlet> 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.<br><a name="line.827"></a>
-<span class="sourceLineNo">828</span> * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.<br><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> * <p><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 && 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() && !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() && 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 & 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<TableDescriptorBuilder, TableDescriptorBuilder> 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<? extends HttpServlet> 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.<br><a name="line.830"></a>
+<span class="sourceLineNo">831</span> * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.<br><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> * <p><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 && 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() && !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() && 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() && 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) >= 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() && !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() && 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) >= 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() && !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 && 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 – 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 –
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 – 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 – 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 – 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 – 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 – 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 –
Apache HBase (TM) Metrics
@@ -469,7 +469,7 @@ export HBASE_REGIONSERVER_OPTS="$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 –
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 – 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 – 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 – 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 – 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 – 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 – 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 –
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 –
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 – 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 – 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 – 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 – 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 – 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 && !LoadBalancer.isTablesOnMaster(conf) && !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 & 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<TableDescriptorBuilder, TableDescriptorBuilder> 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<? extends HttpServlet> 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.<br><a name="line.827"></a>
-<span class="sourceLineNo">828</span> * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.<br><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> * <p><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 && 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() && !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() && 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 & 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<TableDescriptorBuilder, TableDescriptorBuilder> 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<? extends HttpServlet> 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.<br><a name="line.830"></a>
+<span class="sourceLineNo">831</span> * Do bare minimum. Do bulk of initializations AFTER we've connected to the Master.<br><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> * <p><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 && 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() && !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() && 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() && 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) >= 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() && !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() && 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) >= 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() && !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 && cacheConfig.isBlockCacheEnabled()) {<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span> cacheConfig.getBlockCache().sh
<TRUNCATED>